diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-08-31 19:04:04 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-08-31 19:04:04 -0400 |
commit | 0b19a5b97160722d13020ae4d3801126d13292da (patch) | |
tree | 5d8531c4ca48b944c24a284e1a7a0251f021d351 /gcc/varasm.c | |
parent | 969c851727df5eef4698ece7ffb51483aac1c385 (diff) | |
download | gcc-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.c | 14 |
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: |