Add x86-64 encodings for call instructions.
This commit is contained in:
@@ -418,6 +418,16 @@ ebb0:
|
|||||||
; asm: movzbq %dl, %rsi
|
; asm: movzbq %dl, %rsi
|
||||||
[-,%rsi] v351 = bint.i64 v301 ; bin: 48 0f b6 f2
|
[-,%rsi] v351 = bint.i64 v301 ; bin: 48 0f b6 f2
|
||||||
|
|
||||||
|
; asm: call foo
|
||||||
|
call fn0() ; bin: e8 PCRel4(fn0) 00000000
|
||||||
|
|
||||||
|
; asm: call *%rcx
|
||||||
|
call_indirect sig0, v1() ; bin: 40 ff d1
|
||||||
|
; asm: call *%rsi
|
||||||
|
call_indirect sig0, v2() ; bin: 40 ff d6
|
||||||
|
; asm: call *%r10
|
||||||
|
call_indirect sig0, v3() ; bin: 41 ff d2
|
||||||
|
|
||||||
; asm: testq %rcx, %rcx
|
; asm: testq %rcx, %rcx
|
||||||
; asm: je ebb1
|
; asm: je ebb1
|
||||||
brz v1, ebb1 ; bin: 48 85 c9 74 1b
|
brz v1, ebb1 ; bin: 48 85 c9 74 1b
|
||||||
|
|||||||
@@ -225,7 +225,12 @@ enc_i32_i64_ld_st(base.sload8, True, r.ldDisp32, 0x0f, 0xbe)
|
|||||||
# Call/return
|
# Call/return
|
||||||
#
|
#
|
||||||
I32.enc(base.call, *r.call_id(0xe8))
|
I32.enc(base.call, *r.call_id(0xe8))
|
||||||
|
I64.enc(base.call, *r.call_id(0xe8))
|
||||||
|
|
||||||
I32.enc(base.call_indirect.i32, *r.call_r(0xff, rrr=2))
|
I32.enc(base.call_indirect.i32, *r.call_r(0xff, rrr=2))
|
||||||
|
I64.enc(base.call_indirect.i64, *r.call_r.rex(0xff, rrr=2))
|
||||||
|
I64.enc(base.call_indirect.i64, *r.call_r(0xff, rrr=2))
|
||||||
|
|
||||||
I32.enc(base.x_return, *r.ret(0xc3))
|
I32.enc(base.x_return, *r.ret(0xc3))
|
||||||
I64.enc(base.x_return, *r.ret(0xc3))
|
I64.enc(base.x_return, *r.ret(0xc3))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user