mirror of https://github.com/xemu-project/xemu.git
tests/tcg/arm: Use vmrs/vmsr instead of mcr/mrc
Clang 14 generates /home/rth/qemu/src/tests/tcg/arm/fcvt.c:431:9: error: invalid operand for instruction asm("mrc p10, 7, r1, cr1, cr0, 0\n\t" ^ <inline asm>:1:6: note: instantiated into assembly here mrc p10, 7, r1, cr1, cr0, 0 ^ /home/rth/qemu/src/tests/tcg/arm/fcvt.c:432:32: error: invalid operand for instruction "orr r1, r1, %[flags]\n\t" ^ <inline asm>:3:6: note: instantiated into assembly here mcr p10, 7, r1, cr1, cr0, 0 ^ This is perhaps a clang bug, but using the neon mnemonic is clearer. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com> Message-Id: <20240630190050.160642-14-richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20240705084047.857176-19-alex.bennee@linaro.org>
This commit is contained in:
parent
e3693cd3c9
commit
2f93ff3113
|
@ -427,10 +427,9 @@ int main(int argc, char *argv[argc])
|
|||
|
||||
/* And now with ARM alternative FP16 */
|
||||
#if defined(__arm__)
|
||||
/* See glibc sysdeps/arm/fpu_control.h */
|
||||
asm("mrc p10, 7, r1, cr1, cr0, 0\n\t"
|
||||
asm("vmrs r1, fpscr\n\t"
|
||||
"orr r1, r1, %[flags]\n\t"
|
||||
"mcr p10, 7, r1, cr1, cr0, 0\n\t"
|
||||
"vmsr fpscr, r1"
|
||||
: /* no output */ : [flags] "n" (1 << 26) : "r1" );
|
||||
#else
|
||||
asm("mrs x1, fpcr\n\t"
|
||||
|
|
Loading…
Reference in New Issue