]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
authorAlan Modra <amodra@bigpond.net.au>
Thu, 23 May 2002 23:22:44 +0000 (23:22 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Thu, 23 May 2002 23:22:44 +0000 (08:52 +0930)
From-SVN: r53816

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

index e9ad7f93b73f2b26340156817b1146e0ca1f8bb7..62dc3234fdf7ae76db931a99adec431a9e8eed6a 100644 (file)
@@ -1,3 +1,7 @@
+2002-05-24  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
+
 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
        * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K
        pages.
index 45d6fdf6ba4c43807efdb3dc1a620e653f3b02c3..7940315fc4bbe163d581d9b1df1efd9e2ca0254c 100644 (file)
@@ -10157,8 +10157,10 @@ output_toc (file, x, labelno, mode)
          if (TARGET_MINIMAL_TOC)
            fputs (DOUBLE_INT_ASM_OP, file);
          else
-           fprintf (file, "\t.tc FD_%lx_%lx[TC],", k[0], k[1]);
-         fprintf (file, "0x%lx%08lx\n", k[0], k[1]);
+           fprintf (file, "\t.tc FD_%lx_%lx[TC],",
+                    k[0] & 0xffffffff, k[1] & 0xffffffff);
+         fprintf (file, "0x%lx%08lx\n",
+                  k[0] & 0xffffffff, k[1] & 0xffffffff);
          return;
        }
       else
@@ -10166,8 +10168,10 @@ output_toc (file, x, labelno, mode)
          if (TARGET_MINIMAL_TOC)
            fputs ("\t.long ", file);
          else
-           fprintf (file, "\t.tc FD_%lx_%lx[TC],", k[0], k[1]);
-         fprintf (file, "0x%lx,0x%lx\n", k[0], k[1]);
+           fprintf (file, "\t.tc FD_%lx_%lx[TC],",
+                    k[0] & 0xffffffff, k[1] & 0xffffffff);
+         fprintf (file, "0x%lx,0x%lx\n",
+                  k[0] & 0xffffffff, k[1] & 0xffffffff);
          return;
        }
     }
@@ -10184,8 +10188,8 @@ output_toc (file, x, labelno, mode)
          if (TARGET_MINIMAL_TOC)
            fputs (DOUBLE_INT_ASM_OP, file);
          else
-           fprintf (file, "\t.tc FS_%lx[TC],", l);
-         fprintf (file, "0x%lx00000000\n", l);
+           fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff);
+         fprintf (file, "0x%lx00000000\n", l & 0xffffffff);
          return;
        }
       else
@@ -10193,8 +10197,8 @@ output_toc (file, x, labelno, mode)
          if (TARGET_MINIMAL_TOC)
            fputs ("\t.long ", file);
          else
-           fprintf (file, "\t.tc FS_%lx[TC],", l);
-         fprintf (file, "0x%lx\n", l);
+           fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff);
+         fprintf (file, "0x%lx\n", l & 0xffffffff);
          return;
        }
     }
@@ -10244,8 +10248,10 @@ output_toc (file, x, labelno, mode)
          if (TARGET_MINIMAL_TOC)
            fputs (DOUBLE_INT_ASM_OP, file);
          else
-           fprintf (file, "\t.tc ID_%lx_%lx[TC],", (long) high, (long) low);
-         fprintf (file, "0x%lx%08lx\n", (long) high, (long) low);
+           fprintf (file, "\t.tc ID_%lx_%lx[TC],",
+                    (long) high & 0xffffffff, (long) low & 0xffffffff);
+         fprintf (file, "0x%lx%08lx\n",
+                  (long) high & 0xffffffff, (long) low & 0xffffffff);
          return;
        }
       else
@@ -10256,16 +10262,17 @@ output_toc (file, x, labelno, mode)
                fputs ("\t.long ", file);
              else
                fprintf (file, "\t.tc ID_%lx_%lx[TC],",
-                        (long) high, (long) low);
-             fprintf (file, "0x%lx,0x%lx\n", (long) high, (long) low);
+                        (long) high & 0xffffffff, (long) low & 0xffffffff);
+             fprintf (file, "0x%lx,0x%lx\n",
+                      (long) high & 0xffffffff, (long) low & 0xffffffff);
            }
          else
            {
              if (TARGET_MINIMAL_TOC)
                fputs ("\t.long ", file);
              else
-               fprintf (file, "\t.tc IS_%lx[TC],", (long) low);
-             fprintf (file, "0x%lx\n", (long) low);
+               fprintf (file, "\t.tc IS_%lx[TC],", (long) low & 0xffffffff);
+             fprintf (file, "0x%lx\n", (long) low & 0xffffffff);
            }
          return;
        }