Differences From Artifact [0efe8758d7]:
- File src/invocation/apple-call-x86_64.S — part of check-in [0509d7a844] at 2019-01-03 19:13:03 on branch trunk — Update copyright (user: js, size: 2164) [annotate] [blame] [check-ins using]
To Artifact [2b14e6dad4]:
- File
src/invocation/apple-call-x86_64.S
— part of check-in
[780d096371]
at
2019-02-18 01:37:36
on branch trunk
— invocation: Make all offsets constants
This makes the assembly much more readable.
No difference between disassembled .o file before and after. (user: js, size: 2537) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
26 27 28 29 30 31 32 | pushq %rbp movq %rsp, %rbp subq $16, %rsp andq $-16, %rsp movq %rdi, -8(%rbp) | | | | | | | | | | | | | | | | | | | | | | | | | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | pushq %rbp movq %rsp, %rbp subq $16, %rsp andq $-16, %rsp movq %rdi, -8(%rbp) leaq OFFSET_STACK(%rdi), %rdx movq OFFSET_STACK_SIZE(%rdi), %rcx testq $1, %rcx jnz Lfix_align Lfill_stack: testq %rcx, %rcx jz Lstack_filled decq %rcx movq (%rdx,%rcx,8), %r11 pushq %r11 jmp Lfill_stack Lstack_filled: movb OFFSET_NUM_SSE_USED(%rdi), %al movdqa OFFSET_SSE_INOUT+112(%rdi), %xmm7 movdqa OFFSET_SSE_INOUT+96(%rdi), %xmm6 movdqa OFFSET_SSE_INOUT+80(%rdi), %xmm5 movdqa OFFSET_SSE_INOUT+64(%rdi), %xmm4 movdqa OFFSET_SSE_INOUT+48(%rdi), %xmm3 movdqa OFFSET_SSE_INOUT+32(%rdi), %xmm2 movdqa OFFSET_SSE_INOUT+16(%rdi), %xmm1 movdqa OFFSET_SSE_INOUT(%rdi), %xmm0 movq OFFSET_GPR_IN+40(%rdi), %r9 movq OFFSET_GPR_IN+32(%rdi), %r8 movq OFFSET_GPR_IN+24(%rdi), %rcx movq OFFSET_GPR_IN+16(%rdi), %rdx movq OFFSET_GPR_IN+8(%rdi), %rsi movb OFFSET_RETURN_TYPE(%rdi), %r11b movq OFFSET_GPR_IN(%rdi), %rdi cmpb $RETURN_TYPE_STRET, %r11b je Lcall_send_stret cmpb $RETURN_TYPE_JMP, %r11b je _objc_msgSend cmpb $RETURN_TYPE_JMP_STRET, %r11b je _objc_msgSend_stret call _objc_msgSend Lafter_send: movq -8(%rbp), %rdi movq %rax, OFFSET_GPR_OUT(%rdi) movq %rdx, OFFSET_GPR_OUT+8(%rdi) movdqa %xmm0, OFFSET_SSE_INOUT(%rdi) movdqa %xmm1, OFFSET_SSE_INOUT+16(%rdi) movb OFFSET_RETURN_TYPE(%rdi), %r11b cmpb $RETURN_TYPE_X87, %r11b je Lpop_long_double cmpb $RETURN_TYPE_COMPLEX_X87, %r11b je Lpop_complex_long_double |
︙ | ︙ | |||
105 106 107 108 109 110 111 | jmp Lfill_stack Lcall_send_stret: call _objc_msgSend_stret jmp Lafter_send Lpop_long_double: | | | | | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | jmp Lfill_stack Lcall_send_stret: call _objc_msgSend_stret jmp Lafter_send Lpop_long_double: fstpt OFFSET_X87_OUT(%rdi) jmp Lreturn Lpop_complex_long_double: fstpt OFFSET_X87_OUT(%rdi) fstpt OFFSET_X87_OUT+16(%rdi) jmp Lreturn |