41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
.Lmain_\name:
mov rax, [rsi]
movzx ecx, ah
movzx edx, al
#ifdef OF_SELUID24
shr eax, 16
mov r8, [r8+rax*8]
#endif
mov r8, [r8+rcx*8]
mov rax, [r8+rdx*8]
test rax, rax
jz short \not_found@PLT
ret
|
|
|
|
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
.Lmain_\name:
mov rax, [rsi]
movzx ecx, ah
movzx edx, al
#ifdef OF_SELUID24
shr eax, 16
mov r8, [r8+rax*8]
#endif
mov r8, [r8+rcx*8]
mov rax, [r8+rdx*8]
test rax, rax
jz short \not_found@PLT
ret
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
.endm
.macro generate_lookup_super name lookup
\name:
mov r8, rdi
mov rdi, [rdi]
test rdi, rdi
jz ret_nil
mov r8, [r8+8]
mov r8, [r8+64]
jmp .Lmain_\lookup
.type \name, %function
.size \name, .-\name
.endm
generate_lookup objc_msg_lookup objc_method_not_found
generate_lookup objc_msg_lookup_stret objc_method_not_found_stret
generate_lookup_super objc_msg_lookup_super objc_msg_lookup
|
|
|
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
.endm
.macro generate_lookup_super name lookup
\name:
mov r8, rdi
mov rdi, [rdi]
test rdi, rdi
jz short ret_nil
mov r8, [r8+8]
mov r8, [r8+64]
jmp short .Lmain_\lookup
.type \name, %function
.size \name, .-\name
.endm
generate_lookup objc_msg_lookup objc_method_not_found
generate_lookup objc_msg_lookup_stret objc_method_not_found_stret
generate_lookup_super objc_msg_lookup_super objc_msg_lookup
|