summaryrefslogtreecommitdiff
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
commit09ffeaf7f4252c5177063a04b70886b604431142 (patch)
tree290cf05837fc06b91546b4ad811476d98ceedc9b /gdb/i386-tdep.h
parent285e284cdcd5bd63bf316ddefaf642833d5a0f6a (diff)
downloadgdb-09ffeaf7f4252c5177063a04b70886b604431142.tar.gz
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 d5b24faf729..f79a15de7c5 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;