我认为这是一些配置问题。目标是armv7。
功能是
__attribute__((naked))
id new_objc_msgSend(id self, SEL op, ...) {
__asm__ __volatile__ ("nop\n");
}
生成的代码是
Dump of assembler code for function _Z16new_objc_msgSendP11objc_objectP13objc_selectorz:
0x01bc7dfc <_Z16new_objc_msgSendP11objc_objectP13objc_selectorz+0>: stmia.w sp, {r2, r3}
0x01bc7e00 <_Z16new_objc_msgSendP11objc_objectP13objc_selectorz+4>: nop
0x01bc7e02 <_Z16new_objc_msgSendP11objc_objectP13objc_selectorz+6>: bx lr
End of assembler dump.
即使使用__attribute__((naked))
,仍会生成prolog / epilog。