aboutsummaryrefslogtreecommitdiff
path: root/gdb/v850-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/v850-tdep.c')
-rw-r--r--gdb/v850-tdep.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c
index f829f4d..70f6d42 100644
--- a/gdb/v850-tdep.c
+++ b/gdb/v850-tdep.c
@@ -264,15 +264,15 @@ enum v850_abi
/* Architecture specific data. */
-struct gdbarch_tdep
+struct v850_gdbarch_tdep : gdbarch_tdep
{
/* Fields from the ELF header. */
- int e_flags;
- int e_machine;
+ int e_flags = 0;
+ int e_machine = 0;
/* Which ABI are we using? */
- enum v850_abi abi;
- int eight_byte_align;
+ enum v850_abi abi {};
+ int eight_byte_align = 0;
};
struct v850_frame_cache
@@ -510,8 +510,9 @@ v850_use_struct_convention (struct gdbarch *gdbarch, struct type *type)
{
int i;
struct type *fld_type, *tgt_type;
+ v850_gdbarch_tdep *tdep = (v850_gdbarch_tdep *) gdbarch_tdep (gdbarch);
- if (gdbarch_tdep (gdbarch)->abi == V850_ABI_RH850)
+ if (tdep->abi == V850_ABI_RH850)
{
if (v850_type_is_scalar (type) && TYPE_LENGTH(type) <= 8)
return 0;
@@ -1021,8 +1022,9 @@ v850_push_dummy_call (struct gdbarch *gdbarch,
int argnum;
int arg_space = 0;
int stack_offset;
+ v850_gdbarch_tdep *tdep = (v850_gdbarch_tdep *) gdbarch_tdep (gdbarch);
- if (gdbarch_tdep (gdbarch)->abi == V850_ABI_RH850)
+ if (tdep->abi == V850_ABI_RH850)
stack_offset = 0;
else
{
@@ -1054,7 +1056,7 @@ v850_push_dummy_call (struct gdbarch *gdbarch,
gdb_byte valbuf[v850_reg_size];
if (!v850_type_is_scalar (value_type (*args))
- && gdbarch_tdep (gdbarch)->abi == V850_ABI_GCC
+ && tdep->abi == V850_ABI_GCC
&& TYPE_LENGTH (value_type (*args)) > E_MAX_RETTYPE_SIZE_IN_REGS)
{
store_unsigned_integer (valbuf, 4, byte_order,
@@ -1068,7 +1070,7 @@ v850_push_dummy_call (struct gdbarch *gdbarch,
val = (gdb_byte *) value_contents (*args).data ();
}
- if (gdbarch_tdep (gdbarch)->eight_byte_align
+ if (tdep->eight_byte_align
&& v850_eight_byte_align_p (value_type (*args)))
{
if (argreg <= E_ARGLAST_REGNUM && (argreg & 1))
@@ -1348,7 +1350,6 @@ static struct gdbarch *
v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
{
struct gdbarch *gdbarch;
- struct gdbarch_tdep *tdep;
int e_flags, e_machine;
/* Extract the elf_flags if available. */
@@ -1371,13 +1372,16 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
arches != NULL;
arches = gdbarch_list_lookup_by_info (arches->next, &info))
{
- if (gdbarch_tdep (arches->gdbarch)->e_flags != e_flags
- || gdbarch_tdep (arches->gdbarch)->e_machine != e_machine)
+ v850_gdbarch_tdep *tdep
+ = (v850_gdbarch_tdep *) gdbarch_tdep (arches->gdbarch);
+
+ if (tdep->e_flags != e_flags || tdep->e_machine != e_machine)
continue;
return arches->gdbarch;
}
- tdep = XCNEW (struct gdbarch_tdep);
+
+ v850_gdbarch_tdep *tdep = new v850_gdbarch_tdep;
tdep->e_flags = e_flags;
tdep->e_machine = e_machine;