@ -40,18 +40,18 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %callee_i64+0, %rcx
; return_call_unknown %rcx (0) tmp=%rdx %rdi=%rdi
; load_ext_name %callee_i64+0, %r10
; return_call_unknown %r10 (0) tmp=%r11 %rdi=%rdi
;
; Disassembled:
; block0: ; offset 0x0
; pushq %rbp
; movq %rsp, %rbp
; block1: ; offset 0x4
; movabsq $0, %rcx ; reloc_external Abs8 %callee_i64 0
; movabsq $0, %r10 ; reloc_external Abs8 %callee_i64 0
; movq %rbp, %rsp
; popq %rbp
; jmpq *%rcx
; jmpq *%r10
;;;; Test colocated tail calls ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -66,7 +66,7 @@ block0(v0: i64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; return_call_known TestCase(%callee_i64) (0) tmp=%rax %rdi=%rdi
; return_call_known TestCase(%callee_i64) (0) tmp=%r11 %rdi=%rdi
;
; Disassembled:
; block0: ; offset 0x0
@ -131,18 +131,18 @@ block0(v0: f64):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %callee_f64+0, %rcx
; return_call_unknown %rcx (0) tmp=%rdx %xmm0=%xmm0
; load_ext_name %callee_f64+0, %r10
; return_call_unknown %r10 (0) tmp=%r11 %xmm0=%xmm0
;
; Disassembled:
; block0: ; offset 0x0
; pushq %rbp
; movq %rsp, %rbp
; block1: ; offset 0x4
; movabsq $0, %rcx ; reloc_external Abs8 %callee_f64 0
; movabsq $0, %r10 ; reloc_external Abs8 %callee_f64 0
; movq %rbp, %rsp
; popq %rbp
; jmpq *%rcx
; jmpq *%r10
;;;; Test passing `i8`s ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -185,18 +185,18 @@ block0(v0: i8):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; load_ext_name %callee_i8+0, %rcx
; return_call_unknown %rcx (0) tmp=%rdx %rdi=%rdi
; load_ext_name %callee_i8+0, %r10
; return_call_unknown %r10 (0) tmp=%r11 %rdi=%rdi
;
; Disassembled:
; block0: ; offset 0x0
; pushq %rbp
; movq %rsp, %rbp
; block1: ; offset 0x4
; movabsq $0, %rcx ; reloc_external Abs8 %callee_i8 0
; movabsq $0, %r10 ; reloc_external Abs8 %callee_i8 0
; movq %rbp, %rsp
; popq %rbp
; jmpq *%rcx
; jmpq *%r10
;;;; Test passing fewer arguments on the stack ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -243,7 +243,7 @@ block0(v0: i32, v1: i32, v2: i32, v3: i32, v4: i32, v5: i32, v6: i32, v7: i32, v
; movq rbp(stack args max - 24), %r9
; movq rbp(stack args max - 16), %rax
; movl %eax, rbp(stack args max - 16)
; return_call_known TestCase(%one_stack_arg) (16) tmp=%r10 %rdi=%rdi %rsi=%rsi %rdx=%rdx %rcx=%rcx %r8=%r8 %r9=%r9
; return_call_known TestCase(%one_stack_arg) (16) tmp=%r11 %rdi=%rdi %rsi=%rsi %rdx=%rdx %rcx=%rcx %r8=%r8 %r9=%r9
;
; Disassembled:
; block0: ; offset 0x0
@ -260,8 +260,8 @@ block0(v0: i32, v1: i32, v2: i32, v3: i32, v4: i32, v5: i32, v6: i32, v7: i32, v
; movl %eax, 0x20(%rbp)
; movq %rbp, %rsp
; popq %rbp
; movq (%rsp), %r10
; movq %r10 , 0x10(%rsp)
; movq (%rsp), %r11
; movq %r11 , 0x10(%rsp)
; addq $0x10, %rsp
; jmp 0x35 ; reloc_external CallPCRel4 %one_stack_arg -4
@ -279,7 +279,7 @@ block0(v0: i32, v1: i32, v2: i32, v3: i32, v4: i32, v5: i32, v6: i32, v7: i32, v
; movq rbp(stack args max - 32), %r10
; movq rbp(stack args max - 24), %rsi
; movq rbp(stack args max - 16), %rdi
; return_call_known TestCase(%callee_i8) (0) tmp=%rdx %rdi=%rdi
; return_call_known TestCase(%callee_i8) (0) tmp=%r11 %rdi=%rdi
;
; Disassembled:
; block0: ; offset 0x0
@ -291,8 +291,8 @@ block0(v0: i32, v1: i32, v2: i32, v3: i32, v4: i32, v5: i32, v6: i32, v7: i32, v
; movq 0x20(%rbp), %rdi
; movq %rbp, %rsp
; popq %rbp
; movq (%rsp), %rdx
; movq %rdx , 0x20(%rsp)
; movq (%rsp), %r11
; movq %r11 , 0x20(%rsp)
; addq $0x20, %rsp
; jmp 0x26 ; reloc_external CallPCRel4 %callee_i8 -4
@ -325,7 +325,7 @@ block0(v0: i32, v1: i32, v2: i32, v3: i32, v4: i32, v5: i32, v6: i32):
; movl %esi, rbp(stack args max - 16)
; movq %rsi, %rdi
; movq %r10, %rsi
; return_call_known TestCase(%call_one_stack_arg) (32) tmp=%r10 %rdi=%rdi %rsi=%rsi %rdx=%rdx %rcx=%rcx %r8=%r8 %r9=%r9
; return_call_known TestCase(%call_one_stack_arg) (32) tmp=%r11 %rdi=%rdi %rsi=%rsi %rdx=%rdx %rcx=%rcx %r8=%r8 %r9=%r9
;
; Disassembled:
; block0: ; offset 0x0
@ -531,14 +531,14 @@ block0:
; movq %rsi, rbp(stack args max - 16)
; movq rsp(0 + virtual offset), %rsi
; movq %rsi, rbp(stack args max - 8)
; load_ext_name %tail_callee_stack_args+0, %rax
; load_ext_name %tail_callee_stack_args+0, %r10
; movq rsp(72 + virtual offset), %rcx
; movq rsp(80 + virtual offset), %rdx
; movq rsp(88 + virtual offset), %rsi
; movq rsp(96 + virtual offset), %rdi
; movq rsp(64 + virtual offset), %r8
; movq rsp(56 + virtual offset), %r9
; return_call_unknown %rax (160) tmp=%r10 %rdi=%rdi %rsi=%rsi %rdx=%rdx %rcx=%rcx %r8=%r8 %r9=%r9
; return_call_unknown %r10 (160) tmp=%r11 %rdi=%rdi %rsi=%rsi %rdx=%rdx %rcx=%rcx %r8=%r8 %r9=%r9
;
; Disassembled:
; block0: ; offset 0x0
@ -623,7 +623,7 @@ block0:
; movq %rsi, 0xa0(%rbp)
; movq (%rsp), %rsi
; movq %rsi, 0xa8(%rbp)
; movabsq $0, %rax ; reloc_external Abs8 %tail_callee_stack_args 0
; movabsq $0, %r10 ; reloc_external Abs8 %tail_callee_stack_args 0
; movq 0x48(%rsp), %rcx
; movq 0x50(%rsp), %rdx
; movq 0x58(%rsp), %rsi
@ -638,5 +638,5 @@ block0:
; addq $0xa0, %rsp
; movq %rbp, %rsp
; popq %rbp
; jmpq *%rax
; jmpq *%r10