OSDN Git Service

* config/i386/i386.md (ix86_code_end): Move the initialization of
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 2010 06:10:35 +0000 (06:10 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 2010 06:10:35 +0000 (06:10 +0000)
xops array near the consumer.  Use AX_REG and SP_REG instead of
numerical constants.

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

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md

index d23732f..152c0c2 100644 (file)
@@ -1,9 +1,14 @@
+2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (ix86_code_end): Move the initialization of
+       xops array near the consumer.  Use AX_REG and SP_REG instead of
+       numerical constants.
+
 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
 
-       * c-typeck.c (convert_arguments): Use warning 'too many arguments
-       to method [methodname]' for an Objective-C method instead of the
-       less satisfactory 'too many arguments to function' (with no method
-       name).
+       * c-typeck.c (convert_arguments): Use warning 'too many arguments to
+       method [methodname]' for an Objective-C method instead of the less
+       satisfactory 'too many arguments to function' (with no method name).
 
 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
 
index b258521..eb7f65f 100644 (file)
@@ -7964,12 +7964,12 @@ ix86_code_end (void)
   rtx xops[2];
   int regno;
 
-  for (regno = 0; regno < 8; ++regno)
+  for (regno = AX_REG; regno <= SP_REG; regno++)
     {
       char name[32];
       tree decl;
 
-      if (! ((pic_labels_used >> regno) & 1))
+      if (!(pic_labels_used & (1 << regno)))
        continue;
 
       get_pc_thunk_name (name, regno);
@@ -8022,10 +8022,8 @@ ix86_code_end (void)
       /* Make sure unwind info is emitted for the thunk if needed.  */
       final_start_function (emit_barrier (), asm_out_file, 1);
 
-      xops[0] = gen_rtx_REG (Pmode, regno);
-      xops[1] = gen_rtx_MEM (Pmode, stack_pointer_rtx);
       /* Pad stack IP move with 4 instructions (two NOPs count
-        as one instruction.)  */
+        as one instruction).  */
       if (TARGET_PAD_SHORT_FUNCTION)
        {
          int i = 8;
@@ -8034,6 +8032,8 @@ ix86_code_end (void)
            fputs ("\tnop\n", asm_out_file);
        }
 
+      xops[0] = gen_rtx_REG (Pmode, regno);
+      xops[1] = gen_rtx_MEM (Pmode, stack_pointer_rtx);
       output_asm_insn ("mov%z0\t{%1, %0|%0, %1}", xops);
       fputs ("\tret\n", asm_out_file);
       final_end_function ();
index 55086f3..adf528f 100644 (file)
        (unspec:SI [(const_int 0)] UNSPEC_SET_GOT))
    (clobber (reg:CC FLAGS_REG))]
   "!TARGET_64BIT"
-  { return output_set_got (operands[0], NULL_RTX); }
+  "* return output_set_got (operands[0], NULL_RTX);"
   [(set_attr "type" "multi")
    (set_attr "length" "12")])
 
         UNSPEC_SET_GOT))
    (clobber (reg:CC FLAGS_REG))]
   "!TARGET_64BIT"
-  { return output_set_got (operands[0], operands[1]); }
+  "* return output_set_got (operands[0], operands[1]);"
   [(set_attr "type" "multi")
    (set_attr "length" "12")])