︙ | | | ︙ | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
* file.
*/
.globl _of_forward
.globl _of_forward_stret
.section __TEXT, __cstring, cstring_literals
L_str_forwardingTargetForSelector_:
.asciz "forwardingTargetForSelector:"
.section __OBJC, __message_refs, literal_pointers, no_dead_strip
L_sel_forwardingTargetForSelector_:
.long L_str_forwardingTargetForSelector_
.section __OBJC, __image_info
.long 0, 0
.section __TEXT, __text, regular, pure_instructions
_of_forward:
mflr r0
|
|
|
|
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
* file.
*/
.globl _of_forward
.globl _of_forward_stret
.section __TEXT, __cstring, cstring_literals
str_forwardingTargetForSelector_:
.asciz "forwardingTargetForSelector:"
.section __OBJC, __message_refs, literal_pointers, no_dead_strip
sel_forwardingTargetForSelector_:
.long str_forwardingTargetForSelector_
.section __OBJC, __image_info
.long 0, 0
.section __TEXT, __text, regular, pure_instructions
_of_forward:
mflr r0
|
︙ | | | ︙ | |
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
stfd f10, 160(r1)
stfd f11, 168(r1)
stfd f12, 176(r1)
stfd f13, 184(r1)
bl _object_getClass
bl L0
L0:
mflr r13
addis r13, r13, ha16(L_sel_forwardingTargetForSelector_-L0)
lwz r13, lo16(L_sel_forwardingTargetForSelector_-L0)(r13)
mr r4, r13
bl _class_respondsToSelector
cmpwi r3, 0
beq- fail
lwz r3, 216(r1)
mr r4, r13
lwz r5, 220(r1)
bl _objc_msgSend
cmpwi r3, 0
beq- fail
lwz r4, 216(r1)
cmpw r3, r4
beq- fail
/* Restore all arguments and r13, except r3 */
lwz r4, 220(r1)
lwz r5, 56(r1)
lwz r6, 60(r1)
lwz r7, 64(r1)
lwz r8, 68(r1)
|
|
|
|
|
|
|
|
|
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
stfd f10, 160(r1)
stfd f11, 168(r1)
stfd f12, 176(r1)
stfd f13, 184(r1)
bl _object_getClass
bl 0f
0:
mflr r13
addis r13, r13, ha16(sel_forwardingTargetForSelector_-0b)
lwz r13, lo16(sel_forwardingTargetForSelector_-0b)(r13)
mr r4, r13
bl _class_respondsToSelector
cmpwi r3, 0
beq- 0f
lwz r3, 216(r1)
mr r4, r13
lwz r5, 220(r1)
bl _objc_msgSend
cmpwi r3, 0
beq- 0f
lwz r4, 216(r1)
cmpw r3, r4
beq- 0f
/* Restore all arguments and r13, except r3 */
lwz r4, 220(r1)
lwz r5, 56(r1)
lwz r6, 60(r1)
lwz r7, 64(r1)
lwz r8, 68(r1)
|
︙ | | | ︙ | |
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
addi r1, r1, 192
lwz r0, 8(r1)
mtlr r0
b _objc_msgSend
fail:
lwz r3, 216(r1)
lwz r4, 220(r1)
addi r1, r1, 192
lwz r0, 8(r1)
mtlr r0
|
<
>
|
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
addi r1, r1, 192
lwz r0, 8(r1)
mtlr r0
b _objc_msgSend
0:
lwz r3, 216(r1)
lwz r4, 220(r1)
addi r1, r1, 192
lwz r0, 8(r1)
mtlr r0
|
︙ | | | ︙ | |
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
stfd f11, 160(r1)
stfd f12, 168(r1)
stfd f13, 176(r1)
mr r3, r4
bl _object_getClass
bl L1
L1:
mflr r13
addis r13, r13, ha16(L_sel_forwardingTargetForSelector_-L1)
lwz r13, lo16(L_sel_forwardingTargetForSelector_-L1)(r13)
mr r4, r13
bl _class_respondsToSelector
cmpwi r3, 0
beq- fail_stret
lwz r3, 212(r1)
mr r4, r13
lwz r5, 216(r1)
bl _objc_msgSend
cmpwi r3, 0
beq- fail_stret
lwz r4, 212(r1)
cmpw r3, r4
beq- fail_stret
mr r4, r3
/* Restore all arguments and r13, except r4 */
lwz r3, 208(r1)
lwz r5, 216(r1)
lwz r6, 56(r1)
|
|
<
>
|
|
|
|
|
|
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
stfd f11, 160(r1)
stfd f12, 168(r1)
stfd f13, 176(r1)
mr r3, r4
bl _object_getClass
bl 0f
0:
mflr r13
addis r13, r13, ha16(sel_forwardingTargetForSelector_-0b)
lwz r13, lo16(sel_forwardingTargetForSelector_-0b)(r13)
mr r4, r13
bl _class_respondsToSelector
cmpwi r3, 0
beq- 0f
lwz r3, 212(r1)
mr r4, r13
lwz r5, 216(r1)
bl _objc_msgSend
cmpwi r3, 0
beq- 0f
lwz r4, 212(r1)
cmpw r3, r4
beq- 0f
mr r4, r3
/* Restore all arguments and r13, except r4 */
lwz r3, 208(r1)
lwz r5, 216(r1)
lwz r6, 56(r1)
|
︙ | | | ︙ | |
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
addi r1, r1, 184
lwz r0, 8(r1)
mtlr r0
b _objc_msgSend_stret
fail_stret:
lwz r3, 208(r1)
lwz r4, 212(r1)
lwz r5, 216(r1)
addi r1, r1, 184
lwz r0, 8(r1)
mtlr r0
b _of_method_not_found_stret
|
<
>
|
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
addi r1, r1, 184
lwz r0, 8(r1)
mtlr r0
b _objc_msgSend_stret
0:
lwz r3, 208(r1)
lwz r4, 212(r1)
lwz r5, 216(r1)
addi r1, r1, 184
lwz r0, 8(r1)
mtlr r0
b _of_method_not_found_stret
|