diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2001-09-10 22:30:19 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2001-09-10 22:30:19 +0000 |
commit | 539d2fe1b065038867a3a79db8cb2c3267d79cd0 (patch) | |
tree | 9f698e9d357ac62f4b7b99e02430aeb85d63b54d /gnu/egcs/gcc/emit-rtl.c | |
parent | 40c96d3e0f32d23408b3774d27518514a53b3bc1 (diff) |
Put in a fix from future gcc that implements some unimplemented code.
Not that I know what it does and how to test it but libstdc++ builds now
on sparc64 and groff works so we can have man pages.
It shouldn't hurt anything because it replaces an abort().
Diffstat (limited to 'gnu/egcs/gcc/emit-rtl.c')
-rw-r--r-- | gnu/egcs/gcc/emit-rtl.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gnu/egcs/gcc/emit-rtl.c b/gnu/egcs/gcc/emit-rtl.c index f16f6f23bb9..3c3d5a5ca5e 100644 --- a/gnu/egcs/gcc/emit-rtl.c +++ b/gnu/egcs/gcc/emit-rtl.c @@ -1382,6 +1382,15 @@ operand_subword (op, i, validate_address, mode) val = ((val & 0xffffffff) ^ 0x80000000) - 0x80000000; return GEN_INT (val); } +#if HOST_BITS_PER_WIDE_INT >= 64 + else if (BITS_PER_WORD >= 64 && i <= 1) + { + val = k[i * 2 + ! WORDS_BIG_ENDIAN]; + val = (((val & 0xffffffff) ^ 0x80000000) - 0x80000000) << 32; + val |= (HOST_WIDE_INT) k[i * 2 + WORDS_BIG_ENDIAN] & 0xffffffff; + return GEN_INT (val); + } +#endif else abort (); } |