Differences From Artifact [0969f9a066]:
- File
src/forwarding/forwarding-amd64-macho.S
— part of check-in
[18c524e13d]
at
2023-10-28 18:04:09
on branch trunk
— Move x86/Mach-O assembly to Intel syntax
A workaround for the assembler bugs has been found. (user: js, size: 4535) [annotate] [blame] [check-ins using]
To Artifact [197daf8bf7]:
- File src/forwarding/forwarding-amd64-macho.S — part of check-in [cb18f26404] at 2023-10-28 18:35:43 on branch trunk — Use more local labels in assembly (user: js, size: 4551) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
58 59 60 61 62 63 64 | movaps [rbp - 0xA0], xmm5 movaps [rbp - 0xB0], xmm6 movaps [rbp - 0xC0], xmm7 call _object_getClass mov rdi, rax | | | | | 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 | movaps [rbp - 0xA0], xmm5 movaps [rbp - 0xB0], xmm6 movaps [rbp - 0xC0], xmm7 call _object_getClass mov rdi, rax lea rsi, [rip + Lsel_forwardingTargetForSelector_] call _class_respondsToSelector test rax, rax jz 0f mov rdi, [rbp - 0x10] lea rsi, [rip + Lsel_forwardingTargetForSelector_] call _objc_msg_lookup movq rdi, [rbp - 0x10] leaq rsi, [rip + Lsel_forwardingTargetForSelector_] movq rdx, [rbp - 0x18] call *%rax test rax, rax jz 0f cmp rax, [rbp - 0x10] je 0f |
︙ | ︙ | |||
142 143 144 145 146 147 148 | movaps [rbp - 0xB0], xmm6 movaps [rbp - 0xC0], xmm7 mov rdi, rsi call _object_getClass mov rdi, rax | | | | | 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | movaps [rbp - 0xB0], xmm6 movaps [rbp - 0xC0], xmm7 mov rdi, rsi call _object_getClass mov rdi, rax lea rsi, [rip + Lsel_forwardingTargetForSelector_] call _class_respondsToSelector test rax, rax jz 0f mov rdi, [rbp - 0x18] lea rsi, [rip + Lsel_forwardingTargetForSelector_] call _objc_msg_lookup mov rdi, [rbp - 0x18] lea rsi, [rip + Lsel_forwardingTargetForSelector_] mov rdx, [rbp - 0x20] call *%rax test rax, rax jz 0f cmp rax, [rbp - 0x18] je 0f |
︙ | ︙ | |||
201 202 203 204 205 206 207 | mov rdx, [rbp - 0x20] mov rsp, rbp pop rbp jmp _OFMethodNotFound_stret | | | | | | | | | | | | 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 | mov rdx, [rbp - 0x20] mov rsp, rbp pop rbp jmp _OFMethodNotFound_stret Linit: lea rdi, [rip + Lmodule] jmp ___objc_exec_class .section __DATA, __mod_init_func, mod_init_funcs .quad Linit .section __TEXT, __cstring, cstring_literals Lstr_forwardingTargetForSelector_: .asciz "forwardingTargetForSelector:" .section __DATA, __data Lsel_forwardingTargetForSelector_: .quad Lstr_forwardingTargetForSelector_, 0 .quad 0, 0 Lsymtab: .quad 0, Lsel_forwardingTargetForSelector_ .short 0, 0 .long 0 .quad 0 Lmodule: .quad 8, 32, 0, Lsymtab |