diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2003-07-09 21:36:08 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2003-07-09 21:36:08 +0000 |
commit | c481dac7370f894b353d64c3dd93a5d05643d097 (patch) | |
tree | edad0eaa40f5dee3b16761d28d438e2c5d955f73 /gdb/m68k-tdep.h | |
parent | 64176fa3bbc6e1bba7fabb2afaef1b991523b599 (diff) | |
download | gdb-c481dac7370f894b353d64c3dd93a5d05643d097.zip gdb-c481dac7370f894b353d64c3dd93a5d05643d097.tar.gz gdb-c481dac7370f894b353d64c3dd93a5d05643d097.tar.bz2 |
* 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.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/m68k-tdep.h b/gdb/m68k-tdep.h index a81cc8c..702e4fc 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 */ |