forked from Imagelibrary/binutils-gdb
import gdb-1999-06-14 snapshot
This commit is contained in:
112
gdb/d10v-tdep.c
112
gdb/d10v-tdep.c
@@ -924,7 +924,7 @@ d10v_push_arguments (nargs, args, sp, struct_return, struct_addr)
|
||||
{
|
||||
char ptr[2];
|
||||
/* arg will go onto stack */
|
||||
store_address (ptr, val & 0xffff, 2);
|
||||
store_address (ptr, 2, val & 0xffff);
|
||||
si = push_stack_item (si, ptr, 2);
|
||||
}
|
||||
}
|
||||
@@ -1322,12 +1322,122 @@ display_trace (low, high)
|
||||
}
|
||||
|
||||
|
||||
static gdbarch_init_ftype d10v_gdbarch_init;
|
||||
static struct gdbarch *
|
||||
d10v_gdbarch_init (info, arches)
|
||||
struct gdbarch_info info;
|
||||
struct gdbarch_list *arches;
|
||||
{
|
||||
static LONGEST d10v_call_dummy_words[] = { 0 };
|
||||
struct gdbarch *gdbarch;
|
||||
int d10v_num_regs = 37;
|
||||
|
||||
/* there is only one d10v architecture */
|
||||
if (arches != NULL)
|
||||
return arches->gdbarch;
|
||||
gdbarch = gdbarch_alloc (&info, NULL);
|
||||
|
||||
set_gdbarch_read_pc (gdbarch, d10v_read_pc);
|
||||
set_gdbarch_write_pc (gdbarch, d10v_write_pc);
|
||||
set_gdbarch_read_fp (gdbarch, d10v_read_fp);
|
||||
set_gdbarch_write_fp (gdbarch, d10v_write_fp);
|
||||
set_gdbarch_read_sp (gdbarch, d10v_read_sp);
|
||||
set_gdbarch_write_sp (gdbarch, d10v_write_sp);
|
||||
|
||||
set_gdbarch_num_regs (gdbarch, d10v_num_regs);
|
||||
set_gdbarch_sp_regnum (gdbarch, 15);
|
||||
set_gdbarch_fp_regnum (gdbarch, 11);
|
||||
set_gdbarch_pc_regnum (gdbarch, 18);
|
||||
set_gdbarch_register_name (gdbarch, d10v_register_name);
|
||||
set_gdbarch_register_size (gdbarch, 2);
|
||||
set_gdbarch_register_bytes (gdbarch, (d10v_num_regs - 2) * 2 + 16);
|
||||
set_gdbarch_register_byte (gdbarch, d10v_register_byte);
|
||||
set_gdbarch_register_raw_size (gdbarch, d10v_register_raw_size);
|
||||
set_gdbarch_max_register_raw_size (gdbarch, 8);
|
||||
set_gdbarch_register_virtual_size (gdbarch, d10v_register_virtual_size);
|
||||
set_gdbarch_max_register_virtual_size (gdbarch, 8);
|
||||
set_gdbarch_register_virtual_type (gdbarch, d10v_register_virtual_type);
|
||||
|
||||
set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_short_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_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
|
||||
|
||||
set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
|
||||
set_gdbarch_call_dummy_length (gdbarch, 0);
|
||||
set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
|
||||
set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
|
||||
set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
|
||||
set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
|
||||
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
||||
set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
|
||||
set_gdbarch_call_dummy_words (gdbarch, d10v_call_dummy_words);
|
||||
set_gdbarch_sizeof_call_dummy_words (gdbarch, sizeof (d10v_call_dummy_words));
|
||||
set_gdbarch_call_dummy_p (gdbarch, 1);
|
||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||
set_gdbarch_get_saved_register (gdbarch, generic_get_saved_register);
|
||||
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
||||
|
||||
set_gdbarch_register_convertible (gdbarch, d10v_register_convertible);
|
||||
set_gdbarch_register_convert_to_virtual (gdbarch, d10v_register_convert_to_virtual);
|
||||
set_gdbarch_register_convert_to_raw (gdbarch, d10v_register_convert_to_raw);
|
||||
|
||||
set_gdbarch_extract_return_value (gdbarch, d10v_extract_return_value);
|
||||
set_gdbarch_push_arguments (gdbarch, d10v_push_arguments);
|
||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
||||
set_gdbarch_push_return_address (gdbarch, d10v_push_return_address);
|
||||
|
||||
set_gdbarch_d10v_make_daddr (gdbarch, d10v_make_daddr);
|
||||
set_gdbarch_d10v_make_iaddr (gdbarch, d10v_make_iaddr);
|
||||
set_gdbarch_d10v_daddr_p (gdbarch, d10v_daddr_p);
|
||||
set_gdbarch_d10v_iaddr_p (gdbarch, d10v_iaddr_p);
|
||||
set_gdbarch_d10v_convert_daddr_to_raw (gdbarch, d10v_convert_daddr_to_raw);
|
||||
set_gdbarch_d10v_convert_iaddr_to_raw (gdbarch, d10v_convert_iaddr_to_raw);
|
||||
|
||||
set_gdbarch_store_struct_return (gdbarch, d10v_store_struct_return);
|
||||
set_gdbarch_store_return_value (gdbarch, d10v_store_return_value);
|
||||
set_gdbarch_extract_struct_value_address (gdbarch, d10v_extract_struct_value_address);
|
||||
set_gdbarch_use_struct_convention (gdbarch, d10v_use_struct_convention);
|
||||
|
||||
set_gdbarch_frame_init_saved_regs (gdbarch, d10v_frame_init_saved_regs);
|
||||
set_gdbarch_init_extra_frame_info (gdbarch, d10v_init_extra_frame_info);
|
||||
|
||||
set_gdbarch_pop_frame (gdbarch, d10v_pop_frame);
|
||||
|
||||
set_gdbarch_skip_prologue (gdbarch, d10v_skip_prologue);
|
||||
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
|
||||
set_gdbarch_decr_pc_after_break (gdbarch, 4);
|
||||
set_gdbarch_function_start_offset (gdbarch, 0);
|
||||
set_gdbarch_breakpoint_from_pc (gdbarch, d10v_breakpoint_from_pc);
|
||||
|
||||
set_gdbarch_remote_translate_xfer_address (gdbarch, remote_d10v_translate_xfer_address);
|
||||
|
||||
set_gdbarch_frame_args_skip (gdbarch, 0);
|
||||
set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
|
||||
set_gdbarch_frame_chain (gdbarch, d10v_frame_chain);
|
||||
set_gdbarch_frame_chain_valid (gdbarch, d10v_frame_chain_valid);
|
||||
set_gdbarch_frame_saved_pc (gdbarch, d10v_frame_saved_pc);
|
||||
set_gdbarch_frame_args_address (gdbarch, d10v_frame_args_address);
|
||||
set_gdbarch_frame_locals_address (gdbarch, d10v_frame_locals_address);
|
||||
set_gdbarch_saved_pc_after_call (gdbarch, d10v_saved_pc_after_call);
|
||||
set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
|
||||
|
||||
return gdbarch;
|
||||
}
|
||||
|
||||
|
||||
extern void (*target_resume_hook) PARAMS ((void));
|
||||
extern void (*target_wait_loop_hook) PARAMS ((void));
|
||||
|
||||
void
|
||||
_initialize_d10v_tdep ()
|
||||
{
|
||||
register_gdbarch_init (bfd_arch_d10v, d10v_gdbarch_init);
|
||||
|
||||
tm_print_insn = print_insn_d10v;
|
||||
|
||||
target_resume_hook = d10v_eva_prepare_to_trace;
|
||||
|
||||
Reference in New Issue
Block a user