This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Aarch64 llvm unrecognized instruction mnemonic

I am trying to use ARM inline assembly in a C code. I am compiling using aarch64-linux-android-clang version 3.8.243773, the 64 bit llvm toolchain from Android NDK R11.

The inline assembly code is as follows:

__asm__("ssat %w0, #24, %w1\n\t" : "=r" (val) : "r" (val) : );

The syntax of inline assembly code is correct and it compiles the syntax code as such but the assembler spits out a error saying

error: unrecognized instruction mnemonic ssat

What is the problem here? Doesn't llvm from the ndk toolchain support this assembly instruction?

How can I fix or workaround this issue?

thanks.

Parents
  • They dropped all the DSP type instructions operating on the general registers when going to the 64 bit instruction set. There's equivalent type instructions for SIMD or else you have to just code using a few register general register instructions - or just use C. If going the SIMD route it may well be worthwhile trying out the NEON intrinsics instead which will work on both.

Reply
  • They dropped all the DSP type instructions operating on the general registers when going to the 64 bit instruction set. There's equivalent type instructions for SIMD or else you have to just code using a few register general register instructions - or just use C. If going the SIMD route it may well be worthwhile trying out the NEON intrinsics instead which will work on both.

Children