summaryrefslogtreecommitdiff
path: root/gdb/m68k-tdep.h
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2003-07-09 21:36:08 +0000
committerAndreas Schwab <schwab@suse.de>2003-07-09 21:36:08 +0000
commit71159d89b9b0fd23e1eb1085a9c3117f7f59f902 (patch)
treeb5af2aaf93a1e29c62d8b1f8a2c0c5c06d269eba /gdb/m68k-tdep.h
parentc81b613a69dad126009fa6bb8cf09b2cdded0535 (diff)
downloadgdb-71159d89b9b0fd23e1eb1085a9c3117f7f59f902.tar.gz
* m68k-tdep.h (enum struct_return): Define.
(struct gdbarch_tdep): Add struct_return. * m68k-tdep.c (m68k_push_dummy_call): Non-scalars bigger than 4 bytes are padded to the right, not to the left. Pass struct value address in register %a1, not on stack. (m68k_use_struct_convention): New function. (m68k_gdbarch_init): Set use_struct_convention. Initialize struct_return in tdep to pcc_struct_return. * m68klinux-tdep.c (m68k_linux_init_abi): Set struct_return to reg_struct_return.
Diffstat (limited to 'gdb/m68k-tdep.h')
-rw-r--r--gdb/m68k-tdep.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/m68k-tdep.h b/gdb/m68k-tdep.h
index a81cc8cf86a..702e4fc04d5 100644
--- a/gdb/m68k-tdep.h
+++ b/gdb/m68k-tdep.h
@@ -61,6 +61,14 @@ struct m68k_sigtramp_info
int *sc_reg_offset;
};
+/* Convention for returning structures. */
+
+enum struct_return
+{
+ pcc_struct_return, /* Return "short" structures in memory. */
+ reg_struct_return /* Return "short" structures in registers. */
+};
+
/* Target-dependent structure in gdbarch. */
struct gdbarch_tdep
{
@@ -72,6 +80,9 @@ struct gdbarch_tdep
/* Get info about sigtramp. */
struct m68k_sigtramp_info (*get_sigtramp_info) (struct frame_info *);
+
+ /* Convention for returning structures. */
+ enum struct_return struct_return;
};
#endif /* M68K_TDEP_H */