aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2013-09-24 16:13:49 +0000
committerJoel Brobecker <brobecker@gnat.com>2013-09-24 16:13:49 +0000
commitc1459fd6522c2074924ddca79d447befde2b35cf (patch)
tree7c12e1e93c99ebcd75f432072c31f9339fdc89d3
parent20c2e3e0a3f61aa9f1ee50618a969e0b51225be3 (diff)
downloadgdb-c1459fd6522c2074924ddca79d447befde2b35cf.zip
gdb-c1459fd6522c2074924ddca79d447befde2b35cf.tar.gz
gdb-c1459fd6522c2074924ddca79d447befde2b35cf.tar.bz2
Revert use of integer_param_regs_saved_in_caller_frame in i386 gdbarch_tdep.
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.
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/amd64-tdep.c5
-rw-r--r--gdb/i386-tdep.h18
3 files changed, 12 insertions, 19 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 71602a0..1977ff0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
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"
(amd64_windows_classify): Delete.
(amd64_windows_passed_by_integer_register)
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 3ab74f0..ec6bfc6 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -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);
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
index 69bd281..8113dcc 100644
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
@@ -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;