diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1994-11-19 14:14:18 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1994-11-19 14:14:18 -0800 |
commit | 794385023b7a690dfd29611f4f515a709ea69ec8 (patch) | |
tree | ab187c3557cb7def14926fbd3088a4d1122d4ac3 | |
parent | 84ef8e1d45b55183178df3ab711a4909cd6af283 (diff) | |
download | gcc-794385023b7a690dfd29611f4f515a709ea69ec8.zip gcc-794385023b7a690dfd29611f4f515a709ea69ec8.tar.gz gcc-794385023b7a690dfd29611f4f515a709ea69ec8.tar.bz2 |
(mips_const_double_ok): Accept VOIDmode not DImode.
(mips_move_1word): Accept VOIDmode CONST_DOUBLE.
From-SVN: r8526
-rw-r--r-- | gcc/config/mips/mips.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index e22b76b..aab092e 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -478,7 +478,7 @@ mips_const_double_ok (op, mode) if (GET_CODE (op) != CONST_DOUBLE) return FALSE; - if (mode == DImode) + if (mode == VOIDmode) return TRUE; if (mode != SFmode && mode != DFmode) @@ -1016,8 +1016,18 @@ mips_move_1word (operands, insn, unsignedp) } } - else if (code1 == CONST_INT) + else if (code1 == CONST_INT + || (code1 == CONST_DOUBLE + && GET_MODE (op1) == VOIDmode)) { + if (code1 == CONST_DOUBLE) + { + /* This can happen when storing constants into long long + bitfields. Just store the least significant word of + the value. */ + operands[1] = op1 = GEN_INT (CONST_DOUBLE_LOW (op1)); + } + if (INTVAL (op1) == 0) { if (GP_REG_P (regno0)) |