When running QEMU user mode on some code compiled by clang (dynamic linker from AOSP-10), the emulator chokes on this instruction:
9aa92: e8c0 2277 strexd r7, r2, r2, [r0]
From debugging, I determined that op_strex() calls unallocated_encoding(), which I think leads to the SIGILL signal generated.
I run the emulator without specifying the ARM cpu type, I think it then defaults to "any", which should support all instructions, if I'm not mistaken.
Is this instruction really invalid? Or am I doing something wrong?