// success
$ clang -target armv7a-linux-androideabi src/arm/linux/aarch32-isa.c -I src/ -I include -std=c99 -I deps/clog/include -c
// failure
$ clang -target armv7a-linux-androideabi src/arm/linux/aarch32-isa.c -I src/ -I include -std=c99 -I deps/clog/include -c -march=armv8-a
In file included from src/arm/linux/aarch32-isa.c:7:
src/arm/linux/cp.h:41:24: error: invalid operand for instruction
__asm__ __volatile__("MRC p1, 0, %[wcid], c0, c0" : [wcid] "=r" (wcid));
^
<inline asm>:1:6: note: instantiated into assembly here
MRC p1, 0, r0, c0, c0
^
1 error generated.
MRC is not available on armv8 and the function may need to use MRS instead. To account for this, libcpuinfo for Android is built entirely for armv7-a even for armv8-a targets.
MRC
is not available onarmv8
and the function may need to useMRS
instead. To account for this,libcpuinfo
for Android is built entirely forarmv7-a
even forarmv8-a
targets.