草庐IT

ios - Apple AS 汇编程序是否会用 iOS 上的等效指令替换某些 NEON 指令?

我试图在iOS上使用ffmpeg并在优化的arm代码中调试崩溃。我发现一些无符号(.u16、.u32)指令已被有符号指令(.i16、.i32)取代。很容易看出,因为GDB上的反汇编指令与源代码不完全匹配。例如,vrshrn.u32->vrshrn.i32vrshrn.u16->vrshrn.i16vadd.u16->vadd.i16我的问题:这种行为是否正确且符合预期?如果不是,我们如何纠正它?如果它们是等价的,为什么我们根本不需要无符号的?是因为这样代码更明确吗?其他平台的工具包是否会出现这种行为?比如Android的toolkit?(听说苹果的AS很古老)