http://yulingtianxia.com/blog/2016/06/15/Objective-C-Message-Sending-and-Forwarding/#回顾-objc-msgSend-伪代码
1d30941f188d45e2.gif 2354655-7729bba622afd6bc.jpg Screen Shot 2018-11-02 at 9.28.04 AM.pngcmp
cmp是比较指令, cmp的功能相当于减法指令,只是不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。
//判断对象是否存在
cmp x0
CacheLookup NORMAL //calls imp or objc_msgSend_uncached
Screen Shot 2018-11-02 at 9.32.39 AM.png
cacheHit
Screen Shot 2018-11-02 at 9.37.44 AM.png
checkMiss
Screen Shot 2018-11-02 at 9.42.19 AM.png
MethodTableLookup
https://www.jianshu.com/p/a4c49fecda79
http://blog.zhengdong.me/2013/07/18/a-look-under-the-hood-of-objc-msgsend/
http://www.arigrant.com/blog/2014/2/18/chisels-print-invocation-command
网友评论