Differences From Artifact [ca53a90db3]:
- File
src/runtime/lookup-asm/lookup-asm-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: 2087) [annotate] [blame] [check-ins using]
To Artifact [b3182ba60d]:
- File src/runtime/lookup-asm/lookup-asm-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: 2092) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
36 37 38 39 40 41 42 | .intel_syntax noprefix .endmacro .section __TEXT, __text, regular, pure_instructions .macro GENERATE_LOOKUP $0: test rdi, rdi | | | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | .intel_syntax noprefix .endmacro .section __TEXT, __text, regular, pure_instructions .macro GENERATE_LOOKUP $0: test rdi, rdi jz LreturnNilMethod test dil, 1 jnz LtaggedPointer_$0 mov r8, [rdi] mov r8, [r8 + 64] |
︙ | ︙ | |||
79 80 81 82 83 84 85 | .endmacro .macro GENERATE_LOOKUP_SUPER $0: mov r8, rdi mov rdi, [rdi] test rdi, rdi | | | | | | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | .endmacro .macro GENERATE_LOOKUP_SUPER $0: mov r8, rdi mov rdi, [rdi] test rdi, rdi jz LreturnNilMethod movq r8, [r8 + 8] movq r8, [r8 + 64] jmp Lmain_$1 .endmacro GENERATE_LOOKUP _objc_msg_lookup, _objc_methodNotFound GENERATE_LOOKUP _objc_msg_lookup_stret, _objc_methodNotFound_stret GENERATE_LOOKUP_SUPER _objc_msg_lookup_super, _objc_msg_lookup GENERATE_LOOKUP_SUPER _objc_msg_lookup_super_stret, _objc_msg_lookup_stret LreturnNilMethod: lea rax, [rip + LnilMethod] ret LnilMethod: xor rax, rax ret |