Add func_addr encodings for Intel.

This commit is contained in:
Jakob Stoklund Olesen
2017-09-19 16:33:38 -07:00
parent d92686d1cd
commit fb827a2d4b
5 changed files with 52 additions and 7 deletions

View File

@@ -336,10 +336,15 @@ ebb0:
; asm: call foo
call fn0() ; bin: e8 PCRel4(fn0) 00000000
; asm: movl $-1, %ecx
[-,%rcx] v400 = func_addr.i32 fn0 ; bin: b9 Abs4(fn0) ffffffff
; asm: movl $-1, %esi
[-,%rsi] v401 = func_addr.i32 fn0 ; bin: be Abs4(fn0) ffffffff
; asm: call *%ecx
call_indirect sig0, v1() ; bin: ff d1
call_indirect sig0, v400() ; bin: ff d1
; asm: call *%esi
call_indirect sig0, v2() ; bin: ff d6
call_indirect sig0, v401() ; bin: ff d6
; asm: testl %ecx, %ecx
; asm: je ebb1

View File

@@ -421,12 +421,19 @@ ebb0:
; asm: call foo
call fn0() ; bin: e8 PCRel4(fn0) 00000000
; asm: movabsq $-1, %rcx
[-,%rcx] v400 = func_addr.i64 fn0 ; bin: 48 b9 Abs8(fn0) ffffffffffffffff
; asm: movabsq $-1, %rsi
[-,%rsi] v401 = func_addr.i64 fn0 ; bin: 48 be Abs8(fn0) ffffffffffffffff
; asm: movabsq $-1, %r10
[-,%r10] v402 = func_addr.i64 fn0 ; bin: 49 ba Abs8(fn0) ffffffffffffffff
; asm: call *%rcx
call_indirect sig0, v1() ; bin: 40 ff d1
call_indirect sig0, v400() ; bin: 40 ff d1
; asm: call *%rsi
call_indirect sig0, v2() ; bin: 40 ff d6
call_indirect sig0, v401() ; bin: 40 ff d6
; asm: call *%r10
call_indirect sig0, v3() ; bin: 41 ff d2
call_indirect sig0, v402() ; bin: 41 ff d2
; asm: testq %rcx, %rcx
; asm: je ebb1