Message ID | 877cw2rm61.fsf@li-07e5db4c-3052-11b2-a85c-815382633c95.ibm.com |
---|---|
State | New |
Headers | show |
Series | S390: Fix _FPU_SETCW/GETCW when compiling with Clang [BZ #30130] | expand |
On 28.02.23 13:48, Andreas Arnez wrote: > The _FPU_SETCW and _FPU_GETCW macros are defined with inline assemblies. > They use the sfpc and efpc instructions, respectively. But both contain > a spurious second operand that leads to a compile error with Clang. > Removing this operand works both with gcc/gas (since binutils 2.18) as > well as with clang/llvm. > --- > sysdeps/s390/fpu/fpu_control.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/sysdeps/s390/fpu/fpu_control.h b/sysdeps/s390/fpu/fpu_control.h > index e00d7775f4..567b180034 100644 > --- a/sysdeps/s390/fpu/fpu_control.h > +++ b/sysdeps/s390/fpu/fpu_control.h > @@ -32,8 +32,8 @@ > typedef unsigned int fpu_control_t; > > /* Macros for accessing the hardware control word. */ > -#define _FPU_GETCW(cw) __asm__ __volatile__ ("efpc %0,0" : "=d" (cw)) > -#define _FPU_SETCW(cw) __asm__ __volatile__ ("sfpc %0,0" : : "d" (cw)) > +#define _FPU_GETCW(cw) __asm__ __volatile__ ("efpc %0" : "=d" (cw)) > +#define _FPU_SETCW(cw) __asm__ __volatile__ ("sfpc %0" : : "d" (cw)) > > /* Default control word set at startup. */ > extern fpu_control_t __fpu_control; As mentioned in the bugzilla. This patch is fine. I've just committed it and closed the bugzilla. Thanks, Stefan
diff --git a/sysdeps/s390/fpu/fpu_control.h b/sysdeps/s390/fpu/fpu_control.h index e00d7775f4..567b180034 100644 --- a/sysdeps/s390/fpu/fpu_control.h +++ b/sysdeps/s390/fpu/fpu_control.h @@ -32,8 +32,8 @@ typedef unsigned int fpu_control_t; /* Macros for accessing the hardware control word. */ -#define _FPU_GETCW(cw) __asm__ __volatile__ ("efpc %0,0" : "=d" (cw)) -#define _FPU_SETCW(cw) __asm__ __volatile__ ("sfpc %0,0" : : "d" (cw)) +#define _FPU_GETCW(cw) __asm__ __volatile__ ("efpc %0" : "=d" (cw)) +#define _FPU_SETCW(cw) __asm__ __volatile__ ("sfpc %0" : : "d" (cw)) /* Default control word set at startup. */ extern fpu_control_t __fpu_control;