Differences From Artifact [be30bb9442]:
- File
src/forwarding/forwarding-x86_64-win64.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: 3687) [annotate] [blame] [check-ins using]
To Artifact [f3bfdf8e1c]:
- File
src/forwarding/forwarding-x86_64-win64.S
— part of check-in
[a1da5c7b2d]
at
2019-02-18 20:55:15
on branch trunk
— Replace a few movdqa with movaps
movaps is smaller, and we don't know what kind of data is in there
anyway (and it's FP rather than integer in most cases anyway), so it
does not matter which move instruction we use. (user: js, size: 3687) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
28 29 30 31 32 33 34 | /* Save all arguments */ subq $0x90, %rsp /* 16-byte alignment */ movq %rax, -0x28(%rbp) movq %rcx, -0x30(%rbp) movq %rdx, -0x38(%rbp) movq %r8, -0x40(%rbp) movq %r9, -0x48(%rbp) | | | | | | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | /* Save all arguments */ subq $0x90, %rsp /* 16-byte alignment */ movq %rax, -0x28(%rbp) movq %rcx, -0x30(%rbp) movq %rdx, -0x38(%rbp) movq %r8, -0x40(%rbp) movq %r9, -0x48(%rbp) movaps %xmm0, -0x60(%rbp) movaps %xmm1, -0x70(%rbp) movaps %xmm2, -0x80(%rbp) movaps %xmm3, -0x90(%rbp) call object_getClass movq %rax, %rcx leaq sel_forwardingTargetForSelector_(%rip), %rdx call class_respondsToSelector |
︙ | ︙ | |||
64 65 66 67 68 69 70 | movq %rax, %rcx movq -0x38(%rbp), %rdx call objc_msg_lookup movq %rax, %r11 /* Restore all arguments */ | | | | | | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | movq %rax, %rcx movq -0x38(%rbp), %rdx call objc_msg_lookup movq %rax, %r11 /* Restore all arguments */ movaps -0x90(%rbp), %xmm3 movaps -0x80(%rbp), %xmm2 movaps -0x70(%rbp), %xmm1 movaps -0x60(%rbp), %xmm0 movq -0x48(%rbp), %r9 movq -0x40(%rbp), %r8 movq -0x38(%rbp), %rdx movq -0x30(%rbp), %rcx movq -0x28(%rbp), %rax movq %rbp, %rsp |
︙ | ︙ | |||
99 100 101 102 103 104 105 | /* Save all arguments */ subq $0x90, %rsp /* 16-byte alignment */ movq %rax, -0x28(%rbp) movq %rcx, -0x30(%rbp) movq %rdx, -0x38(%rbp) movq %r8, -0x40(%rbp) movq %r9, -0x48(%rbp) | | | | | | 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | /* Save all arguments */ subq $0x90, %rsp /* 16-byte alignment */ movq %rax, -0x28(%rbp) movq %rcx, -0x30(%rbp) movq %rdx, -0x38(%rbp) movq %r8, -0x40(%rbp) movq %r9, -0x48(%rbp) movaps %xmm0, -0x60(%rbp) movaps %xmm1, -0x70(%rbp) movaps %xmm2, -0x80(%rbp) movaps %xmm3, -0x90(%rbp) movq %rdx, %rcx call object_getClass movq %rax, %rcx leaq sel_forwardingTargetForSelector_(%rip), %rdx call class_respondsToSelector |
︙ | ︙ | |||
136 137 138 139 140 141 142 | movq %rax, %rcx movq -0x40(%rbp), %rdx call objc_msg_lookup_stret movq %rax, %r11 /* Restore all arguments */ | | | | | | 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | movq %rax, %rcx movq -0x40(%rbp), %rdx call objc_msg_lookup_stret movq %rax, %r11 /* Restore all arguments */ movaps -0x90(%rbp), %xmm3 movaps -0x80(%rbp), %xmm2 movaps -0x70(%rbp), %xmm1 movaps -0x60(%rbp), %xmm0 movq -0x48(%rbp), %r9 movq -0x40(%rbp), %r8 movq -0x38(%rbp), %rdx movq -0x30(%rbp), %rcx movq -0x28(%rbp), %rax movq %rbp, %rsp |
︙ | ︙ |