diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1995-08-31 23:04:04 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1995-08-31 23:04:04 +0000 |
commit | 1d63d82dfb28b2efddd470ffcfe5e64e29f728c1 (patch) | |
tree | 5d8531c4ca48b944c24a284e1a7a0251f021d351 /gcc/varasm.c | |
parent | 32cf9a0f9a842e9af09f7289f6da1de69d3c5788 (diff) | |
download | gcc-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.c | 14 |
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: |