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.
This commit is contained in:
parent
20c2e3e0a3
commit
c1459fd652
3 changed files with 12 additions and 19 deletions
|
@ -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"
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue