From 8ed86d01ca8b14c14f37429df136130158066f8a Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Fri, 15 Jun 2007 20:19:17 +0000 Subject: * 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. --- gdb/m68k-tdep.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gdb/m68k-tdep.h') diff --git a/gdb/m68k-tdep.h b/gdb/m68k-tdep.h index 200ddaf..584a870 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. */ -- cgit v1.1