aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2007-06-15 20:19:17 +0000
committerVladimir Prus <vladimir@codesourcery.com>2007-06-15 20:19:17 +0000
commit8ed86d01ca8b14c14f37429df136130158066f8a (patch)
treea3231e56da4ff518ccdf29560df00bcc783ede04 /gdb/m68k-tdep.h
parent * NEWS: Mention "info spu" commands and qXfer:spu:read and (diff)
downloadbinutils-gdb-8ed86d01ca8b14c14f37429df136130158066f8a.tar.gz
binutils-gdb-8ed86d01ca8b14c14f37429df136130158066f8a.tar.bz2
binutils-gdb-8ed86d01ca8b14c14f37429df136130158066f8a.zip
* m68k-tdep.h (enum m68k_flavour): New.
(struct gdbarch_tdep): New fields float_return, flavour and fpregs_present. * m68k-tdep.c (m68k_register_type): Use fpregs_present and conditionalize floating registers type on flavour. (m68k_register_names): New. (m68k_register_name): Use the above. (m68k_convert_register_p): Consult fpregs_present. (m68k_register_to_value, m68k_value_to_register): Use register_type to obtain the type of floating point registers. (m68k_svr4_extract_return_value): Check tdep->float_return. Use register_type to get the type of floating point regiters. (m68k_svr4_store_return_value): Likewise. (m68k_dwarf_reg_to_regnum): Check tdep->fpregs_present. (m68k_analyze_register_saves): Likewise. (m68k_gdbarch_init): Extract infromation from XML description, if present. Guess coldfire by looking at the file, if present. Conditionalize setting of long double format. Set decr_pc_after_break to 2 on coldfire and fido. Enable XML-driven register description. * m68kbsd-tdep.c (m68kbsd_fpreg_offset): Use size of tdep->fpreg_type, as opposed to hardcoded value. * Makefile.in (m68k-tdep.o): Update dependencies.
Diffstat (limited to 'gdb/m68k-tdep.h')
-rw-r--r--gdb/m68k-tdep.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/gdb/m68k-tdep.h b/gdb/m68k-tdep.h
index 200ddafb028..584a8708f64 100644
--- a/gdb/m68k-tdep.h
+++ b/gdb/m68k-tdep.h
@@ -60,6 +60,14 @@ enum struct_return
reg_struct_return /* Return "short" structures in registers. */
};
+/* Particular flavour of m68k. */
+enum m68k_flavour
+ {
+ m68k_no_flavour,
+ m68k_coldfire_flavour,
+ m68k_fido_flavour
+ };
+
/* Target-dependent structure in gdbarch. */
struct gdbarch_tdep
@@ -76,6 +84,16 @@ struct gdbarch_tdep
/* Convention for returning structures. */
enum struct_return struct_return;
+
+ /* Convention for returning floats. zero in int regs, non-zero in float. */
+ int float_return;
+
+ /* The particular flavour of m68k. */
+ enum m68k_flavour flavour;
+
+ /* Flag set if the floating point registers are present, or assumed
+ to be present. */
+ int fpregs_present;
};
/* Initialize a SVR4 architecture variant. */