ENTRY _objc_msgSend
cbz r0, LNilReceiver_f
ldr r9, [r0]// r9 =
self->isa
GetClassFromIsa // r9 =
class
CacheLookup NORMAL
// cache hit, IMP in r12, eq already set for nonstret
forwarding
bx r12// call imp
CacheLookup2 NORMAL
// cache miss
ldr r9, [r0]// r9 =
self->isa
GetClassFromIsa // r9 =
class
b __objc_msgSend_uncached
LNilReceiver:
// r0 is already zero
mov r1, #0
mov r2, #0
mov r3, #0
FP_RETURN_ZERO
bx lr
END_ENTRY _objc_msgSend
ENTRY _objc_msgLookup
cbz r0, LNilReceiver_f
ldr r9, [r0]// r9 =
self->isa
GetClassFromIsa // r9 =
class
CacheLookup NORMAL
// cache hit, IMP in r12, eq already set for nonstret
forwarding
bx lr
CacheLookup2 NORMAL
// cache miss
ldr r9, [r0]// r9 =
self->isa
GetClassFromIsa // r9 =
class
b __objc_msgLookup_uncached
LNilReceiver:
MI_GET_ADDRESS(r12, __objc_msgNil)
bx lr
END_ENTRY _objc_msgLookup
STATIC_ENTRY __objc_msgNil
// r0 is already zero
mov r1, #0
mov r2, #0
mov r3, #0
FP_RETURN_ZERO
bx lr
END_ENTRY __objc_msgNil