diff options
| -rw-r--r-- | libgcc/config/i386/32/dfp-machine.h | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/libgcc/config/i386/32/dfp-machine.h b/libgcc/config/i386/32/dfp-machine.h index ef8fa4f3600..9b008eefafc 100644 --- a/libgcc/config/i386/32/dfp-machine.h +++ b/libgcc/config/i386/32/dfp-machine.h @@ -1,7 +1,7 @@ #ifndef _SOFT_FLOAT /* Get the rounding mode. */ #define DFP_GET_ROUNDMODE \ - unsigned int _frnd_orig; \ + unsigned short _frnd_orig; \ do \ { \ __asm__ __volatile__ ("fnstcw\t%0" : "=m" (_frnd_orig)); \ @@ -13,17 +13,18 @@ #define DFP_SET_ROUNDMODE(round) \ do \ { \ - unsigned int _cw; \ - __asm__ __volatile__ ("fnstcw\t%0" : "=m" (_cw)); \ - _cw &= ~FP_RND_MASK; \ - _cw |= round; \ - __asm__ __volatile__ ("fldcw\t%0" :: "m" (_cw)); \ + unsigned short _fcw; \ + __asm__ __volatile__ ("fnstcw\t%0" : "=m" (_fcw)); \ + _fcw &= ~FP_RND_MASK; \ + _fcw |= round; \ + __asm__ __volatile__ ("fldcw\t%0" :: "m" (_fcw)); \ if (__builtin_cpu_supports ("sse")) \ { \ - __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (_cw)); \ - _cw &= ~0x6000; \ - _cw |= round << 3; \ - __asm__ __volatile__ ("%vldmxcsr\t%0" :: "m" (_cw)); \ + unsigned int _xcw; \ + __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (_xcw)); \ + _xcw &= ~0x6000; \ + _xcw |= round << 3; \ + __asm__ __volatile__ ("%vldmxcsr\t%0" :: "m" (_xcw)); \ } \ } \ while (0); |
