summaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1995-08-31 23:04:04 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1995-08-31 23:04:04 +0000
commit1d63d82dfb28b2efddd470ffcfe5e64e29f728c1 (patch)
tree5d8531c4ca48b944c24a284e1a7a0251f021d351 /gcc/varasm.c
parent32cf9a0f9a842e9af09f7289f6da1de69d3c5788 (diff)
downloadgcc-1d63d82dfb28b2efddd470ffcfe5e64e29f728c1.tar.gz
(struct rtx_const): Add new field DI to union.
(decode_rtx_const, case CONST_DOUBLE): Use to hash CONST_DOUBLE representing an integer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10304 138bc75d-0d04-0410-961f-82ee72b054a4
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 77b0ea9b5ab..42b81fa4d86 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: