aboutsummaryrefslogtreecommitdiff
path: root/gdb/i386-tdep.h
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2010-01-29 05:21:55 +0000
committerJoel Brobecker <brobecker@gnat.com>2010-01-29 05:21:55 +0000
commit80d19a06216c670b34c40f58d3773ff4436cf96a (patch)
tree158d60f6560a67a98c87f316054ce3b69be6e76c /gdb/i386-tdep.h
parentba581dc13b5e3ca555a49df501d5ac74287f504d (diff)
downloadfsf-binutils-gdb-80d19a06216c670b34c40f58d3773ff4436cf96a.zip
fsf-binutils-gdb-80d19a06216c670b34c40f58d3773ff4436cf96a.tar.gz
fsf-binutils-gdb-80d19a06216c670b34c40f58d3773ff4436cf96a.tar.bz2
amd64-windows: memory args passed by pointer during function calls.
* i386-tdep.h (gdbarch_tdep): Add field memory_args_by_pointer. * amd64-tdep.c (amd64_push_arguments): Add handling of architectures where tdep->memory_args_by_pointer is non-zero. * amd64-windows-tdep.c (amd64_windows_init_abi): Set tdep->memory_args_by_pointer to 1.
Diffstat (limited to 'gdb/i386-tdep.h')
-rw-r--r--gdb/i386-tdep.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
index d5b24fa..f79a15d 100644
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
@@ -86,6 +86,15 @@ struct gdbarch_tdep
the result in CLASS. Used on amd64 only. */
void (*classify) (struct type *type, enum amd64_reg_class class[2]);
+ /* 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
+ by register as well, if there are still some integer registers
+ available for argument passing. */
+ int memory_args_by_pointer;
+
/* Floating-point registers. */
struct regset *fpregset;
size_t sizeof_fpregset;