rs6000.c (output_toc): Correct little-endian float constant output.
authorAlan Modra <amodra@gmail.com>
Tue, 4 Jun 2013 13:04:13 +0000 (22:34 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Tue, 4 Jun 2013 13:04:13 +0000 (22:34 +0930)
* config/rs6000/rs6000.c (output_toc): Correct little-endian float
constant output.

From-SVN: r199646

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

index f845fbdd365b707eb0bcd87ded9a48043c2fae2e..4d892b5dbda303966b903832f3a8dd9ac555ac39 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 9c4b7f04c35d7cf976e0b273ec2023cf65bcba0c..527dbc55b503a8a6cf625e93c74590c31fa9c2ed 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