Add x86-64 encodings for call instructions.
This commit is contained in:
@@ -418,6 +418,16 @@ ebb0:
|
||||
; asm: movzbq %dl, %rsi
|
||||
[-,%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: je ebb1
|
||||
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
|
||||
#
|
||||
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))
|
||||
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))
|
||||
I64.enc(base.x_return, *r.ret(0xc3))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user