OSDN Git Service

* config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Mar 2002 23:56:33 +0000 (23:56 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Mar 2002 23:56:33 +0000 (23:56 +0000)
        adjust argument_pointer by pretend_args_size.
        (ia64_va_start): Adjust va_start address by -pretend_args_size.

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

gcc/ChangeLog
gcc/config/ia64/ia64.c

index 0b9b000..fb046f4 100644 (file)
@@ -1,3 +1,9 @@
+2002-03-01  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
+       adjust argument_pointer by pretend_args_size.
+       (ia64_va_start): Adjust va_start address by -pretend_args_size.
+
 2002-03-01  Kazu Hirata  <kazu@hxi.com>
 
        * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
index c4b6afb..e4f6268 100644 (file)
@@ -1664,10 +1664,9 @@ ia64_initial_elimination_offset (from, to)
       /* Arguments start above the 16 byte save area, unless stdarg
         in which case we store through the 16 byte save area.  */
       if (to == HARD_FRAME_POINTER_REGNUM)
-       offset = 16 - current_function_pretend_args_size;
+       offset = 16;
       else if (to == STACK_POINTER_REGNUM)
-       offset = (current_frame_info.total_size
-                 + 16 - current_function_pretend_args_size);
+       offset = current_frame_info.total_size + 16;
       else
        abort ();
       break;
@@ -3220,7 +3219,7 @@ ia64_va_start (stdarg_p, valist, nextarg)
   else
     ofs = (arg_words >= MAX_ARGUMENT_SLOTS ? -UNITS_PER_WORD : 0);
 
-  nextarg = plus_constant (nextarg, ofs);
+  nextarg = plus_constant (nextarg, ofs - current_function_pretend_args_size);
   std_expand_builtin_va_start (1, valist, nextarg);
 }