当ARC启用时,for64的clang会在每个objc_msgSend
和相应的objc_retainAutoreleasedReturnValue
之间生成以下内容:
MOV X29, X29
X29
当然是帧指针;据我所知,这条指令什么也没做。
知道为什么编译器会这样做吗?
我在Google中找到的唯一线索是MAGIC和NOT_MAGIC定义:http://opensource.apple.com//source/objc4/objc4-680/test/rr-autorelease-fastarc.m。但这似乎没有多大阐述。