mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-21 10:02:26 +00:00
* h8300-tdep.c: Add H8SX registers. Drop E_NUM_REGS entirely,
substitute by NUM_REGS throughout. (h8300_register_name): Only care for H8/300 and H8/300H registers. (h8300s_register_name): New function for H8S registers. (h8300sx_register_name): Ditto for H8SX registers. (h8300_print_register): Revise register printing, avoid depending on 32 bit long. (h8300_register_byte); Only care for H8/300 registers. (h8300h_register_byte): New function for any other architecture. (h8300_register_raw_size): Remove. (h8300_register_virtual_type): Revise to return actually useful type. (h8300_extract_struct_value_address): Only care for H8/300 registers. (h8300h_extract_struct_value_address): New function for any other architecture. (h8300_gdbarch_init): Add h8300sxn. Call set_gdbarch_num_regs, set_gdbarch_register_name, set_gdbarch_register_byte, set_gdbarch_ptr_bit and set_gdbarch_addr_bit architecture dependent. Remove calls to set_gdbarch_deprecated_register_size, set_gdbarch_deprecated_register_bytes, set_gdbarch_register_raw_size, set_gdbarch_deprecated_max_register_raw_size, set_gdbarch_register_virtual_size and set_gdbarch_deprecated_max_register_virtual_size entirely. Call set_gdbarch_long_long_bit, set_gdbarch_double_bit and set_gdbarch_long_double_bit.
This commit is contained in:
parent
1bcdb42447
commit
084edea536
@ -1,3 +1,31 @@
|
|||||||
|
2003-06-12 Corinna Vinschen <vinschen@redhat.com>
|
||||||
|
|
||||||
|
* h8300-tdep.c: Add H8SX registers. Drop E_NUM_REGS entirely,
|
||||||
|
substitute by NUM_REGS throughout.
|
||||||
|
(h8300_register_name): Only care for H8/300 and H8/300H registers.
|
||||||
|
(h8300s_register_name): New function for H8S registers.
|
||||||
|
(h8300sx_register_name): Ditto for H8SX registers.
|
||||||
|
(h8300_print_register): Revise register printing, avoid depending
|
||||||
|
on 32 bit long.
|
||||||
|
(h8300_register_byte); Only care for H8/300 registers.
|
||||||
|
(h8300h_register_byte): New function for any other architecture.
|
||||||
|
(h8300_register_raw_size): Remove.
|
||||||
|
(h8300_register_virtual_type): Revise to return actually useful
|
||||||
|
type.
|
||||||
|
(h8300_extract_struct_value_address): Only care for H8/300 registers.
|
||||||
|
(h8300h_extract_struct_value_address): New function for any other
|
||||||
|
architecture.
|
||||||
|
(h8300_gdbarch_init): Add h8300sxn. Call set_gdbarch_num_regs,
|
||||||
|
set_gdbarch_register_name, set_gdbarch_register_byte,
|
||||||
|
set_gdbarch_ptr_bit and set_gdbarch_addr_bit architecture dependent.
|
||||||
|
Remove calls to set_gdbarch_deprecated_register_size,
|
||||||
|
set_gdbarch_deprecated_register_bytes, set_gdbarch_register_raw_size,
|
||||||
|
set_gdbarch_deprecated_max_register_raw_size,
|
||||||
|
set_gdbarch_register_virtual_size and
|
||||||
|
set_gdbarch_deprecated_max_register_virtual_size entirely.
|
||||||
|
Call set_gdbarch_long_long_bit, set_gdbarch_double_bit and
|
||||||
|
set_gdbarch_long_double_bit.
|
||||||
|
|
||||||
2003-06-11 Jeff Johnston <jjohnstn@redhat.com>
|
2003-06-11 Jeff Johnston <jjohnstn@redhat.com>
|
||||||
|
|
||||||
* doublest.c (convert_doublest_to_floatformat): When dealing
|
* doublest.c (convert_doublest_to_floatformat): When dealing
|
||||||
|
172
gdb/h8300-tdep.c
172
gdb/h8300-tdep.c
@ -44,8 +44,6 @@ struct frame_extra_info
|
|||||||
CORE_ADDR locals_pointer;
|
CORE_ADDR locals_pointer;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define E_NUM_REGS (h8300smode ? 14 : 13)
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
h8300_reg_size = 2,
|
h8300_reg_size = 2,
|
||||||
@ -69,7 +67,11 @@ enum gdb_regnum
|
|||||||
E_CYCLES_REGNUM,
|
E_CYCLES_REGNUM,
|
||||||
E_TICK_REGNUM, E_EXR_REGNUM = E_TICK_REGNUM,
|
E_TICK_REGNUM, E_EXR_REGNUM = E_TICK_REGNUM,
|
||||||
E_INST_REGNUM, E_TICKS_REGNUM = E_INST_REGNUM,
|
E_INST_REGNUM, E_TICKS_REGNUM = E_INST_REGNUM,
|
||||||
E_INSTS_REGNUM
|
E_INSTS_REGNUM,
|
||||||
|
E_MACH_REGNUM,
|
||||||
|
E_MACL_REGNUM,
|
||||||
|
E_SBR_REGNUM,
|
||||||
|
E_VBR_REGNUM
|
||||||
};
|
};
|
||||||
|
|
||||||
#define UNSIGNED_SHORT(X) ((X) & 0xffff)
|
#define UNSIGNED_SHORT(X) ((X) & 0xffff)
|
||||||
@ -864,21 +866,47 @@ static struct cmd_list_element *setmachinelist;
|
|||||||
static const char *
|
static const char *
|
||||||
h8300_register_name (int regno)
|
h8300_register_name (int regno)
|
||||||
{
|
{
|
||||||
/* The register names change depending on whether the h8300h processor
|
/* The register names change depending on which h8300 processor
|
||||||
type is selected. */
|
type is selected. */
|
||||||
static char *h8300_register_names[] = {
|
static char *register_names[] = {
|
||||||
"r0", "r1", "r2", "r3", "r4", "r5", "r6",
|
"r0", "r1", "r2", "r3", "r4", "r5", "r6",
|
||||||
"sp", "ccr","pc","cycles", "tick", "inst", ""
|
"sp", "ccr","pc","cycles", "tick", "inst", ""
|
||||||
};
|
};
|
||||||
static char *h8300s_register_names[] = {
|
if (regno < 0
|
||||||
|
|| regno >= (sizeof (register_names) / sizeof (*register_names)))
|
||||||
|
internal_error (__FILE__, __LINE__,
|
||||||
|
"h8300_register_name: illegal register number %d", regno);
|
||||||
|
else
|
||||||
|
return register_names[regno];
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *
|
||||||
|
h8300s_register_name (int regno)
|
||||||
|
{
|
||||||
|
static char *register_names[] = {
|
||||||
"er0", "er1", "er2", "er3", "er4", "er5", "er6",
|
"er0", "er1", "er2", "er3", "er4", "er5", "er6",
|
||||||
"sp", "ccr", "pc", "cycles", "exr", "tick", "inst"
|
"sp", "ccr", "pc", "cycles", "exr", "tick", "inst"
|
||||||
};
|
};
|
||||||
char **register_names =
|
if (regno < 0
|
||||||
h8300smode ? h8300s_register_names : h8300_register_names;
|
|| regno >= (sizeof (register_names) / sizeof (*register_names)))
|
||||||
if (regno < 0 || regno >= E_NUM_REGS)
|
|
||||||
internal_error (__FILE__, __LINE__,
|
internal_error (__FILE__, __LINE__,
|
||||||
"h8300_register_name: illegal register number %d", regno);
|
"h8300s_register_name: illegal register number %d", regno);
|
||||||
|
else
|
||||||
|
return register_names[regno];
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *
|
||||||
|
h8300sx_register_name (int regno)
|
||||||
|
{
|
||||||
|
static char *register_names[] = {
|
||||||
|
"er0", "er1", "er2", "er3", "er4", "er5", "er6",
|
||||||
|
"sp", "ccr", "pc", "cycles", "exr", "tick", "inst",
|
||||||
|
"mach", "macl", "sbr", "vbr"
|
||||||
|
};
|
||||||
|
if (regno < 0
|
||||||
|
|| regno >= (sizeof (register_names) / sizeof (*register_names)))
|
||||||
|
internal_error (__FILE__, __LINE__,
|
||||||
|
"h8300sx_register_name: illegal register number %d", regno);
|
||||||
else
|
else
|
||||||
return register_names[regno];
|
return register_names[regno];
|
||||||
}
|
}
|
||||||
@ -887,44 +915,30 @@ static void
|
|||||||
h8300_print_register (struct gdbarch *gdbarch, struct ui_file *file,
|
h8300_print_register (struct gdbarch *gdbarch, struct ui_file *file,
|
||||||
struct frame_info *frame, int regno)
|
struct frame_info *frame, int regno)
|
||||||
{
|
{
|
||||||
ULONGEST rval;
|
LONGEST rval;
|
||||||
long val;
|
const char *name = gdbarch_register_name (gdbarch, regno);
|
||||||
const char *name = h8300_register_name (regno);
|
|
||||||
|
|
||||||
if (!name || !*name)
|
if (!name || !*name)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* FIXME: cagney/2002-10-22: The code below assumes that VAL is at
|
frame_read_signed_register (frame, regno, &rval);
|
||||||
least 4 bytes (32 bits) in size and hence is large enough to hold
|
|
||||||
the largest h8300 register. Should instead be using ULONGEST and
|
|
||||||
the phex() functions. */
|
|
||||||
gdb_assert (sizeof (val) >= 4);
|
|
||||||
frame_read_unsigned_register (frame, regno, &rval);
|
|
||||||
val = rval;
|
|
||||||
|
|
||||||
fprintf_filtered (file, "%-14s ", name);
|
fprintf_filtered (file, "%-14s ", name);
|
||||||
if (h8300hmode)
|
if (regno == E_CCR_REGNUM || (regno == E_EXR_REGNUM && h8300smode))
|
||||||
{
|
{
|
||||||
if (val)
|
fprintf_filtered (file, "0x%02x ", (unsigned char)rval);
|
||||||
fprintf_filtered (file, "0x%08lx %-8ld", val, val);
|
print_longest (file, 'u', 1, rval);
|
||||||
else
|
|
||||||
fprintf_filtered (file, "0x%-8lx %-8ld", val, val);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (val)
|
fprintf_filtered (file, "0x%s ", phex ((ULONGEST)rval, BINWORD));
|
||||||
fprintf_filtered (file, "0x%04lx %-4ld", val, val);
|
print_longest (file, 'd', 1, rval);
|
||||||
else
|
|
||||||
fprintf_filtered (file, "0x%-4lx %-4ld", val, val);
|
|
||||||
}
|
}
|
||||||
if (regno == E_CCR_REGNUM)
|
if (regno == E_CCR_REGNUM)
|
||||||
{
|
{
|
||||||
/* CCR register */
|
/* CCR register */
|
||||||
int C, Z, N, V;
|
int C, Z, N, V;
|
||||||
unsigned char b[h8300h_reg_size];
|
unsigned char l = rval & 0xff;
|
||||||
unsigned char l;
|
|
||||||
frame_register_read (deprecated_selected_frame, regno, b);
|
|
||||||
l = b[REGISTER_VIRTUAL_SIZE (E_CCR_REGNUM) - 1];
|
|
||||||
fprintf_filtered (file, "\t");
|
fprintf_filtered (file, "\t");
|
||||||
fprintf_filtered (file, "I-%d ", (l & 0x80) != 0);
|
fprintf_filtered (file, "I-%d ", (l & 0x80) != 0);
|
||||||
fprintf_filtered (file, "UI-%d ", (l & 0x40) != 0);
|
fprintf_filtered (file, "UI-%d ", (l & 0x40) != 0);
|
||||||
@ -962,10 +976,7 @@ h8300_print_register (struct gdbarch *gdbarch, struct ui_file *file,
|
|||||||
else if (regno == E_EXR_REGNUM && h8300smode)
|
else if (regno == E_EXR_REGNUM && h8300smode)
|
||||||
{
|
{
|
||||||
/* EXR register */
|
/* EXR register */
|
||||||
unsigned char b[h8300h_reg_size];
|
unsigned char l = rval & 0xff;
|
||||||
unsigned char l;
|
|
||||||
frame_register_read (deprecated_selected_frame, regno, b);
|
|
||||||
l = b[REGISTER_VIRTUAL_SIZE (E_EXR_REGNUM) - 1];
|
|
||||||
fprintf_filtered (file, "\t");
|
fprintf_filtered (file, "\t");
|
||||||
fprintf_filtered (file, "T-%d - - - ", (l & 0x80) != 0);
|
fprintf_filtered (file, "T-%d - - - ", (l & 0x80) != 0);
|
||||||
fprintf_filtered (file, "I2-%d ", (l & 4) != 0);
|
fprintf_filtered (file, "I2-%d ", (l & 4) != 0);
|
||||||
@ -980,7 +991,7 @@ h8300_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file,
|
|||||||
struct frame_info *frame, int regno, int cpregs)
|
struct frame_info *frame, int regno, int cpregs)
|
||||||
{
|
{
|
||||||
if (regno < 0)
|
if (regno < 0)
|
||||||
for (regno = 0; regno < E_NUM_REGS; ++regno)
|
for (regno = 0; regno < NUM_REGS; ++regno)
|
||||||
h8300_print_register (gdbarch, file, frame, regno);
|
h8300_print_register (gdbarch, file, frame, regno);
|
||||||
else
|
else
|
||||||
h8300_print_register (gdbarch, file, frame, regno);
|
h8300_print_register (gdbarch, file, frame, regno);
|
||||||
@ -995,34 +1006,50 @@ h8300_saved_pc_after_call (struct frame_info *ignore)
|
|||||||
static int
|
static int
|
||||||
h8300_register_byte (int regno)
|
h8300_register_byte (int regno)
|
||||||
{
|
{
|
||||||
if (regno < 0 || regno >= E_NUM_REGS)
|
if (regno < 0 || regno >= NUM_REGS)
|
||||||
internal_error (__FILE__, __LINE__,
|
internal_error (__FILE__, __LINE__,
|
||||||
"h8300_register_byte: illegal register number %d", regno);
|
"h8300_register_byte: illegal register number %d", regno);
|
||||||
else
|
else
|
||||||
return regno * BINWORD;
|
return regno * h8300_reg_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
h8300_register_raw_size (int regno)
|
h8300h_register_byte (int regno)
|
||||||
{
|
{
|
||||||
if (regno < 0 || regno >= E_NUM_REGS)
|
if (regno < 0 || regno >= NUM_REGS)
|
||||||
internal_error (__FILE__, __LINE__,
|
internal_error (__FILE__, __LINE__,
|
||||||
"h8300_register_raw_size: illegal register number %d",
|
"h8300_register_byte: illegal register number %d", regno);
|
||||||
regno);
|
|
||||||
else
|
else
|
||||||
return BINWORD;
|
return regno * h8300h_reg_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct type *
|
static struct type *
|
||||||
h8300_register_virtual_type (int regno)
|
h8300_register_virtual_type (int regno)
|
||||||
{
|
{
|
||||||
if (regno < 0 || regno >= E_NUM_REGS)
|
if (regno < 0 || regno >= NUM_REGS)
|
||||||
internal_error (__FILE__, __LINE__,
|
internal_error (__FILE__, __LINE__,
|
||||||
"h8300_register_virtual_type: illegal register number %d",
|
"h8300_register_virtual_type: illegal register number %d",
|
||||||
regno);
|
regno);
|
||||||
else
|
else
|
||||||
return h8300hmode ?
|
{
|
||||||
builtin_type_unsigned_long : builtin_type_unsigned_short;
|
switch (regno)
|
||||||
|
{
|
||||||
|
case E_PC_REGNUM:
|
||||||
|
return builtin_type_void_func_ptr;
|
||||||
|
case E_SP_REGNUM:
|
||||||
|
case E_FP_REGNUM:
|
||||||
|
return builtin_type_void_data_ptr;
|
||||||
|
case E_CCR_REGNUM:
|
||||||
|
return builtin_type_uint8;
|
||||||
|
case E_EXR_REGNUM:
|
||||||
|
if (h8300smode)
|
||||||
|
return builtin_type_uint8;
|
||||||
|
/*FALLTHRU*/
|
||||||
|
default:
|
||||||
|
return h8300hmode ? builtin_type_int32
|
||||||
|
: builtin_type_int16;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1042,7 +1069,15 @@ h8300_extract_struct_value_address (char *regbuf)
|
|||||||
{
|
{
|
||||||
return
|
return
|
||||||
extract_unsigned_integer (regbuf + h8300_register_byte (E_ARG0_REGNUM),
|
extract_unsigned_integer (regbuf + h8300_register_byte (E_ARG0_REGNUM),
|
||||||
h8300_register_raw_size (E_ARG0_REGNUM));
|
h8300_reg_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
static CORE_ADDR
|
||||||
|
h8300h_extract_struct_value_address (char *regbuf)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
extract_unsigned_integer (regbuf + h8300_register_byte (E_ARG0_REGNUM),
|
||||||
|
h8300h_reg_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
const static unsigned char *
|
const static unsigned char *
|
||||||
@ -1081,34 +1116,55 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|||||||
if (info.bfd_arch_info->arch != bfd_arch_h8300)
|
if (info.bfd_arch_info->arch != bfd_arch_h8300)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
gdbarch = gdbarch_alloc (&info, 0);
|
||||||
|
|
||||||
switch (info.bfd_arch_info->mach)
|
switch (info.bfd_arch_info->mach)
|
||||||
{
|
{
|
||||||
case bfd_mach_h8300:
|
case bfd_mach_h8300:
|
||||||
h8300sxmode = 0;
|
h8300sxmode = 0;
|
||||||
h8300smode = 0;
|
h8300smode = 0;
|
||||||
h8300hmode = 0;
|
h8300hmode = 0;
|
||||||
|
set_gdbarch_num_regs (gdbarch, 13);
|
||||||
|
set_gdbarch_register_name (gdbarch, h8300_register_name);
|
||||||
|
set_gdbarch_register_byte (gdbarch, h8300_register_byte);
|
||||||
|
set_gdbarch_ptr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
|
||||||
|
set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
|
||||||
break;
|
break;
|
||||||
case bfd_mach_h8300h:
|
case bfd_mach_h8300h:
|
||||||
case bfd_mach_h8300hn:
|
case bfd_mach_h8300hn:
|
||||||
h8300sxmode = 0;
|
h8300sxmode = 0;
|
||||||
h8300smode = 0;
|
h8300smode = 0;
|
||||||
h8300hmode = 1;
|
h8300hmode = 1;
|
||||||
|
set_gdbarch_num_regs (gdbarch, 13);
|
||||||
|
set_gdbarch_register_name (gdbarch, h8300_register_name);
|
||||||
|
set_gdbarch_register_byte (gdbarch, h8300h_register_byte);
|
||||||
|
set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
|
set_gdbarch_addr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
break;
|
break;
|
||||||
case bfd_mach_h8300s:
|
case bfd_mach_h8300s:
|
||||||
case bfd_mach_h8300sn:
|
case bfd_mach_h8300sn:
|
||||||
h8300sxmode = 0;
|
h8300sxmode = 0;
|
||||||
h8300smode = 1;
|
h8300smode = 1;
|
||||||
h8300hmode = 1;
|
h8300hmode = 1;
|
||||||
|
set_gdbarch_num_regs (gdbarch, 14);
|
||||||
|
set_gdbarch_register_name (gdbarch, h8300s_register_name);
|
||||||
|
set_gdbarch_register_byte (gdbarch, h8300h_register_byte);
|
||||||
|
set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
|
set_gdbarch_addr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
break;
|
break;
|
||||||
case bfd_mach_h8300sx:
|
case bfd_mach_h8300sx:
|
||||||
|
case bfd_mach_h8300sxn:
|
||||||
h8300sxmode = 1;
|
h8300sxmode = 1;
|
||||||
h8300smode = 1;
|
h8300smode = 1;
|
||||||
h8300hmode = 1;
|
h8300hmode = 1;
|
||||||
|
set_gdbarch_num_regs (gdbarch, 18);
|
||||||
|
set_gdbarch_register_name (gdbarch, h8300sx_register_name);
|
||||||
|
set_gdbarch_register_byte (gdbarch, h8300h_register_byte);
|
||||||
|
set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
|
set_gdbarch_addr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
gdbarch = gdbarch_alloc (&info, 0);
|
|
||||||
|
|
||||||
/* NOTE: cagney/2002-12-06: This can be deleted when this arch is
|
/* NOTE: cagney/2002-12-06: This can be deleted when this arch is
|
||||||
ready to unwind the PC first (see frame.c:get_prev_frame()). */
|
ready to unwind the PC first (see frame.c:get_prev_frame()). */
|
||||||
set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
|
set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
|
||||||
@ -1117,19 +1173,10 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|||||||
* Basic register fields and methods.
|
* Basic register fields and methods.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
set_gdbarch_num_regs (gdbarch, E_NUM_REGS);
|
|
||||||
set_gdbarch_num_pseudo_regs (gdbarch, 0);
|
set_gdbarch_num_pseudo_regs (gdbarch, 0);
|
||||||
set_gdbarch_sp_regnum (gdbarch, E_SP_REGNUM);
|
set_gdbarch_sp_regnum (gdbarch, E_SP_REGNUM);
|
||||||
set_gdbarch_deprecated_fp_regnum (gdbarch, E_FP_REGNUM);
|
set_gdbarch_deprecated_fp_regnum (gdbarch, E_FP_REGNUM);
|
||||||
set_gdbarch_pc_regnum (gdbarch, E_PC_REGNUM);
|
set_gdbarch_pc_regnum (gdbarch, E_PC_REGNUM);
|
||||||
set_gdbarch_register_name (gdbarch, h8300_register_name);
|
|
||||||
set_gdbarch_deprecated_register_size (gdbarch, BINWORD);
|
|
||||||
set_gdbarch_deprecated_register_bytes (gdbarch, E_NUM_REGS * BINWORD);
|
|
||||||
set_gdbarch_register_byte (gdbarch, h8300_register_byte);
|
|
||||||
set_gdbarch_register_raw_size (gdbarch, h8300_register_raw_size);
|
|
||||||
set_gdbarch_deprecated_max_register_raw_size (gdbarch, h8300h_reg_size);
|
|
||||||
set_gdbarch_register_virtual_size (gdbarch, h8300_register_raw_size);
|
|
||||||
set_gdbarch_deprecated_max_register_virtual_size (gdbarch, h8300h_reg_size);
|
|
||||||
set_gdbarch_register_virtual_type (gdbarch, h8300_register_virtual_type);
|
set_gdbarch_register_virtual_type (gdbarch, h8300_register_virtual_type);
|
||||||
set_gdbarch_print_registers_info (gdbarch, h8300_print_registers_info);
|
set_gdbarch_print_registers_info (gdbarch, h8300_print_registers_info);
|
||||||
set_gdbarch_print_float_info (gdbarch, h8300_print_float_info);
|
set_gdbarch_print_float_info (gdbarch, h8300_print_float_info);
|
||||||
@ -1187,8 +1234,9 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|||||||
|
|
||||||
set_gdbarch_int_bit (gdbarch, 2 * TARGET_CHAR_BIT);
|
set_gdbarch_int_bit (gdbarch, 2 * TARGET_CHAR_BIT);
|
||||||
set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
set_gdbarch_ptr_bit (gdbarch, BINWORD * TARGET_CHAR_BIT);
|
set_gdbarch_long_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
set_gdbarch_addr_bit (gdbarch, BINWORD * TARGET_CHAR_BIT);
|
set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
|
set_gdbarch_long_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||||
|
|
||||||
/* set_gdbarch_stack_align (gdbarch, SOME_stack_align); */
|
/* set_gdbarch_stack_align (gdbarch, SOME_stack_align); */
|
||||||
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
|
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user