OSDN Git Service

(output_prolog): Fixup code to set stack pointer if stack size > 32k.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 19 Aug 1995 21:19:42 +0000 (21:19 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 19 Aug 1995 21:19:42 +0000 (21:19 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10252 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/rs6000/rs6000.c

index 481a18f..0502dab 100644 (file)
@@ -2538,11 +2538,12 @@ output_prolog (file, size)
                     reg_names[1], - info->total_size, reg_names[1]);
       else
        {
+         int neg_size = - info->total_size;
          asm_fprintf (file, "\t{liu|lis} %s,%d\n\t{oril|ori} %s,%s,%d\n",
-                      reg_names[0], (info->total_size >> 16) & 0xffff,
-                      reg_names[0], reg_names[0], info->total_size & 0xffff);
+                      reg_names[0], (neg_size >> 16) & 0xffff,
+                      reg_names[0], reg_names[0], neg_size & 0xffff);
          asm_fprintf (file,
-                      (TARGET_64BIT) ? "\tstdux %s,%s,%s\n" : "\tstwux %s,%s,%s\n",
+                      (TARGET_64BIT) ? "\tstdux %s,%s,%s\n" : "\t{stux|stwux} %s,%s,%s\n",
                       reg_names[1], reg_names[1], reg_names[0]);
        }
     }