* config/rs6000/rs6000.c (output_toc): Correct little-endian float
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Jun 2013 13:04:13 +0000 (13:04 +0000)
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Jun 2013 13:04:13 +0000 (13:04 +0000)
constant output.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199646 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index f845fbd..4d892b5 100644 (file)
@@ -1,3 +1,8 @@
+2013-06-04  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.c (output_toc): Correct little-endian float
+       constant output.
+
 2013-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * rtl.def: Add extra fourth optional field to define_cond_exec.
index 9c4b7f0..527dbc5 100644 (file)
@@ -22574,7 +22574,10 @@ output_toc (FILE *file, rtx x, int labelno, enum machine_mode mode)
            fputs (DOUBLE_INT_ASM_OP, file);
          else
            fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff);
-         fprintf (file, "0x%lx00000000\n", l & 0xffffffff);
+         if (WORDS_BIG_ENDIAN)
+           fprintf (file, "0x%lx00000000\n", l & 0xffffffff);
+         else
+           fprintf (file, "0x%lx\n", l & 0xffffffff);
          return;
        }
       else