+ /*
+ * Basic register fields and methods.
+ */
+ set_gdbarch_num_regs (gdbarch, E_NUM_REGS);
+ set_gdbarch_num_pseudo_regs (gdbarch, 0);
+ set_gdbarch_sp_regnum (gdbarch, E_SP_REGNUM);
+ set_gdbarch_fp_regnum (gdbarch, E_FP_REGNUM);
+ set_gdbarch_pc_regnum (gdbarch, E_PC_REGNUM);
+ set_gdbarch_register_name (gdbarch, v850_register_name);
+ set_gdbarch_register_size (gdbarch, v850_reg_size);
+ set_gdbarch_register_bytes (gdbarch, E_ALL_REGS_SIZE);
+ set_gdbarch_register_byte (gdbarch, v850_register_byte);
+ set_gdbarch_register_raw_size (gdbarch, v850_register_raw_size);
+ set_gdbarch_max_register_raw_size (gdbarch, v850_reg_size);
+ set_gdbarch_register_virtual_size (gdbarch, v850_register_raw_size);
+ set_gdbarch_max_register_virtual_size (gdbarch, v850_reg_size);
+ set_gdbarch_register_virtual_type (gdbarch, v850_reg_virtual_type);
+
+ set_gdbarch_read_fp (gdbarch, v850_target_read_fp);
+
+ /*
+ * Frame Info
+ */
+ set_gdbarch_init_extra_frame_info (gdbarch, v850_init_extra_frame_info);
+ set_gdbarch_frame_init_saved_regs (gdbarch, v850_frame_init_saved_regs);
+ set_gdbarch_frame_chain (gdbarch, v850_frame_chain);
+ set_gdbarch_saved_pc_after_call (gdbarch, v850_saved_pc_after_call);
+ set_gdbarch_frame_saved_pc (gdbarch, v850_frame_saved_pc);
+ set_gdbarch_skip_prologue (gdbarch, v850_skip_prologue);
+ set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
+
+ /*
+ * Miscelany
+ */
+ /* Stack grows up. */
+ set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
+ /* PC stops zero byte after a trap instruction
+ (which means: exactly on trap instruction). */
+ set_gdbarch_decr_pc_after_break (gdbarch, 0);
+ /* This value is almost never non-zero... */
+ set_gdbarch_function_start_offset (gdbarch, 0);
+ /* This value is almost never non-zero... */
+ set_gdbarch_frame_args_skip (gdbarch, 0);
+ /* OK to default this value to 'unknown'. */
+ set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
+
+ /*
+ * Call Dummies
+ *
+ * These values and methods are used when gdb calls a target function. */
+ set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
+ set_gdbarch_push_return_address (gdbarch, v850_push_return_address);
+ set_gdbarch_deprecated_extract_return_value (gdbarch, v850_extract_return_value);
+ set_gdbarch_push_arguments (gdbarch, v850_push_arguments);
+ set_gdbarch_pop_frame (gdbarch, v850_pop_frame);
+ set_gdbarch_store_struct_return (gdbarch, v850_store_struct_return);
+ set_gdbarch_deprecated_store_return_value (gdbarch, v850_store_return_value);
+ set_gdbarch_deprecated_extract_struct_value_address (gdbarch, v850_extract_struct_value_address);
+ set_gdbarch_use_struct_convention (gdbarch, v850_use_struct_convention);
+ set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
+ set_gdbarch_call_dummy_start_offset (gdbarch, 0);
+ set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
+ set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
+ set_gdbarch_call_dummy_length (gdbarch, 0);
+ set_gdbarch_call_dummy_p (gdbarch, 1);
+ set_gdbarch_call_dummy_words (gdbarch, call_dummy_nil);
+ set_gdbarch_sizeof_call_dummy_words (gdbarch, 0);
+ set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
+ /* set_gdbarch_call_dummy_stack_adjust */
+ set_gdbarch_fix_call_dummy (gdbarch, v850_fix_call_dummy);
+ set_gdbarch_breakpoint_from_pc (gdbarch, v850_breakpoint_from_pc);
+
+ set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+ set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+ set_gdbarch_addr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+ set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
+
+ set_gdbarch_extra_stack_alignment_needed (gdbarch, 0);
+
+ return gdbarch;