diff options
author | Joel Brobecker <brobecker@gnat.com> | 2010-01-29 05:27:36 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2010-01-29 05:27:36 +0000 |
commit | 3af6ddfec6363b97f9c850fef9f33e3bd2ad259c (patch) | |
tree | 7074dc990811de7f0acc59fd2f8103add8a08833 /gdb/i386-tdep.h | |
parent | Add summary line to the second to last entry. (diff) | |
download | binutils-gdb-3af6ddfec6363b97f9c850fef9f33e3bd2ad259c.tar.gz binutils-gdb-3af6ddfec6363b97f9c850fef9f33e3bd2ad259c.tar.bz2 binutils-gdb-3af6ddfec6363b97f9c850fef9f33e3bd2ad259c.zip |
amd64-windows: 32 bytes allocated on stack by caller for integer parameter registers
* i386-tdep.h (struct gdbarch_tdep): Add new field
integer_param_regs_saved_in_caller_frame.
* amd64-windows-tdep.c (amd64_windows_init_abi): Set
tdep->integer_param_regs_saved_in_caller_frame to 1.
* amd64-tdep.c (amd64_push_dummy_call): Allocate some memory on
stack if tdep->integer_param_regs_saved_in_caller_frame is set.
Diffstat (limited to 'gdb/i386-tdep.h')
-rw-r--r-- | gdb/i386-tdep.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h index f79a15de7c5..5915eb91325 100644 --- a/gdb/i386-tdep.h +++ b/gdb/i386-tdep.h @@ -82,12 +82,12 @@ struct gdbarch_tdep int call_dummy_num_integer_regs; int *call_dummy_integer_regs; - /* Classify TYPE according to calling conventions, and store - the result in CLASS. Used on amd64 only. */ + /* Used on amd64 only. Classify TYPE according to calling conventions, + and store the result in CLASS. */ void (*classify) (struct type *type, enum amd64_reg_class class[2]); - /* Non-zero if the first few MEMORY arguments should be passed by - pointer. + /* Used on amd64 only. 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 @@ -95,6 +95,16 @@ 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; |