aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-08-31 19:04:04 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-08-31 19:04:04 -0400
commit0b19a5b97160722d13020ae4d3801126d13292da (patch)
tree5d8531c4ca48b944c24a284e1a7a0251f021d351 /gcc/varasm.c
parent969c851727df5eef4698ece7ffb51483aac1c385 (diff)
downloadgcc-0b19a5b97160722d13020ae4d3801126d13292da.zip
gcc-0b19a5b97160722d13020ae4d3801126d13292da.tar.gz
gcc-0b19a5b97160722d13020ae4d3801126d13292da.tar.bz2
(struct rtx_const): Add new field DI to union.
(decode_rtx_const, case CONST_DOUBLE): Use to hash CONST_DOUBLE representing an integer. From-SVN: r10304
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 77b0ea9..42b81fa 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -2954,6 +2954,7 @@ struct rtx_const
union {
union real_extract du;
struct addr_const addr;
+ struct {HOST_WIDE_INT high, low;} di;
} un;
};
@@ -2984,9 +2985,16 @@ decode_rtx_const (mode, x, value)
case CONST_DOUBLE:
value->kind = RTX_DOUBLE;
if (GET_MODE (x) != VOIDmode)
- value->mode = GET_MODE (x);
- bcopy ((char *) &CONST_DOUBLE_LOW (x),
- (char *) &value->un.du, sizeof value->un.du);
+ {
+ value->mode = GET_MODE (x);
+ bcopy ((char *) &CONST_DOUBLE_LOW (x),
+ (char *) &value->un.du, sizeof value->un.du);
+ }
+ else
+ {
+ value->un.di.low = CONST_DOUBLE_LOW (x);
+ value->un.di.high = CONST_DOUBLE_HIGH (x);
+ }
break;
case CONST_INT: