aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Evans <devans@gcc.gnu.org>1997-10-17 21:59:06 +0000
committerDoug Evans <devans@gcc.gnu.org>1997-10-17 21:59:06 +0000
commitf4f8e3703aa7808e2d65e05aa81b061f5059e4a7 (patch)
tree4c9226f3913e9565128d5fcb24d5bed2cffc9d50
parentda2a90f71a49981a421485781ccdc54cf420be44 (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/config/sparc/sparc.c11
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)
{