emei
The 峨眉 (EMei) JIT/AOT backend framework.
Support Instructions
x86_64
warning: unsupport fpu float operator.
- mov
- mov
- movzeroextendbit8/16
- movsignextendbit8/16/32
- mov_rev
- movs(is movsq)
push
- push_reg
- push_imm
- push_all pusha/pushad
add
- addfirstreg
- add_imm8
- add_imm32
- add
- inc
- inc_reg32
sub
- subfirstreg
- subsignedimm8
- sub_imm(32)
- sub
- sub_rev
- dec
- dec_reg32
jump
- jmp
- jmp to relative addr
- jmp to addr literal (jit use it)
- jmp to register
- jump cond code
- /ja/jb/jc/je/jg/jl/jo/jp/js/jz/jae/jbe/jge/jle/jpe/jpo/jna/jnb/jnc/jne/jng/jnl/jno/jnp/jns/jnz/jnae/jnbe/jnge/jnle
cmp
test
call
- call to relative addr
- call to addr literal (jit use it)
- call to register
nop
ret
- nearret/nearret_imm
- farret/farret_imm
...etc.
about headware inference
sse float instruction
- movss/movsd
- addss/addsd
- subss/subsd
- mulss/mulsd
- divss/divsd
- sqrtss/sqrtsd
- cmpss/cmpsd
Example
look src/main.rs.