Mov v9.16b, v0.16b //这是什么?


#1

问题1:
__text:000000000000B49C MOV V9.16B, V0.16B------------>//V9.16B, V0.16B 这是什么?
__text:000000000000B4A0 MOV V8.16B, V1.16B------------>//V8.16B, V1.16B这是什么?

问题2:
_objc_msgSend 等价于—> [panGesture locationInView:self] //返回值哪里去了?

以下是IDA中的代码:

_text:000000000000B47C LDR X21, =sel_locationInView ; “locationInView:”
__text:000000000000B480 MOV X0, X20
__text:000000000000B484 BL _objc_retain
__text:000000000000B488 MOV X22, X0
__text:000000000000B48C MOV X0, X20
__text:000000000000B490 MOV X1, X21
__text:000000000000B494 MOV X2, X19
__text:000000000000B498 BL _objc_msgSend
__text:000000000000B49C MOV V9.16B, V0.16B //这是什么?
__text:000000000000B4A0 MOV V8.16B, V1.16B //这是什么?


还原后的值:
X21: locationInView
X0: X20 :x2:panGesture
x22:x0
x0:x20
X1: x21:locationInView
X2: X19:x0
/////////
[panGesture locationInView:self] //返回值哪里去了?


#3

不懂,能帮忙详细一点解释吗,或者哪有这方面的资料


#4

我也不懂.乱说的


#5

回答问题2:
返回值一般在 _objc_msgSend 返回后, 存放在 x0 中.
本人新手, 望题主测试后再确定.


#6

V0-V31是NEON和浮点运算用的寄存器IIRC