Revert use of integer_param_regs_saved_in_caller_frame in i386 gdbarch_tdep.
authorJoel Brobecker <brobecker@gnat.com>
Tue, 24 Sep 2013 16:13:49 +0000 (16:13 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Tue, 24 Sep 2013 16:13:49 +0000 (16:13 +0000)
This is no longer useful, as it was introduced to reuse the funcall
handling code in amd64-tdep.c in the context of x64-windows. But
we have since then changed the implementations to be completely
independent of each other.

This reverts the non-windows-specific part of the change called:
    amd64-windows: 32 bytes allocated on stack by caller for integer
    parameter regs
(the x64-windows portion has already been reverted)

gdb/ChangeLog:

        Revert:
        * i386-tdep.h (struct gdbarch_tdep): Add new field
        integer_param_regs_saved_in_caller_frame.
        * amd64-tdep.c (amd64_push_dummy_call): Allocate some memory on
        stack if tdep->integer_param_regs_saved_in_caller_frame is set.

gdb/ChangeLog
gdb/amd64-tdep.c
gdb/i386-tdep.h

index 71602a0a752413622ad70882dae5220ada8bd918..1977ff0b541072f9d2a5b704d7e93815fb15f3ff 100644 (file)
@@ -1,3 +1,11 @@
+2013-09-24  Joel Brobecker  <brobecker@adacore.com>
+
+       Revert:
+       * i386-tdep.h (struct gdbarch_tdep): Add new field
+       integer_param_regs_saved_in_caller_frame.
+       * amd64-tdep.c (amd64_push_dummy_call): Allocate some memory on
+       stack if tdep->integer_param_regs_saved_in_caller_frame is set.
+
 2013-09-24  Joel Brobecker  <brobecker@adacore.com>
 
        * amd64-tdep.c: #include "value.h"
index 3ab74f035c005de2c25c78f8e93904e89a88ed6b..ec6bfc6909c20b2e759c87f974ebb3e3eacce761 100644 (file)
@@ -926,11 +926,6 @@ amd64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
       regcache_cooked_write (regcache, arg_regnum, buf);
     }
 
-  /* Reserve some memory on the stack for the integer-parameter registers,
-     if required by the ABI.  */
-  if (tdep->integer_param_regs_saved_in_caller_frame)
-    sp -= tdep->call_dummy_num_integer_regs * 8;
-
   /* Store return address.  */
   sp -= 8;
   store_unsigned_integer (buf, 8, byte_order, bp_addr);
index 69bd281aaa2de04a82714736afffce7c9f359acc..8113dcc5ac0fc86b0366e07356f24c51d030f5ec 100644 (file)
@@ -81,12 +81,12 @@ struct gdbarch_tdep
   int call_dummy_num_integer_regs;
   int *call_dummy_integer_regs;
 
-  /* Used on amd64 only.  Classify TYPE according to calling conventions,
-     and store the result in CLASS.  */
+  /* Classify TYPE according to calling conventions, and store
+     the result in CLASS.  Used on amd64 only.  */
   void (*classify) (struct type *type, enum amd64_reg_class class[2]);
 
-  /* Used on amd64 only.  Non-zero if the first few MEMORY arguments
-     should be passed by pointer.
+  /* Non-zero if the first few MEMORY arguments should be passed by
+     pointer.
 
      More precisely, MEMORY arguments are passed through the stack.
      But certain architectures require that their address be passed
@@ -94,16 +94,6 @@ struct gdbarch_tdep
      available for argument passing.  */
   int memory_args_by_pointer;
 
-  /* Used on amd64 only.
-
-     If non-zero, then the callers of a function are expected to reserve
-     some space in the stack just before the area where the PC is saved
-     so that the callee may save the integer-parameter registers there.
-     The amount of space is dependent on the list of registers used for
-     integer parameter passing (see component call_dummy_num_integer_regs
-     above).  */
-  int integer_param_regs_saved_in_caller_frame;
-
   /* Floating-point registers.  */
   struct regset *fpregset;
   size_t sizeof_fpregset;