diff options
author | Xi Ruoyao <xry111@xry111.site> | 2024-04-29 15:26:24 +0800 |
---|---|---|
committer | caiyinyu <caiyinyu@loongson.cn> | 2024-05-28 09:17:05 +0800 |
commit | 0c1d2c277a59f08fd3232b33d18644ea890190ea (patch) | |
tree | dc6e5426a502f568d81d3212ff52f99575836fa9 | |
parent | e0f7f1808fb024d35c3d9973e68245efc78fff40 (diff) | |
download | glibc-0c1d2c277a59f08fd3232b33d18644ea890190ea.zip glibc-0c1d2c277a59f08fd3232b33d18644ea890190ea.tar.gz glibc-0c1d2c277a59f08fd3232b33d18644ea890190ea.tar.bz2 |
LoongArch: Use "$fcsr0" instead of "$r0" in _FPU_{GET,SET}CW
Clang inline-asm parser does not allow using "$r0" in
movfcsr2gr/movgr2fcsr, so everything using _FPU_{GET,SET}CW is now
failing to build with Clang on LoongArch. As we now requires Binutils
>= 2.41 which supports using "$fcsr0" here, use it instead of "$r0" to
fix the issue.
Link: https://github.com/loongson-community/discussions/issues/53#issuecomment-2081507390
Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=4142b2368353
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
-rw-r--r-- | sysdeps/loongarch/fpu_control.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/loongarch/fpu_control.h b/sysdeps/loongarch/fpu_control.h index 54add4e..3cdf241 100644 --- a/sysdeps/loongarch/fpu_control.h +++ b/sysdeps/loongarch/fpu_control.h @@ -91,8 +91,8 @@ typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__))); /* Macros for accessing the hardware control word. */ extern fpu_control_t __loongarch_fpu_getcw (void) __THROW; extern void __loongarch_fpu_setcw (fpu_control_t) __THROW; -#define _FPU_GETCW(cw) __asm__ volatile ("movfcsr2gr %0,$r0" : "=r"(cw)) -#define _FPU_SETCW(cw) __asm__ volatile ("movgr2fcsr $r0,%0" : : "r"(cw)) +#define _FPU_GETCW(cw) __asm__ volatile ("movfcsr2gr %0,$fcsr0" : "=r"(cw)) +#define _FPU_SETCW(cw) __asm__ volatile ("movgr2fcsr $fcsr0,%0" : : "r"(cw)) /* Default control word set at startup. */ extern fpu_control_t __fpu_control; |