Differences From Artifact [81a51cd4d7]:
- File
src/runtime/lookup-asm-amd64-macho.S
— part of check-in
[9713ad857d]
at
2013-07-26 15:21:45
on branch trunk
— Add support for objc_msg_lookup_stret.
The assembly implementations of the lookup and forwarding still need to
be adjusted. Those just alias to the non-stret version for now so that
linking works, meaning the behaviour is still the same as without
support for objc_msg_lookup_stret for now. (user: js, size: 1371) [annotate] [blame] [check-ins using]
To Artifact [9f2fcb9422]:
- File src/runtime/lookup-asm-amd64-macho.S — part of check-in [22eefaaadd] at 2013-07-26 18:05:27 on branch trunk — Add objc_msg_lookup_stret for AMD64/Mach-O. (user: js, size: 1580) [annotate] [blame] [check-ins using]
- File src/runtime/lookup-asm/lookup-asm-amd64-macho.S — part of check-in [c4abdf467a] at 2013-09-20 10:57:51 on branch trunk — Move lookup asm files to src/runtime/lookup-asm. (user: js, size: 1580) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
18 19 20 21 22 23 24 | .globl _objc_msg_lookup .globl _objc_msg_lookup_stret .globl _objc_msg_lookup_super .globl _objc_msg_lookup_super_stret .section __TEXT, __text, regular, pure_instructions | | < > < > | | < < < | < > | > > > > > > > > > > | 18 19 20 21 22 23 24 25 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 | .globl _objc_msg_lookup .globl _objc_msg_lookup_stret .globl _objc_msg_lookup_super .globl _objc_msg_lookup_super_stret .section __TEXT, __text, regular, pure_instructions .macro generate_lookup $0: testq %rdi, %rdi jz ret_nil movq (%rdi), %r8 movq 64(%r8), %r8 Lmain$0: movq (%rsi), %rax movzbl %ah, %ecx movzbl %al, %edx #ifdef OF_SELUID24 shrl $16, %eax movq (%r8,%rax,8), %r8 #endif movq (%r8,%rcx,8), %r8 movq (%r8,%rdx,8), %rax testq %rax, %rax jz $1 ret .endmacro .macro generate_lookup_super: $0: movq (%rdi), %rax testq %rax, %rax jz ret_nil movq 8(%rdi), %r8 movq 64(%r8), %r8 movq %rdi, %rax jmp Lmain$1 .endmacro generate_lookup _objc_msg_lookup, _objc_not_found_handler generate_lookup _objc_msg_lookup_stret, _objc_not_found_handler_stret generate_lookup_super _objc_msg_lookup_super, _objc_msg_lookup generate_lookup_super _objc_msg_lookup_super_stret, _objc_msg_lookup_stret ret_nil: leaq nil_method(%rip), %rax ret nil_method: movq %rdi, %rax ret |