diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1993-07-07 16:55:55 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1993-07-07 16:55:55 -0700 |
commit | c90fb4e6d45e0101d10f14473df0bbaf322f7f3e (patch) | |
tree | f63171ea4a6464156c5f73f78f56c0627411306b /gcc | |
parent | d667538bbfbe7ef11f1d79bbfac3ec6a36b24e6d (diff) | |
download | gcc-c90fb4e6d45e0101d10f14473df0bbaf322f7f3e.zip gcc-c90fb4e6d45e0101d10f14473df0bbaf322f7f3e.tar.gz gcc-c90fb4e6d45e0101d10f14473df0bbaf322f7f3e.tar.bz2 |
(singlemove_string): Convert SFmode by REAL_VALUE... macros.
From-SVN: r4883
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sparc/sparc.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 1c46f98..41531fa 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -946,18 +946,15 @@ singlemove_string (operands) return "ld %1,%0"; else if (GET_CODE (operands[1]) == CONST_DOUBLE) { - int i; - union real_extract u; - union float_extract { float f; int i; } v; + REAL_VALUE_TYPE r; + long i; /* Must be SFmode, otherwise this doesn't make sense. */ if (GET_MODE (operands[1]) != SFmode) abort (); - bcopy (&CONST_DOUBLE_LOW (operands[1]), &u, sizeof u); - v.f = REAL_VALUE_TRUNCATE (SFmode, u.d); - i = v.i; - + REAL_VALUE_FROM_CONST_DOUBLE (r, operands[1]); + REAL_VALUE_TO_TARGET_SINGLE (r, i); operands[1] = gen_rtx (CONST_INT, VOIDmode, i); if (CONST_OK_FOR_LETTER_P (i, 'I')) |