我正在尝试在C代码中使用ARM内联汇编。我正在使用aarch64-linux-android-clang版本3.8.243773编译,这是来自Android NDK R11的64位llvm工具链。
内联汇编代码如下:
__asm__("ssat %w0, #24, %w1\n\t"
: "=r" (val)
: "r" (val)
: );
我希望使用这个内联汇编将32位结果饱和到24位。
内联汇编代码的语法是正确的,它会编译语法代码,但汇编程序会发出错误说
错误:无法识别的指令助记符ssat
这是什么问题?不是来自ndk工具链的llvm支持这个汇编指令吗?
如何修复或解决此问题?