diff options
author | Doug Evans <devans@gcc.gnu.org> | 1997-10-17 21:59:06 +0000 |
---|---|---|
committer | Doug Evans <devans@gcc.gnu.org> | 1997-10-17 21:59:06 +0000 |
commit | f4f8e3703aa7808e2d65e05aa81b061f5059e4a7 (patch) | |
tree | 4c9226f3913e9565128d5fcb24d5bed2cffc9d50 | |
parent | da2a90f71a49981a421485781ccdc54cf420be44 (diff) | |
download | gcc-f4f8e3703aa7808e2d65e05aa81b061f5059e4a7.zip gcc-f4f8e3703aa7808e2d65e05aa81b061f5059e4a7.tar.gz gcc-f4f8e3703aa7808e2d65e05aa81b061f5059e4a7.tar.bz2 |
sparc.c (output_double_int): Output DI mode values correctly when HOST_BITS_PER_WIDE_INT is 64.
* sparc/sparc.c (output_double_int): Output DI mode values
correctly when HOST_BITS_PER_WIDE_INT is 64.
From-SVN: r15977
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 032236c..dfad611 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,9 +1,11 @@ Fri Oct 17 17:13:42 1997 David S. Miller <davem@tanya.rutgers.edu> * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2. - * sparc/sparc.c (dwarf2out_cfi_label): Extern no longer needed. * sparc/sparc.h (FUNCTION_PROFILER): Fix format string when TARGET_MEDANY. + * sparc/sparc.c (dwarf2out_cfi_label): Extern no longer needed. + (output_double_int): Output DI mode values correctly when + HOST_BITS_PER_WIDE_INT is 64. Fri Oct 17 13:39:56 1997 Doug Evans <dje@canuck.cygnus.com> diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index ba02b4f..cc4430c 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4910,11 +4910,22 @@ output_double_int (file, value) { if (GET_CODE (value) == CONST_INT) { + /* ??? This has endianness issues. */ +#if HOST_BITS_PER_WIDE_INT == 64 + HOST_WIDE_INT xword = INTVAL (value); + HOST_WIDE_INT high, low; + + high = (xword >> 32) & 0xffffffff; + low = xword & 0xffffffff; + ASM_OUTPUT_INT (file, gen_rtx (CONST_INT, VOIDmode, high)); + ASM_OUTPUT_INT (file, gen_rtx (CONST_INT, VOIDmode, low)); +#else if (INTVAL (value) < 0) ASM_OUTPUT_INT (file, constm1_rtx); else ASM_OUTPUT_INT (file, const0_rtx); ASM_OUTPUT_INT (file, value); +#endif } else if (GET_CODE (value) == CONST_DOUBLE) { |