darling-gdb/gdb/sh-tdep.c

2388 lines
77 KiB
C
Raw Normal View History

/* Target-dependent code for Hitachi Super-H, for GDB.
gdb/ * buildsym.h (processing_hp_compilation): Remove obsolete variable. * gdbarch.sh Remove include of "value.h" in gdbarch.h. (COERCE_FLOAT_TO_DOUBLE): Remove. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * Makefile.in: Remove value_h from gdbarch_h. * valops.c (coerce_float_to_double): New variable. (default_coerce_float_to_double): Remove. (standard_coerce_float_to_double): Remove. (value_arg_coerce): Use coerce_float_to_double. (_initialize_valops): Add "set coerce-float-to-double". * value.h (default_coerce_float_to_double): Remove prototype. (standard_coerce_float_to_double): Remove prototype. * hpread.c (hpread_process_one_debug_symbol): Mark C++ functions as prototyped. * mdebugread.c (parse_symbol): Likewise. * stabsread.c (define_symbol): Mark all functions as prototyped. * hppa-tdep.c (hppa_coerce_float_to_double): Remove. * alpha-tdep.c (alpha_gdbarch_init): Remove call to set_gdbarch_coerce_float_to_double. * arm-tdep.c (arm_gdbarch_init): Likewise. * frv-tdep.c (frv_gdbarch_init): Likewise. * h8300-tdep.c (h8300_gdbarch_init): Likewise (commented out). * i386-sol2-tdep.c (i386_sol2_init_abi): Likewise. * mips-tdep.c (mips_gdbarch_init): Likewise. (mips_coerce_float_to_double): Remove. * rs6000-tdep.c (rs6000_gdbarch_init): Likewise. (rs6000_coerce_float_to_double): Remove. * s390-tdep.c (s390_gdbarch_init): Likewise. * sh-tdep.c (sh_gdbarch_init): Likewise. (sh_coerce_float_to_double): Remove. * sparc-tdep.c (sparc_gdbarch_init): Likewise. (sparc_coerce_float_to_double): Remove. * v850-tdep.c (v850_gdbarch_init): Likewise. * xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise. * config/m32r/tm-m32r.h (COERCE_FLOAT_TO_DOUBLE): Remove. * config/pa/tm-hppa.h: (COERCE_FLOAT_TO_DOUBLE): Remove. (hppa_coerce_float_to_double): Remove prototype. * config/sparc/tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Remove. doc/ * gdb.texinfo (Controlling GDB): Add ABI section. Document "set coerce-float-to-double". * gdbint.texinfo (COERCE_FLOAT_TO_DOUBLE): Remove documentation. testsuite/ * gdb.base/callfuncs.exp: Don't XFAIL unprototyped functions for stabs. * gdb.base/completion.exp: Allow marker1(void) as well as marker1(). * gdb.base/whatis.exp: Always allow (void) after function names.
2003-01-04 22:37:49 +00:00
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
1999-07-07 20:19:36 +00:00
This file is part of GDB.
1999-07-07 20:19:36 +00:00
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
1999-07-07 20:19:36 +00:00
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
1999-07-07 20:19:36 +00:00
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/*
1999-07-07 20:19:36 +00:00
Contributed by Steve Chamberlain
sac@cygnus.com
*/
#include "defs.h"
#include "frame.h"
#include "symtab.h"
#include "symfile.h"
#include "gdbtypes.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "value.h"
#include "dis-asm.h"
#include "inferior.h"
#include "gdb_string.h"
#include "arch-utils.h"
#include "floatformat.h"
#include "regcache.h"
2001-08-01 18:39:27 +00:00
#include "doublest.h"
#include "osabi.h"
#include "sh-tdep.h"
#include "elf-bfd.h"
#include "solib-svr4.h"
/* sh flags */
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
#include "elf/sh.h"
/* registers numbers shared with the simulator */
#include "gdb/sim-sh.h"
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
static void (*sh_show_regs) (void);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
#define SH_DEFAULT_NUM_REGS 59
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Define other aspects of the stack frame.
we keep a copy of the worked out return pc lying around, since it
is a useful bit of info */
struct frame_extra_info
{
CORE_ADDR return_pc;
int leaf_function;
int f_offset;
sh-dsp support, simulator speedup by using host byte order: sim: * Makefile.in (interp.o): Depends on ppi.c . (ppi.c): New rule. * gencode.c (printonmatch, think, genopc): Deleted. (MAX_NR_STUFF): Now 42. (tab): Add SH-DSP CPU instructions. Amalgamate ldc / stc / lds / sts instructions with similar bit patterns. Fix opcodes of stc Rm_BANK,@-<REG_N>. Fix semantics of lds.l @<REG_N>+,MACH (no sign extend). (movsxy_tab): New array. For movs, change MMMM field to GGGG, and mmmm field to MMMM. Added entries for movx, movy and parallel processing insns. (ppi_tab): New array. (qfunc): Stabilize sort. (expand_opcode): Handle [01][01]NN, [01][01]xx and [01][01]yy. Handle 'M', 'G' 's' 'X', 'a', 'Y' and 'A'. (dumptable): Now takes three arguments. Changed all callers. Emit just one contigous jump table. (filltable): Now takes an argument. Changed all callers. Make index static. (ppi_moves, expand_ppi_code, ppi_filltable, ppi_gensim): New functions. (gensim_caselist): New function, broken out of gensim. Handle opcode fields 'x', 'y', 's', 'M', 'G', 'X', 'a', and 'Y'. Handle ref '9'. (gensim): Handle 'N' in code field and '8' in refs field. Call gensim_caselist - twice. (ppi_index): New static variable. (main): Unsupport default action. Add dsp support for -x / -s option. Add -p option. * interp.c (sh_jump_table, sh_dsp_table, ppi_table): Declare. (saved_state_type): Rearrange to allow amalgamated ldc / stc / lds / sts to work efficiently. (target_dsp): New static variable. (GBR, VBR, SSR, SPC, MACH, MACL): Reflect saved_state_type change. (FPUL, Rn_BANK, SET_Rn_BANK, M, Q, S, T, SR_BL, SR_RB): Likewise. (SR_MD, SR_RC, SET_SR_BIT, GET_SR, SET_RC, GET_FPSCR): Likewise. (RS, RE, MOD, MOD_ME, DSP_R): Likewise. (set_fpscr1): Likewise. Use target_dsp to check for dsp. (MOD_MSi, SIG_BUS_FETCH): Deleted. (CREG, SREG, PR, SR_MASK_DMY, SR_MASK_DMX, SR_DMY): New macros. (SR_DMX, DSR, MOD_DELTA, GET_DSP_GRD): Likewise. (SET_MOD): Reflect saved_state_type change. Set MOD_DELTA instead of MOD_MS, and encode SR_DMY / SR_DMX into high word of MOD_ME. (set_sr): Reflect saved_state_type change. Fix SR_RB handling. Use SET_MOD. (MA, L, TL, TB): Now controlled by ACE_FAST. (SEXT32): Just cast to int. (SIGN32): Fixed to only shift by 31. (CHECK_INSN_PTR): SIGBUS at insn fetch now represented by insn_end 0. (ppi_insn): Declare. (ppi.c): Include. (init_dsp): Set target_dsp. When it changes, switch end of sh_jump_table with sh_dsp_table. (sim_resume) Don't declare sh_jump_table0. Use sh_jump_table instead. Don't Declare PR if it's #defined. Fix single-stepping (Was broken in Mar 6 16:59:10 patch). (sim_store_register, sim_read_register): Translate accesses to reflect saved_state_type change. * interp.c (set_sr): Set sr. (SET_RC, MOD, MOD_MS, MOD_ME, SET_MOD, MOD_MS, MOD_ME): New macros. (set_fpscr1): Don't bank-switch fpu registers when simulating sh-dsp. (DSP_R): Fix definition. (sim_resume): Remove outdated SET_SR use. * interp.c (saved_state): New members for struct member asregs: rs, re, insn_end, xram_start, yram_start. (struct loop_bounds): New struct. (SKIP_INSN): New macro. (get_loop_bounds): New function. (endianw): Renamed to global_endianw. (maskw): negated bits. (PC): Now insn_ptr. (SR_MASK_RC, SR_RC_INCREMENT, SR_RC, RAISE_EXCEPTION): New macros. (RS, RE, DSP_R, DSP_GRD, A1, A0, X0, X1, Y0, Y1, M0, A1G): Likewise. (M1, A0G, RIAT, PT2H, PH2T, SET_NIP, CHECK_INSN_PTR): Likewise. (SIG_BUS_FETCH): Likewise (raise_exception, riat_fast): New functions. (raise_buserror, sim_stop): Use raise_exception. (PROCESS_SPECIAL_ADDRESS): Use xram_start / yram_start. (BUSERROR, WRITE_BUSERROR, READ_BUSERROR): Reverse sense of mask argument. (FP_OP, set_dr): Use RAISE_EXCEPTION. (wlat_fast, wwat_fast, wbat_fast, rlat_fast, rwat_fast, rbat_fast): Declare. Remove redundant masking. (wwat_fast, rwat_fast): Add argument endianw. Changed callers. (MA): Updated for change pc -> PC. (Delay_Slot): Use RIAT. (empty): Deleted. (trap): Remove argument little_endian. Add argument endianw. Changed all callers. Use raise_exception. (macw): Add argument endainw. Changed all callers. (init_dsp): New function, extended after broken out of init_pointers. (sim_resume): Replace pc with insn_ptr. Replace little_endian with endianw. Replace nia with nip. Reverse sense of maskb / maskw / maskl. Implement logic for zero-overhead loops. Don't try to interpret garbage when getting a SIGBUS at insn fetch. (sim_open): Call init_dsp. * gencode.c (tab): Use SET_NIP instead of nia = . Use PH2T / PT2H / RAISE_EXCEPTION where appropriate. Add extra cycles for brai, braf , bsr, bsrf, jmp, jsr. * interp.c (sim_store_register, sim_fetch_register): Do proper endianness switch. * interp.c (saved_state_type): New members for struct member asregs: xymem_select, xmem, ymem, xmem_offset, ymem_offset. (special_address): Delete. (BUSERROR): Now a two-argument predicate. (PROCESS_SPECIAL_ADDRESS, WRITE_BUSERROR, READ_BUSERROR): New macros. (wlat_little, wwat_little, wbat_any, wlat_big, wwat_big): Delete. (process_wlat_addr, process_wwat_addr): New functions. (process_wbat_addr, process_rlat_addr, process_rwat_addr): Likewise. (process_rbat_addr): Likewise. (wlat_fast, wwat_fast, wbat_fast): Use WRITE_BUSERROR. (rlat_little, rwat_little, rbat_any, rlat_big, rwat_big): Delete. (rlat_fast, rwat_fast, rbat_fast): Use READ_BUSERROR. (RWAT, RLAT, RBAT, WWAT, WLAT, WBAT): Delete SLOW versions. (do_rdat, trap): Delete SLOW code. (SEXT32, SIGN32): New macros. (swap, swap16): Now integer in - integer out. Changed all callers. (strswaplen, strnswap): Delete SLOW versions. (init_pointers): Initialize dsp memory selection (preliminary). (sim_store_register, sim_fetch_register): Use swap instead of big / little endian read / write functions. * interp.c (maskl): Deleted. (endianw, endianb): New variables. (special_address): Now inline. (bp_holder): Put raising of buserror there, rename to: (raise_buserror). (BUSERROR): Now yields a value. Changed all users. (wbat_big): Delete. (wlat_fast, wwat_fast, wbat_fast): New functions. (rlat_fast, rwat_fast, rbat_fast): Likewise. (RWAT, RLAT, RBAT, WWAT, WLAT, WBAT): Use new functions. (do_rdat, do_wdat): Likewise. Take maskl argument instead of little_endian one. Changed caller macros. (swap, swap16): Use w[rw]lat_big / w[rw]lat_little directly. (strswaplen, strnswap): New functions. (trap): Use them to fix up endian mismatches; disable SYS_execve and SYS_execv; fix double address translation for SYS_pipe and SYS_stat. (sym_write, sym_read): Add endianness translation. (sym_store_register, sym_fetch_register): Add maskl local variable. (sim_open): Set endianw and endianb. gdb: * sh-tdep.c (sh_dsp_reg_names, sh3_dsp_reg_names): New arrays. (sh_processor_type_table): Add entries for bfd_mach_sh_dsp and bfd_mach_sh3_dsp. (sh_show_regs): Floating point registers are called fr0-fr15. For sh4, display fpul, fpscr and fr0-fr15 / dr0-dr14 as appropriate. Handle sh-dsp and sh3-dsp. config/sh/tm-sh.h (REGISTER_VIRTUAL_TYPE): sh-dsp / sh3-dsp don't have floating point registers. (DSR_REGNUM, A0G_REGNUM, A0_REGNUM, A1G_REGNUM, A1_REGNUM): Define. (M0_REGNUM, M1_REGNUM, X0_REGNUM, X1_REGNUM, Y0_REGNUM): Likewise. (Y1_REGNUM, MOD_REGNUM, RS_REGNUM, RE_REGNUM, R0B_REGNUM): Likewise.
2000-05-15 21:12:42 +00:00
};
2002-06-17 23:32:36 +00:00
static const char *
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
sh_generic_register_name (int reg_nr)
1999-07-07 20:19:36 +00:00
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static char *register_names[] =
1999-07-07 20:19:36 +00:00
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
"fpul", "fpscr",
"fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7",
"fr8", "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15",
"ssr", "spc",
"r0b0", "r1b0", "r2b0", "r3b0", "r4b0", "r5b0", "r6b0", "r7b0",
"r0b1", "r1b1", "r2b1", "r3b1", "r4b1", "r5b1", "r6b1", "r7b1",
};
if (reg_nr < 0)
return NULL;
if (reg_nr >= (sizeof (register_names) / sizeof (*register_names)))
return NULL;
return register_names[reg_nr];
}
2002-06-17 23:32:36 +00:00
static const char *
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
sh_sh_register_name (int reg_nr)
{
static char *register_names[] =
sh-dsp support, simulator speedup by using host byte order: sim: * Makefile.in (interp.o): Depends on ppi.c . (ppi.c): New rule. * gencode.c (printonmatch, think, genopc): Deleted. (MAX_NR_STUFF): Now 42. (tab): Add SH-DSP CPU instructions. Amalgamate ldc / stc / lds / sts instructions with similar bit patterns. Fix opcodes of stc Rm_BANK,@-<REG_N>. Fix semantics of lds.l @<REG_N>+,MACH (no sign extend). (movsxy_tab): New array. For movs, change MMMM field to GGGG, and mmmm field to MMMM. Added entries for movx, movy and parallel processing insns. (ppi_tab): New array. (qfunc): Stabilize sort. (expand_opcode): Handle [01][01]NN, [01][01]xx and [01][01]yy. Handle 'M', 'G' 's' 'X', 'a', 'Y' and 'A'. (dumptable): Now takes three arguments. Changed all callers. Emit just one contigous jump table. (filltable): Now takes an argument. Changed all callers. Make index static. (ppi_moves, expand_ppi_code, ppi_filltable, ppi_gensim): New functions. (gensim_caselist): New function, broken out of gensim. Handle opcode fields 'x', 'y', 's', 'M', 'G', 'X', 'a', and 'Y'. Handle ref '9'. (gensim): Handle 'N' in code field and '8' in refs field. Call gensim_caselist - twice. (ppi_index): New static variable. (main): Unsupport default action. Add dsp support for -x / -s option. Add -p option. * interp.c (sh_jump_table, sh_dsp_table, ppi_table): Declare. (saved_state_type): Rearrange to allow amalgamated ldc / stc / lds / sts to work efficiently. (target_dsp): New static variable. (GBR, VBR, SSR, SPC, MACH, MACL): Reflect saved_state_type change. (FPUL, Rn_BANK, SET_Rn_BANK, M, Q, S, T, SR_BL, SR_RB): Likewise. (SR_MD, SR_RC, SET_SR_BIT, GET_SR, SET_RC, GET_FPSCR): Likewise. (RS, RE, MOD, MOD_ME, DSP_R): Likewise. (set_fpscr1): Likewise. Use target_dsp to check for dsp. (MOD_MSi, SIG_BUS_FETCH): Deleted. (CREG, SREG, PR, SR_MASK_DMY, SR_MASK_DMX, SR_DMY): New macros. (SR_DMX, DSR, MOD_DELTA, GET_DSP_GRD): Likewise. (SET_MOD): Reflect saved_state_type change. Set MOD_DELTA instead of MOD_MS, and encode SR_DMY / SR_DMX into high word of MOD_ME. (set_sr): Reflect saved_state_type change. Fix SR_RB handling. Use SET_MOD. (MA, L, TL, TB): Now controlled by ACE_FAST. (SEXT32): Just cast to int. (SIGN32): Fixed to only shift by 31. (CHECK_INSN_PTR): SIGBUS at insn fetch now represented by insn_end 0. (ppi_insn): Declare. (ppi.c): Include. (init_dsp): Set target_dsp. When it changes, switch end of sh_jump_table with sh_dsp_table. (sim_resume) Don't declare sh_jump_table0. Use sh_jump_table instead. Don't Declare PR if it's #defined. Fix single-stepping (Was broken in Mar 6 16:59:10 patch). (sim_store_register, sim_read_register): Translate accesses to reflect saved_state_type change. * interp.c (set_sr): Set sr. (SET_RC, MOD, MOD_MS, MOD_ME, SET_MOD, MOD_MS, MOD_ME): New macros. (set_fpscr1): Don't bank-switch fpu registers when simulating sh-dsp. (DSP_R): Fix definition. (sim_resume): Remove outdated SET_SR use. * interp.c (saved_state): New members for struct member asregs: rs, re, insn_end, xram_start, yram_start. (struct loop_bounds): New struct. (SKIP_INSN): New macro. (get_loop_bounds): New function. (endianw): Renamed to global_endianw. (maskw): negated bits. (PC): Now insn_ptr. (SR_MASK_RC, SR_RC_INCREMENT, SR_RC, RAISE_EXCEPTION): New macros. (RS, RE, DSP_R, DSP_GRD, A1, A0, X0, X1, Y0, Y1, M0, A1G): Likewise. (M1, A0G, RIAT, PT2H, PH2T, SET_NIP, CHECK_INSN_PTR): Likewise. (SIG_BUS_FETCH): Likewise (raise_exception, riat_fast): New functions. (raise_buserror, sim_stop): Use raise_exception. (PROCESS_SPECIAL_ADDRESS): Use xram_start / yram_start. (BUSERROR, WRITE_BUSERROR, READ_BUSERROR): Reverse sense of mask argument. (FP_OP, set_dr): Use RAISE_EXCEPTION. (wlat_fast, wwat_fast, wbat_fast, rlat_fast, rwat_fast, rbat_fast): Declare. Remove redundant masking. (wwat_fast, rwat_fast): Add argument endianw. Changed callers. (MA): Updated for change pc -> PC. (Delay_Slot): Use RIAT. (empty): Deleted. (trap): Remove argument little_endian. Add argument endianw. Changed all callers. Use raise_exception. (macw): Add argument endainw. Changed all callers. (init_dsp): New function, extended after broken out of init_pointers. (sim_resume): Replace pc with insn_ptr. Replace little_endian with endianw. Replace nia with nip. Reverse sense of maskb / maskw / maskl. Implement logic for zero-overhead loops. Don't try to interpret garbage when getting a SIGBUS at insn fetch. (sim_open): Call init_dsp. * gencode.c (tab): Use SET_NIP instead of nia = . Use PH2T / PT2H / RAISE_EXCEPTION where appropriate. Add extra cycles for brai, braf , bsr, bsrf, jmp, jsr. * interp.c (sim_store_register, sim_fetch_register): Do proper endianness switch. * interp.c (saved_state_type): New members for struct member asregs: xymem_select, xmem, ymem, xmem_offset, ymem_offset. (special_address): Delete. (BUSERROR): Now a two-argument predicate. (PROCESS_SPECIAL_ADDRESS, WRITE_BUSERROR, READ_BUSERROR): New macros. (wlat_little, wwat_little, wbat_any, wlat_big, wwat_big): Delete. (process_wlat_addr, process_wwat_addr): New functions. (process_wbat_addr, process_rlat_addr, process_rwat_addr): Likewise. (process_rbat_addr): Likewise. (wlat_fast, wwat_fast, wbat_fast): Use WRITE_BUSERROR. (rlat_little, rwat_little, rbat_any, rlat_big, rwat_big): Delete. (rlat_fast, rwat_fast, rbat_fast): Use READ_BUSERROR. (RWAT, RLAT, RBAT, WWAT, WLAT, WBAT): Delete SLOW versions. (do_rdat, trap): Delete SLOW code. (SEXT32, SIGN32): New macros. (swap, swap16): Now integer in - integer out. Changed all callers. (strswaplen, strnswap): Delete SLOW versions. (init_pointers): Initialize dsp memory selection (preliminary). (sim_store_register, sim_fetch_register): Use swap instead of big / little endian read / write functions. * interp.c (maskl): Deleted. (endianw, endianb): New variables. (special_address): Now inline. (bp_holder): Put raising of buserror there, rename to: (raise_buserror). (BUSERROR): Now yields a value. Changed all users. (wbat_big): Delete. (wlat_fast, wwat_fast, wbat_fast): New functions. (rlat_fast, rwat_fast, rbat_fast): Likewise. (RWAT, RLAT, RBAT, WWAT, WLAT, WBAT): Use new functions. (do_rdat, do_wdat): Likewise. Take maskl argument instead of little_endian one. Changed caller macros. (swap, swap16): Use w[rw]lat_big / w[rw]lat_little directly. (strswaplen, strnswap): New functions. (trap): Use them to fix up endian mismatches; disable SYS_execve and SYS_execv; fix double address translation for SYS_pipe and SYS_stat. (sym_write, sym_read): Add endianness translation. (sym_store_register, sym_fetch_register): Add maskl local variable. (sim_open): Set endianw and endianb. gdb: * sh-tdep.c (sh_dsp_reg_names, sh3_dsp_reg_names): New arrays. (sh_processor_type_table): Add entries for bfd_mach_sh_dsp and bfd_mach_sh3_dsp. (sh_show_regs): Floating point registers are called fr0-fr15. For sh4, display fpul, fpscr and fr0-fr15 / dr0-dr14 as appropriate. Handle sh-dsp and sh3-dsp. config/sh/tm-sh.h (REGISTER_VIRTUAL_TYPE): sh-dsp / sh3-dsp don't have floating point registers. (DSR_REGNUM, A0G_REGNUM, A0_REGNUM, A1G_REGNUM, A1_REGNUM): Define. (M0_REGNUM, M1_REGNUM, X0_REGNUM, X1_REGNUM, Y0_REGNUM): Likewise. (Y1_REGNUM, MOD_REGNUM, RS_REGNUM, RE_REGNUM, R0B_REGNUM): Likewise.
2000-05-15 21:12:42 +00:00
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
"", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
};
if (reg_nr < 0)
return NULL;
if (reg_nr >= (sizeof (register_names) / sizeof (*register_names)))
return NULL;
return register_names[reg_nr];
}
2002-06-17 23:32:36 +00:00
static const char *
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
sh_sh3_register_name (int reg_nr)
{
static char *register_names[] =
1999-07-07 20:19:36 +00:00
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
"", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"ssr", "spc",
"r0b0", "r1b0", "r2b0", "r3b0", "r4b0", "r5b0", "r6b0", "r7b0",
"r0b1", "r1b1", "r2b1", "r3b1", "r4b1", "r5b1", "r6b1", "r7b1"
};
if (reg_nr < 0)
return NULL;
if (reg_nr >= (sizeof (register_names) / sizeof (*register_names)))
return NULL;
return register_names[reg_nr];
}
2002-06-17 23:32:36 +00:00
static const char *
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
sh_sh3e_register_name (int reg_nr)
{
static char *register_names[] =
sh-dsp support, simulator speedup by using host byte order: sim: * Makefile.in (interp.o): Depends on ppi.c . (ppi.c): New rule. * gencode.c (printonmatch, think, genopc): Deleted. (MAX_NR_STUFF): Now 42. (tab): Add SH-DSP CPU instructions. Amalgamate ldc / stc / lds / sts instructions with similar bit patterns. Fix opcodes of stc Rm_BANK,@-<REG_N>. Fix semantics of lds.l @<REG_N>+,MACH (no sign extend). (movsxy_tab): New array. For movs, change MMMM field to GGGG, and mmmm field to MMMM. Added entries for movx, movy and parallel processing insns. (ppi_tab): New array. (qfunc): Stabilize sort. (expand_opcode): Handle [01][01]NN, [01][01]xx and [01][01]yy. Handle 'M', 'G' 's' 'X', 'a', 'Y' and 'A'. (dumptable): Now takes three arguments. Changed all callers. Emit just one contigous jump table. (filltable): Now takes an argument. Changed all callers. Make index static. (ppi_moves, expand_ppi_code, ppi_filltable, ppi_gensim): New functions. (gensim_caselist): New function, broken out of gensim. Handle opcode fields 'x', 'y', 's', 'M', 'G', 'X', 'a', and 'Y'. Handle ref '9'. (gensim): Handle 'N' in code field and '8' in refs field. Call gensim_caselist - twice. (ppi_index): New static variable. (main): Unsupport default action. Add dsp support for -x / -s option. Add -p option. * interp.c (sh_jump_table, sh_dsp_table, ppi_table): Declare. (saved_state_type): Rearrange to allow amalgamated ldc / stc / lds / sts to work efficiently. (target_dsp): New static variable. (GBR, VBR, SSR, SPC, MACH, MACL): Reflect saved_state_type change. (FPUL, Rn_BANK, SET_Rn_BANK, M, Q, S, T, SR_BL, SR_RB): Likewise. (SR_MD, SR_RC, SET_SR_BIT, GET_SR, SET_RC, GET_FPSCR): Likewise. (RS, RE, MOD, MOD_ME, DSP_R): Likewise. (set_fpscr1): Likewise. Use target_dsp to check for dsp. (MOD_MSi, SIG_BUS_FETCH): Deleted. (CREG, SREG, PR, SR_MASK_DMY, SR_MASK_DMX, SR_DMY): New macros. (SR_DMX, DSR, MOD_DELTA, GET_DSP_GRD): Likewise. (SET_MOD): Reflect saved_state_type change. Set MOD_DELTA instead of MOD_MS, and encode SR_DMY / SR_DMX into high word of MOD_ME. (set_sr): Reflect saved_state_type change. Fix SR_RB handling. Use SET_MOD. (MA, L, TL, TB): Now controlled by ACE_FAST. (SEXT32): Just cast to int. (SIGN32): Fixed to only shift by 31. (CHECK_INSN_PTR): SIGBUS at insn fetch now represented by insn_end 0. (ppi_insn): Declare. (ppi.c): Include. (init_dsp): Set target_dsp. When it changes, switch end of sh_jump_table with sh_dsp_table. (sim_resume) Don't declare sh_jump_table0. Use sh_jump_table instead. Don't Declare PR if it's #defined. Fix single-stepping (Was broken in Mar 6 16:59:10 patch). (sim_store_register, sim_read_register): Translate accesses to reflect saved_state_type change. * interp.c (set_sr): Set sr. (SET_RC, MOD, MOD_MS, MOD_ME, SET_MOD, MOD_MS, MOD_ME): New macros. (set_fpscr1): Don't bank-switch fpu registers when simulating sh-dsp. (DSP_R): Fix definition. (sim_resume): Remove outdated SET_SR use. * interp.c (saved_state): New members for struct member asregs: rs, re, insn_end, xram_start, yram_start. (struct loop_bounds): New struct. (SKIP_INSN): New macro. (get_loop_bounds): New function. (endianw): Renamed to global_endianw. (maskw): negated bits. (PC): Now insn_ptr. (SR_MASK_RC, SR_RC_INCREMENT, SR_RC, RAISE_EXCEPTION): New macros. (RS, RE, DSP_R, DSP_GRD, A1, A0, X0, X1, Y0, Y1, M0, A1G): Likewise. (M1, A0G, RIAT, PT2H, PH2T, SET_NIP, CHECK_INSN_PTR): Likewise. (SIG_BUS_FETCH): Likewise (raise_exception, riat_fast): New functions. (raise_buserror, sim_stop): Use raise_exception. (PROCESS_SPECIAL_ADDRESS): Use xram_start / yram_start. (BUSERROR, WRITE_BUSERROR, READ_BUSERROR): Reverse sense of mask argument. (FP_OP, set_dr): Use RAISE_EXCEPTION. (wlat_fast, wwat_fast, wbat_fast, rlat_fast, rwat_fast, rbat_fast): Declare. Remove redundant masking. (wwat_fast, rwat_fast): Add argument endianw. Changed callers. (MA): Updated for change pc -> PC. (Delay_Slot): Use RIAT. (empty): Deleted. (trap): Remove argument little_endian. Add argument endianw. Changed all callers. Use raise_exception. (macw): Add argument endainw. Changed all callers. (init_dsp): New function, extended after broken out of init_pointers. (sim_resume): Replace pc with insn_ptr. Replace little_endian with endianw. Replace nia with nip. Reverse sense of maskb / maskw / maskl. Implement logic for zero-overhead loops. Don't try to interpret garbage when getting a SIGBUS at insn fetch. (sim_open): Call init_dsp. * gencode.c (tab): Use SET_NIP instead of nia = . Use PH2T / PT2H / RAISE_EXCEPTION where appropriate. Add extra cycles for brai, braf , bsr, bsrf, jmp, jsr. * interp.c (sim_store_register, sim_fetch_register): Do proper endianness switch. * interp.c (saved_state_type): New members for struct member asregs: xymem_select, xmem, ymem, xmem_offset, ymem_offset. (special_address): Delete. (BUSERROR): Now a two-argument predicate. (PROCESS_SPECIAL_ADDRESS, WRITE_BUSERROR, READ_BUSERROR): New macros. (wlat_little, wwat_little, wbat_any, wlat_big, wwat_big): Delete. (process_wlat_addr, process_wwat_addr): New functions. (process_wbat_addr, process_rlat_addr, process_rwat_addr): Likewise. (process_rbat_addr): Likewise. (wlat_fast, wwat_fast, wbat_fast): Use WRITE_BUSERROR. (rlat_little, rwat_little, rbat_any, rlat_big, rwat_big): Delete. (rlat_fast, rwat_fast, rbat_fast): Use READ_BUSERROR. (RWAT, RLAT, RBAT, WWAT, WLAT, WBAT): Delete SLOW versions. (do_rdat, trap): Delete SLOW code. (SEXT32, SIGN32): New macros. (swap, swap16): Now integer in - integer out. Changed all callers. (strswaplen, strnswap): Delete SLOW versions. (init_pointers): Initialize dsp memory selection (preliminary). (sim_store_register, sim_fetch_register): Use swap instead of big / little endian read / write functions. * interp.c (maskl): Deleted. (endianw, endianb): New variables. (special_address): Now inline. (bp_holder): Put raising of buserror there, rename to: (raise_buserror). (BUSERROR): Now yields a value. Changed all users. (wbat_big): Delete. (wlat_fast, wwat_fast, wbat_fast): New functions. (rlat_fast, rwat_fast, rbat_fast): Likewise. (RWAT, RLAT, RBAT, WWAT, WLAT, WBAT): Use new functions. (do_rdat, do_wdat): Likewise. Take maskl argument instead of little_endian one. Changed caller macros. (swap, swap16): Use w[rw]lat_big / w[rw]lat_little directly. (strswaplen, strnswap): New functions. (trap): Use them to fix up endian mismatches; disable SYS_execve and SYS_execv; fix double address translation for SYS_pipe and SYS_stat. (sym_write, sym_read): Add endianness translation. (sym_store_register, sym_fetch_register): Add maskl local variable. (sim_open): Set endianw and endianb. gdb: * sh-tdep.c (sh_dsp_reg_names, sh3_dsp_reg_names): New arrays. (sh_processor_type_table): Add entries for bfd_mach_sh_dsp and bfd_mach_sh3_dsp. (sh_show_regs): Floating point registers are called fr0-fr15. For sh4, display fpul, fpscr and fr0-fr15 / dr0-dr14 as appropriate. Handle sh-dsp and sh3-dsp. config/sh/tm-sh.h (REGISTER_VIRTUAL_TYPE): sh-dsp / sh3-dsp don't have floating point registers. (DSR_REGNUM, A0G_REGNUM, A0_REGNUM, A1G_REGNUM, A1_REGNUM): Define. (M0_REGNUM, M1_REGNUM, X0_REGNUM, X1_REGNUM, Y0_REGNUM): Likewise. (Y1_REGNUM, MOD_REGNUM, RS_REGNUM, RE_REGNUM, R0B_REGNUM): Likewise.
2000-05-15 21:12:42 +00:00
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
"fpul", "fpscr",
"fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7",
"fr8", "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15",
"ssr", "spc",
"r0b0", "r1b0", "r2b0", "r3b0", "r4b0", "r5b0", "r6b0", "r7b0",
"r0b1", "r1b1", "r2b1", "r3b1", "r4b1", "r5b1", "r6b1", "r7b1",
};
if (reg_nr < 0)
return NULL;
if (reg_nr >= (sizeof (register_names) / sizeof (*register_names)))
return NULL;
return register_names[reg_nr];
}
2003-02-03 14:38:05 +00:00
static const char *
sh_sh2e_register_name (int reg_nr)
{
static char *register_names[] =
{
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
"fpul", "fpscr",
"fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7",
"fr8", "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15",
"", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
};
if (reg_nr < 0)
return NULL;
if (reg_nr >= (sizeof (register_names) / sizeof (*register_names)))
return NULL;
return register_names[reg_nr];
}
2002-06-17 23:32:36 +00:00
static const char *
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
sh_sh_dsp_register_name (int reg_nr)
{
static char *register_names[] =
1999-07-07 20:19:36 +00:00
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
"", "dsr",
"a0g", "a0", "a1g", "a1", "m0", "m1", "x0", "x1",
"y0", "y1", "", "", "", "", "", "mod",
"", "",
"rs", "re", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
};
if (reg_nr < 0)
return NULL;
if (reg_nr >= (sizeof (register_names) / sizeof (*register_names)))
return NULL;
return register_names[reg_nr];
}
2002-06-17 23:32:36 +00:00
static const char *
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
sh_sh3_dsp_register_name (int reg_nr)
{
static char *register_names[] =
1999-07-07 20:19:36 +00:00
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
"", "dsr",
"a0g", "a0", "a1g", "a1", "m0", "m1", "x0", "x1",
"y0", "y1", "", "", "", "", "", "mod",
"ssr", "spc",
"rs", "re", "", "", "", "", "", "",
"r0b", "r1b", "r2b", "r3b", "r4b", "r5b", "r6b", "r7b"
"", "", "", "", "", "", "", "",
};
if (reg_nr < 0)
return NULL;
if (reg_nr >= (sizeof (register_names) / sizeof (*register_names)))
return NULL;
return register_names[reg_nr];
}
2002-06-17 23:32:36 +00:00
static const char *
sh_sh4_register_name (int reg_nr)
{
static char *register_names[] =
{
/* general registers 0-15 */
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
/* 16 - 22 */
"pc", "pr", "gbr", "vbr", "mach", "macl", "sr",
/* 23, 24 */
"fpul", "fpscr",
/* floating point registers 25 - 40 */
"fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7",
"fr8", "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15",
/* 41, 42 */
"ssr", "spc",
/* bank 0 43 - 50 */
"r0b0", "r1b0", "r2b0", "r3b0", "r4b0", "r5b0", "r6b0", "r7b0",
/* bank 1 51 - 58 */
"r0b1", "r1b1", "r2b1", "r3b1", "r4b1", "r5b1", "r6b1", "r7b1",
/* double precision (pseudo) 59 - 66 */
"dr0", "dr2", "dr4", "dr6", "dr8", "dr10", "dr12", "dr14",
/* vectors (pseudo) 67 - 70 */
"fv0", "fv4", "fv8", "fv12",
/* FIXME: missing XF 71 - 86 */
/* FIXME: missing XD 87 - 94 */
};
if (reg_nr < 0)
return NULL;
if (reg_nr >= (sizeof (register_names) / sizeof (*register_names)))
return NULL;
return register_names[reg_nr];
}
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
#define NUM_PSEUDO_REGS_SH_MEDIA 80
#define NUM_PSEUDO_REGS_SH_COMPACT 51
static const unsigned char *
2000-07-30 01:48:28 +00:00
sh_breakpoint_from_pc (CORE_ADDR *pcptr, int *lenptr)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
/* 0xc3c3 is trapa #c3, and it works in big and little endian modes */
static unsigned char breakpoint[] = {0xc3, 0xc3};
*lenptr = sizeof (breakpoint);
return breakpoint;
}
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
static CORE_ADDR
sh_push_dummy_code (struct gdbarch *gdbarch,
CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc,
struct value **args, int nargs,
struct type *value_type,
CORE_ADDR *real_pc, CORE_ADDR *bp_addr)
{
/* Allocate space sufficient for a breakpoint. */
sp = (sp - 2) & ~1;
/* Store the address of that breakpoint */
*bp_addr = sp;
/* sh always starts the call at the callee's entry point. */
*real_pc = funaddr;
return sp;
}
/* Prologue looks like
1999-07-07 20:19:36 +00:00
[mov.l <regs>,@-r15]...
[sts.l pr,@-r15]
[mov.l r14,@-r15]
[mov r15,r14]
Actually it can be more complicated than this. For instance, with
newer gcc's:
mov.l r14,@-r15
add #-12,r15
mov r15,r14
mov r4,r1
mov r5,r2
mov.l r6,@(4,r14)
mov.l r7,@(8,r14)
mov.b r1,@r14
mov r14,r1
mov r14,r1
add #2,r1
mov.w r2,@r1
1999-07-07 20:19:36 +00:00
*/
/* STS.L PR,@-r15 0100111100100010
r15-4-->r15, PR-->(r15) */
#define IS_STS(x) ((x) == 0x4f22)
/* MOV.L Rm,@-r15 00101111mmmm0110
r15-4-->r15, Rm-->(R15) */
#define IS_PUSH(x) (((x) & 0xff0f) == 0x2f06)
#define GET_PUSHED_REG(x) (((x) >> 4) & 0xf)
/* MOV r15,r14 0110111011110011
r15-->r14 */
#define IS_MOV_SP_FP(x) ((x) == 0x6ef3)
/* ADD #imm,r15 01111111iiiiiiii
r15+imm-->r15 */
#define IS_ADD_SP(x) (((x) & 0xff00) == 0x7f00)
#define IS_MOV_R3(x) (((x) & 0xff00) == 0x1a00)
#define IS_SHLL_R3(x) ((x) == 0x4300)
/* ADD r3,r15 0011111100111100
r15+r3-->r15 */
#define IS_ADD_R3SP(x) ((x) == 0x3f3c)
/* FMOV.S FRm,@-Rn Rn-4-->Rn, FRm-->(Rn) 1111nnnnmmmm1011
FMOV DRm,@-Rn Rn-8-->Rn, DRm-->(Rn) 1111nnnnmmm01011
FMOV XDm,@-Rn Rn-8-->Rn, XDm-->(Rn) 1111nnnnmmm11011 */
#define IS_FMOV(x) (((x) & 0xf00f) == 0xf00b)
/* MOV Rm,Rn Rm-->Rn 0110nnnnmmmm0011
MOV.L Rm,@(disp,Rn) Rm-->(dispx4+Rn) 0001nnnnmmmmdddd
MOV.L Rm,@Rn Rm-->(Rn) 0010nnnnmmmm0010
where Rm is one of r4,r5,r6,r7 which are the argument registers. */
#define IS_ARG_MOV(x) \
(((((x) & 0xf00f) == 0x6003) && (((x) & 0x00f0) >= 0x0040 && ((x) & 0x00f0) <= 0x0070)) \
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
|| ((((x) & 0xf000) == 0x1000) && (((x) & 0x00f0) >= 0x0040 && ((x) & 0x00f0) <= 0x0070)) \
|| ((((x) & 0xf00f) == 0x2002) && (((x) & 0x00f0) >= 0x0040 && ((x) & 0x00f0) <= 0x0070)))
/* MOV.L Rm,@(disp,r14) 00011110mmmmdddd
Rm-->(dispx4+r14) where Rm is one of r4,r5,r6,r7 */
#define IS_MOV_TO_R14(x) \
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
((((x) & 0xff00) == 0x1e) && (((x) & 0x00f0) >= 0x0040 && ((x) & 0x00f0) <= 0x0070))
#define FPSCR_SZ (1 << 20)
/* Skip any prologue before the guts of a function */
/* Skip the prologue using the debug information. If this fails we'll
fall back on the 'guess' method below. */
static CORE_ADDR
2000-07-30 01:48:28 +00:00
after_prologue (CORE_ADDR pc)
{
struct symtab_and_line sal;
CORE_ADDR func_addr, func_end;
/* If we can not find the symbol in the partial symbol table, then
there is no hope we can determine the function's start address
with this code. */
if (!find_pc_partial_function (pc, NULL, &func_addr, &func_end))
return 0;
/* Get the line associated with FUNC_ADDR. */
sal = find_pc_line (func_addr, 0);
/* There are only two cases to consider. First, the end of the source line
is within the function bounds. In that case we return the end of the
source line. Second is the end of the source line extends beyond the
bounds of the current function. We need to use the slow code to
examine instructions in that case. */
if (sal.end < func_end)
return sal.end;
else
return 0;
}
/* Here we look at each instruction in the function, and try to guess
where the prologue ends. Unfortunately this is not always
accurate. */
static CORE_ADDR
sh_skip_prologue_hard_way (CORE_ADDR start_pc)
{
CORE_ADDR here, end;
int updated_fp = 0;
if (!start_pc)
return 0;
for (here = start_pc, end = start_pc + (2 * 28); here < end;)
{
int w = read_memory_integer (here, 2);
here += 2;
if (IS_FMOV (w) || IS_PUSH (w) || IS_STS (w) || IS_MOV_R3 (w)
|| IS_ADD_R3SP (w) || IS_ADD_SP (w) || IS_SHLL_R3 (w)
|| IS_ARG_MOV (w) || IS_MOV_TO_R14 (w))
{
start_pc = here;
}
else if (IS_MOV_SP_FP (w))
{
start_pc = here;
updated_fp = 1;
}
else
/* Don't bail out yet, if we are before the copy of sp. */
if (updated_fp)
break;
}
return start_pc;
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static CORE_ADDR
2000-07-30 01:48:28 +00:00
sh_skip_prologue (CORE_ADDR pc)
{
CORE_ADDR post_prologue_pc;
/* See if we can determine the end of the prologue via the symbol table.
If so, then return either PC, or the PC after the prologue, whichever
is greater. */
post_prologue_pc = after_prologue (pc);
/* If after_prologue returned a useful address, then use it. Else
fall back on the instruction skipping code. */
if (post_prologue_pc != 0)
return max (pc, post_prologue_pc);
else
return sh_skip_prologue_hard_way (pc);
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
the new frame is not set up until the new function executes
some instructions.
The return address is the value saved in the PR register + 4 */
static CORE_ADDR
2000-07-30 01:48:28 +00:00
sh_saved_pc_after_call (struct frame_info *frame)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
return (ADDR_BITS_REMOVE (read_register (PR_REGNUM)));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
/* Should call_function allocate stack space for a struct return? */
static int
2000-07-30 01:48:28 +00:00
sh_use_struct_convention (int gcc_p, struct type *type)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
#if 0
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
return (TYPE_LENGTH (type) > 1);
#else
int len = TYPE_LENGTH (type);
int nelem = TYPE_NFIELDS (type);
return ((len != 1 && len != 2 && len != 4 && len != 8) || nelem != 1) &&
(len != 8 || TYPE_LENGTH (TYPE_FIELD_TYPE (type, 0)) != 4);
#endif
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
/* Disassemble an instruction. */
static int
2000-07-30 01:48:28 +00:00
gdb_print_insn_sh (bfd_vma memaddr, disassemble_info *info)
{
info->endian = TARGET_BYTE_ORDER;
return print_insn_sh (memaddr, info);
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
}
2002-12-10 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC. Change to a function with predicate. * gdbarch.h, gdbarch.c: Re-generate. * frame.c (get_prev_frame): Update. Test DEPRECATED_INIT_FRAME_PC_P. * config/sparc/tm-sparc.h (DEPRECATED_INIT_FRAME_PC): Update. * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC): Update. * config/mn10200/tm-mn10200.h (DEPRECATED_INIT_FRAME_PC): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * i386-interix-tdep.c (i386_interix_init_abi): Update. * arm-tdep.c: Update comments. * h8300-tdep.c (h8300_gdbarch_init): Explicitly set init_frame_pc. * config/m32r/tm-m32r.h (DEPRECATED_INIT_FRAME_PC): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * ns32k-tdep.c (ns32k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * d10v-tdep.c (d10v_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * config/z8k/tm-z8k.h (INIT_FRAME_PC_FIRST): Delete macro. (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC.
2002-12-11 02:26:38 +00:00
/* Given a GDB frame, determine the address of the calling function's
frame. This will be used to create a new GDB frame struct, and
2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename INIT_EXTRA_FRAME_INFO. * gdbarch.h, gdbarch.c: Regenerate. * arm-tdep.c: Update comments. * sh-tdep.c, mcore-tdep.c, m68hc11-tdep.c: Ditto. * i386-interix-tdep.c, hppa-tdep.c, h8300-tdep.c: Ditto. * frame.h, avr-tdep.c: Ditto. * frame.c (get_prev_frame): DEPRECATED_INIT_EXTRA_FRAME_INFO. (create_new_frame, legacy_get_prev_frame): Ditto. * config/sparc/tm-sparc.h (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename. * config/pa/tm-hppa.h (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename. * xstormy16-tdep.c (xstormy16_gdbarch_init): Initialize deprecated_init_extra_frame_info instead of init_extra_frame_info. * x86-64-tdep.c (x86_64_init_abi): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * ppc-linux-tdep.c (ppc_linux_init_abi): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-interix-tdep.c (i386_interix_init_abi): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. Index: doc/ChangeLog 2003-02-26 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo: Rename INIT_EXTRA_FRAME_INFO to DEPRECATED_INIT_EXTRA_FRAME_INFO.
2003-03-02 00:11:43 +00:00
then DEPRECATED_INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC
will be called for the new frame.
For us, the frame address is its stack pointer value, so we look up
the function prologue to determine the caller's sp value, and return it. */
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static CORE_ADDR
2000-07-30 01:48:28 +00:00
sh_frame_chain (struct frame_info *frame)
{
if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (frame),
get_frame_base (frame),
get_frame_base (frame)))
return get_frame_base (frame); /* dummy frame same as caller's frame */
if (get_frame_pc (frame)
&& !deprecated_inside_entry_file (get_frame_pc (frame)))
return read_memory_integer (get_frame_base (frame)
+ get_frame_extra_info (frame)->f_offset, 4);
else
return 0;
}
/* Find REGNUM on the stack. Otherwise, it's in an active register. One thing
we might want to do here is to check REGNUM against the clobber mask, and
somehow flag it as invalid if it isn't saved on the stack somewhere. This
would provide a graceful failure mode when trying to get the value of
caller-saves registers for an inner frame. */
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static CORE_ADDR
2000-07-30 01:48:28 +00:00
sh_find_callers_reg (struct frame_info *fi, int regnum)
{
for (; fi; fi = get_next_frame (fi))
if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (fi), get_frame_base (fi),
get_frame_base (fi)))
/* When the caller requests PR from the dummy frame, we return PC because
1999-07-07 20:19:36 +00:00
that's where the previous routine appears to have done a call from. */
return deprecated_read_register_dummy (get_frame_pc (fi),
get_frame_base (fi), regnum);
1999-07-07 20:19:36 +00:00
else
{
2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename FRAME_INIT_SAVED_REGS. * gdbarch.h, gdbarch.c: Regenerate. * stack.c (frame_info): Update. * sh-tdep.c (sh_find_callers_reg, sh64_get_saved_pr): Update. (sh_init_extra_frame_info, sh64_init_extra_frame_info): Update. (sh64_get_saved_register, sh_pop_frame, sh64_pop_frame): Update. * ns32k-tdep.c (ns32k_pop_frame): Update. * mips-tdep.c (mips_pop_frame): Update. * m68hc11-tdep.c (m68hc11_pop_frame): Update. * ia64-tdep.c (ia64_frame_chain): Update. (ia64_frame_saved_pc, ia64_get_saved_register): Update. (ia64_frameless_function_invocation): Update. (ia64_init_extra_frame_info): Update. (ia64_pop_frame_regular): Update. * frame.h (struct frame_info): Update comment. (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * frame.c (frame_saved_regs_register_unwind): Update. (frame_saved_regs_register_unwind): Update. (deprecated_generic_get_saved_register): Update. * cris-tdep.c: Update comment. * config/sparc/tm-sparc.h (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * xstormy16-tdep.c (xstormy16_gdbarch_init): Update. * x86-64-tdep.c (x86_64_init_abi): Update. * vax-tdep.c (vax_gdbarch_init): Update. * v850-tdep.c (v850_gdbarch_init): Update. * sparc-tdep.c (sparc_gdbarch_init): Update. * sh-tdep.c (sh_gdbarch_init): Update. * s390-tdep.c (s390_gdbarch_init): Update. * rs6000-tdep.c (rs6000_gdbarch_init): Update. * ppc-linux-tdep.c (ppc_linux_init_abi): Update. * ns32k-tdep.c (ns32k_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * mcore-tdep.c (mcore_gdbarch_init): Update. * m68k-tdep.c (m68k_gdbarch_init): Update. * m68hc11-tdep.c (m68hc11_gdbarch_init): Update. * ia64-tdep.c (ia64_gdbarch_init): Update. * i386-tdep.c (i386_gdbarch_init): Update. * frv-tdep.c (frv_gdbarch_init): Update. * avr-tdep.c (avr_gdbarch_init): Update. * arm-tdep.c (arm_gdbarch_init): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. 2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Rename FRAME_INIT_SAVED_REGS to DEPRECATED_FRAME_INIT_SAVED_REGS.
2003-03-02 04:02:25 +00:00
DEPRECATED_FRAME_INIT_SAVED_REGS (fi);
if (!get_frame_pc (fi))
return 0;
if (get_frame_saved_regs (fi)[regnum] != 0)
return read_memory_integer (get_frame_saved_regs (fi)[regnum],
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
register_size (current_gdbarch, regnum));
}
return read_register (regnum);
}
/* Put here the code to store, into a struct frame_saved_regs, the
addresses of the saved registers of frame described by FRAME_INFO.
This includes special registers such as pc and fp saved in special
ways in the stack frame. sp is even more special: the address we
return for it IS the sp for the next frame. */
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static void
2000-07-30 01:48:28 +00:00
sh_nofp_frame_init_saved_regs (struct frame_info *fi)
{
int *where = (int *) alloca ((NUM_REGS + NUM_PSEUDO_REGS) * sizeof(int));
int rn;
int have_fp = 0;
int depth;
int pc;
int opc;
int insn;
int r3_val = 0;
char *dummy_regs = deprecated_generic_find_dummy_frame (get_frame_pc (fi),
get_frame_base (fi));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
if (get_frame_saved_regs (fi) == NULL)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
frame_saved_regs_zalloc (fi);
else
memset (get_frame_saved_regs (fi), 0, SIZEOF_FRAME_SAVED_REGS);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
if (dummy_regs)
{
/* DANGER! This is ONLY going to work if the char buffer format of
the saved registers is byte-for-byte identical to the
CORE_ADDR regs[NUM_REGS] format used by struct frame_saved_regs! */
memcpy (get_frame_saved_regs (fi), dummy_regs, SIZEOF_FRAME_SAVED_REGS);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
return;
}
get_frame_extra_info (fi)->leaf_function = 1;
get_frame_extra_info (fi)->f_offset = 0;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
for (rn = 0; rn < NUM_REGS + NUM_PSEUDO_REGS; rn++)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
where[rn] = -1;
depth = 0;
/* Loop around examining the prologue insns until we find something
that does not appear to be part of the prologue. But give up
after 20 of them, since we're getting silly then. */
pc = get_frame_func (fi);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
if (!pc)
{
deprecated_update_frame_pc_hack (fi, 0);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
return;
}
for (opc = pc + (2 * 28); pc < opc; pc += 2)
{
insn = read_memory_integer (pc, 2);
/* See where the registers will be saved to */
if (IS_PUSH (insn))
{
rn = GET_PUSHED_REG (insn);
where[rn] = depth;
depth += 4;
}
else if (IS_STS (insn))
{
where[PR_REGNUM] = depth;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* If we're storing the pr then this isn't a leaf */
get_frame_extra_info (fi)->leaf_function = 0;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
depth += 4;
}
else if (IS_MOV_R3 (insn))
{
r3_val = ((insn & 0xff) ^ 0x80) - 0x80;
}
else if (IS_SHLL_R3 (insn))
{
r3_val <<= 1;
}
else if (IS_ADD_R3SP (insn))
{
depth += -r3_val;
}
else if (IS_ADD_SP (insn))
{
depth -= ((insn & 0xff) ^ 0x80) - 0x80;
}
else if (IS_MOV_SP_FP (insn))
break;
#if 0 /* This used to just stop when it found an instruction that
was not considered part of the prologue. Now, we just
keep going looking for likely instructions. */
else
break;
#endif
}
/* Now we know how deep things are, we can work out their addresses */
for (rn = 0; rn < NUM_REGS + NUM_PSEUDO_REGS; rn++)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
if (where[rn] >= 0)
{
2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP. (DEPRECATED_FP_REGNUM): Replace FP_REGNUM. * gdbarch.h, gdbarch.c: Re-generate. * infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM, DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID. * inferior.h (deprecated_read_fp): Rename read_fp. (generic_target_read_fp): Delete declaration. * regcache.c (generic_target_read_fp): Delete function. (deprecated_read_fp): Replace read_fp, use DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM. * d10v-tdep.c (d10v_read_fp): Delete function. (d10v_gdbarch_init): Do not set deprecated_read_fp. * sparc-tdep.c (sparc_gdbarch_init): Do not set deprecated_target_read_fp to generic_target_read_fp. * sh-tdep.c (sh_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Set deprecated_fp_regnum. * x86-64-tdep.c (x86_64_init_abi): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with DEPRECATED_FP_REGNUM. (vax_push_dummy_frame, vax_pop_frame): Ditto. * std-regs.c (value_of_builtin_frame_fp_reg): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Ditto. (sparc_push_dummy_frame, sparc64_read_fp): Ditto. (sparc32_register_virtual_type): Ditto. * sh-tdep.c (sh64_frame_chain): Ditto. (sh64_get_saved_register, sh64_pop_frame): Ditto. (sh_nofp_frame_init_saved_regs): Ditto. (sh64_nofp_frame_init_saved_regs): Ditto. (sh_fp_frame_init_saved_regs): Ditto. * remote-mips.c (mips_wait, mips_fetch_registers): Ditto. * remote-e7000.c (fetch_regs_from_dump): Ditto. * procfs.c (procfs_fetch_registers): Ditto. (procfs_store_registers): Ditto. * ns32knbsd-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. (fetch_kcore_registers, clear_regs): Ditto. * ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto. (ns32k_push_dummy_frame, ns32k_pop_frame): Ditto. * nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto. * nlm/i386.c (do_status): Ditto. * mipsv4-nat.c (supply_gregset): Ditto. * mips-tdep.c: Ditto for comments. * mips-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. * m68k-tdep.c (m68k_push_dummy_frame): Ditto. (m68k_pop_frame, m68k_frame_init_saved_regs): Ditto. * i386-tdep.c (i386_frame_init_saved_regs): Ditto. (i386_do_pop_frame, i386_register_type): Ditto. * hppa-tdep.c (hppa_frame_chain): Ditto. (hppa_push_dummy_frame, find_dummy_frame_regs): Ditto. (hppa_pop_frame, hppa_read_fp): Ditto. (skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto. * cris-tdep.c (cris_examine, cris_pop_frame): Ditto. * config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto. * config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto. * config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto. * config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto. * config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto. * blockframe.c: Ditto for comments. * arch-utils.h: Ditto for comments. * arch-utils.c (legacy_virtual_frame_pointer): Ditto. * alphanbsd-tdep.c (fetch_core_registers): Ditto. * alphabsd-nat.c (fetch_inferior_registers): Ditto. * alpha-tdep.h: Ditto for comments. * alpha-tdep.c (alpha_cannot_fetch_register): Ditto. (alpha_cannot_store_register): Ditto. (alpha_push_dummy_frame): Ditto. * alpha-nat.c (supply_gregset): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update. * config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update. * config/sparc/tm-sparc.h: Update comment. * hppa-tdep.c (hppa_init_extra_frame_info): Use deprecated_read_fp instead of TARGET_READ_FP. (hppa_init_extra_frame_info, hppa_frame_chain): Ditto. (hppa_push_dummy_frame, hppa_read_fp): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Use deprecated_read_fp instead of read_fp. * s390-tdep.c (s390_push_arguments): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * frame.h: Ditto in comments. * frame.c (legacy_get_prev_frame): Ditto. * dummy-frame.c (dummy_frame_this_id): Ditto. * arm-tdep.c (arm_init_extra_frame_info): Ditto. 2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Replace read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp, DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.
2003-04-29 01:49:49 +00:00
if (rn == DEPRECATED_FP_REGNUM)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
have_fp = 1;
get_frame_saved_regs (fi)[rn] = get_frame_base (fi) - where[rn] + depth - 4;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
else
{
get_frame_saved_regs (fi)[rn] = 0;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
}
if (have_fp)
{
2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP. (DEPRECATED_FP_REGNUM): Replace FP_REGNUM. * gdbarch.h, gdbarch.c: Re-generate. * infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM, DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID. * inferior.h (deprecated_read_fp): Rename read_fp. (generic_target_read_fp): Delete declaration. * regcache.c (generic_target_read_fp): Delete function. (deprecated_read_fp): Replace read_fp, use DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM. * d10v-tdep.c (d10v_read_fp): Delete function. (d10v_gdbarch_init): Do not set deprecated_read_fp. * sparc-tdep.c (sparc_gdbarch_init): Do not set deprecated_target_read_fp to generic_target_read_fp. * sh-tdep.c (sh_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Set deprecated_fp_regnum. * x86-64-tdep.c (x86_64_init_abi): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with DEPRECATED_FP_REGNUM. (vax_push_dummy_frame, vax_pop_frame): Ditto. * std-regs.c (value_of_builtin_frame_fp_reg): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Ditto. (sparc_push_dummy_frame, sparc64_read_fp): Ditto. (sparc32_register_virtual_type): Ditto. * sh-tdep.c (sh64_frame_chain): Ditto. (sh64_get_saved_register, sh64_pop_frame): Ditto. (sh_nofp_frame_init_saved_regs): Ditto. (sh64_nofp_frame_init_saved_regs): Ditto. (sh_fp_frame_init_saved_regs): Ditto. * remote-mips.c (mips_wait, mips_fetch_registers): Ditto. * remote-e7000.c (fetch_regs_from_dump): Ditto. * procfs.c (procfs_fetch_registers): Ditto. (procfs_store_registers): Ditto. * ns32knbsd-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. (fetch_kcore_registers, clear_regs): Ditto. * ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto. (ns32k_push_dummy_frame, ns32k_pop_frame): Ditto. * nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto. * nlm/i386.c (do_status): Ditto. * mipsv4-nat.c (supply_gregset): Ditto. * mips-tdep.c: Ditto for comments. * mips-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. * m68k-tdep.c (m68k_push_dummy_frame): Ditto. (m68k_pop_frame, m68k_frame_init_saved_regs): Ditto. * i386-tdep.c (i386_frame_init_saved_regs): Ditto. (i386_do_pop_frame, i386_register_type): Ditto. * hppa-tdep.c (hppa_frame_chain): Ditto. (hppa_push_dummy_frame, find_dummy_frame_regs): Ditto. (hppa_pop_frame, hppa_read_fp): Ditto. (skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto. * cris-tdep.c (cris_examine, cris_pop_frame): Ditto. * config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto. * config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto. * config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto. * config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto. * config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto. * blockframe.c: Ditto for comments. * arch-utils.h: Ditto for comments. * arch-utils.c (legacy_virtual_frame_pointer): Ditto. * alphanbsd-tdep.c (fetch_core_registers): Ditto. * alphabsd-nat.c (fetch_inferior_registers): Ditto. * alpha-tdep.h: Ditto for comments. * alpha-tdep.c (alpha_cannot_fetch_register): Ditto. (alpha_cannot_store_register): Ditto. (alpha_push_dummy_frame): Ditto. * alpha-nat.c (supply_gregset): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update. * config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update. * config/sparc/tm-sparc.h: Update comment. * hppa-tdep.c (hppa_init_extra_frame_info): Use deprecated_read_fp instead of TARGET_READ_FP. (hppa_init_extra_frame_info, hppa_frame_chain): Ditto. (hppa_push_dummy_frame, hppa_read_fp): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Use deprecated_read_fp instead of read_fp. * s390-tdep.c (s390_push_arguments): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * frame.h: Ditto in comments. * frame.c (legacy_get_prev_frame): Ditto. * dummy-frame.c (dummy_frame_this_id): Ditto. * arm-tdep.c (arm_init_extra_frame_info): Ditto. 2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Replace read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp, DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.
2003-04-29 01:49:49 +00:00
get_frame_saved_regs (fi)[SP_REGNUM] = read_memory_integer (get_frame_saved_regs (fi)[DEPRECATED_FP_REGNUM], 4);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
else
{
get_frame_saved_regs (fi)[SP_REGNUM] = get_frame_base (fi) - 4;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP. (DEPRECATED_FP_REGNUM): Replace FP_REGNUM. * gdbarch.h, gdbarch.c: Re-generate. * infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM, DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID. * inferior.h (deprecated_read_fp): Rename read_fp. (generic_target_read_fp): Delete declaration. * regcache.c (generic_target_read_fp): Delete function. (deprecated_read_fp): Replace read_fp, use DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM. * d10v-tdep.c (d10v_read_fp): Delete function. (d10v_gdbarch_init): Do not set deprecated_read_fp. * sparc-tdep.c (sparc_gdbarch_init): Do not set deprecated_target_read_fp to generic_target_read_fp. * sh-tdep.c (sh_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Set deprecated_fp_regnum. * x86-64-tdep.c (x86_64_init_abi): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with DEPRECATED_FP_REGNUM. (vax_push_dummy_frame, vax_pop_frame): Ditto. * std-regs.c (value_of_builtin_frame_fp_reg): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Ditto. (sparc_push_dummy_frame, sparc64_read_fp): Ditto. (sparc32_register_virtual_type): Ditto. * sh-tdep.c (sh64_frame_chain): Ditto. (sh64_get_saved_register, sh64_pop_frame): Ditto. (sh_nofp_frame_init_saved_regs): Ditto. (sh64_nofp_frame_init_saved_regs): Ditto. (sh_fp_frame_init_saved_regs): Ditto. * remote-mips.c (mips_wait, mips_fetch_registers): Ditto. * remote-e7000.c (fetch_regs_from_dump): Ditto. * procfs.c (procfs_fetch_registers): Ditto. (procfs_store_registers): Ditto. * ns32knbsd-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. (fetch_kcore_registers, clear_regs): Ditto. * ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto. (ns32k_push_dummy_frame, ns32k_pop_frame): Ditto. * nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto. * nlm/i386.c (do_status): Ditto. * mipsv4-nat.c (supply_gregset): Ditto. * mips-tdep.c: Ditto for comments. * mips-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. * m68k-tdep.c (m68k_push_dummy_frame): Ditto. (m68k_pop_frame, m68k_frame_init_saved_regs): Ditto. * i386-tdep.c (i386_frame_init_saved_regs): Ditto. (i386_do_pop_frame, i386_register_type): Ditto. * hppa-tdep.c (hppa_frame_chain): Ditto. (hppa_push_dummy_frame, find_dummy_frame_regs): Ditto. (hppa_pop_frame, hppa_read_fp): Ditto. (skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto. * cris-tdep.c (cris_examine, cris_pop_frame): Ditto. * config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto. * config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto. * config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto. * config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto. * config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto. * blockframe.c: Ditto for comments. * arch-utils.h: Ditto for comments. * arch-utils.c (legacy_virtual_frame_pointer): Ditto. * alphanbsd-tdep.c (fetch_core_registers): Ditto. * alphabsd-nat.c (fetch_inferior_registers): Ditto. * alpha-tdep.h: Ditto for comments. * alpha-tdep.c (alpha_cannot_fetch_register): Ditto. (alpha_cannot_store_register): Ditto. (alpha_push_dummy_frame): Ditto. * alpha-nat.c (supply_gregset): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update. * config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update. * config/sparc/tm-sparc.h: Update comment. * hppa-tdep.c (hppa_init_extra_frame_info): Use deprecated_read_fp instead of TARGET_READ_FP. (hppa_init_extra_frame_info, hppa_frame_chain): Ditto. (hppa_push_dummy_frame, hppa_read_fp): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Use deprecated_read_fp instead of read_fp. * s390-tdep.c (s390_push_arguments): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * frame.h: Ditto in comments. * frame.c (legacy_get_prev_frame): Ditto. * dummy-frame.c (dummy_frame_this_id): Ditto. * arm-tdep.c (arm_init_extra_frame_info): Ditto. 2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Replace read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp, DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.
2003-04-29 01:49:49 +00:00
get_frame_extra_info (fi)->f_offset = depth - where[DEPRECATED_FP_REGNUM] - 4;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Work out the return pc - either from the saved pr or the pr
value */
}
/* For vectors of 4 floating point registers. */
static int
fv_reg_base_num (int fv_regnum)
{
int fp_regnum;
fp_regnum = FP0_REGNUM +
(fv_regnum - gdbarch_tdep (current_gdbarch)->FV0_REGNUM) * 4;
return fp_regnum;
}
/* For double precision floating point registers, i.e 2 fp regs.*/
static int
dr_reg_base_num (int dr_regnum)
{
int fp_regnum;
fp_regnum = FP0_REGNUM +
(dr_regnum - gdbarch_tdep (current_gdbarch)->DR0_REGNUM) * 2;
return fp_regnum;
}
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
static void
sh_fp_frame_init_saved_regs (struct frame_info *fi)
{
int *where = (int *) alloca ((NUM_REGS + NUM_PSEUDO_REGS) * sizeof (int));
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
int rn;
int have_fp = 0;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
int depth;
int pc;
int opc;
int insn;
int r3_val = 0;
char *dummy_regs = deprecated_generic_find_dummy_frame (get_frame_pc (fi), get_frame_base (fi));
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
if (get_frame_saved_regs (fi) == NULL)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
frame_saved_regs_zalloc (fi);
else
memset (get_frame_saved_regs (fi), 0, SIZEOF_FRAME_SAVED_REGS);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
if (dummy_regs)
{
/* DANGER! This is ONLY going to work if the char buffer format of
1999-07-07 20:19:36 +00:00
the saved registers is byte-for-byte identical to the
CORE_ADDR regs[NUM_REGS] format used by struct frame_saved_regs! */
memcpy (get_frame_saved_regs (fi), dummy_regs, SIZEOF_FRAME_SAVED_REGS);
return;
}
get_frame_extra_info (fi)->leaf_function = 1;
get_frame_extra_info (fi)->f_offset = 0;
for (rn = 0; rn < NUM_REGS + NUM_PSEUDO_REGS; rn++)
where[rn] = -1;
depth = 0;
/* Loop around examining the prologue insns until we find something
that does not appear to be part of the prologue. But give up
after 20 of them, since we're getting silly then. */
pc = get_frame_func (fi);
if (!pc)
{
deprecated_update_frame_pc_hack (fi, 0);
return;
}
for (opc = pc + (2 * 28); pc < opc; pc += 2)
{
insn = read_memory_integer (pc, 2);
/* See where the registers will be saved to */
if (IS_PUSH (insn))
{
rn = GET_PUSHED_REG (insn);
where[rn] = depth;
depth += 4;
}
else if (IS_STS (insn))
{
where[PR_REGNUM] = depth;
/* If we're storing the pr then this isn't a leaf */
get_frame_extra_info (fi)->leaf_function = 0;
depth += 4;
}
else if (IS_MOV_R3 (insn))
{
r3_val = ((insn & 0xff) ^ 0x80) - 0x80;
}
else if (IS_SHLL_R3 (insn))
{
r3_val <<= 1;
}
else if (IS_ADD_R3SP (insn))
{
depth += -r3_val;
}
else if (IS_ADD_SP (insn))
{
depth -= ((insn & 0xff) ^ 0x80) - 0x80;
}
else if (IS_FMOV (insn))
{
if (read_register (tdep->FPSCR_REGNUM) & FPSCR_SZ)
{
depth += 8;
}
else
{
depth += 4;
}
}
else if (IS_MOV_SP_FP (insn))
break;
#if 0 /* This used to just stop when it found an instruction that
was not considered part of the prologue. Now, we just
keep going looking for likely instructions. */
else
break;
#endif
}
/* Now we know how deep things are, we can work out their addresses */
for (rn = 0; rn < NUM_REGS + NUM_PSEUDO_REGS; rn++)
{
if (where[rn] >= 0)
{
2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP. (DEPRECATED_FP_REGNUM): Replace FP_REGNUM. * gdbarch.h, gdbarch.c: Re-generate. * infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM, DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID. * inferior.h (deprecated_read_fp): Rename read_fp. (generic_target_read_fp): Delete declaration. * regcache.c (generic_target_read_fp): Delete function. (deprecated_read_fp): Replace read_fp, use DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM. * d10v-tdep.c (d10v_read_fp): Delete function. (d10v_gdbarch_init): Do not set deprecated_read_fp. * sparc-tdep.c (sparc_gdbarch_init): Do not set deprecated_target_read_fp to generic_target_read_fp. * sh-tdep.c (sh_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Set deprecated_fp_regnum. * x86-64-tdep.c (x86_64_init_abi): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with DEPRECATED_FP_REGNUM. (vax_push_dummy_frame, vax_pop_frame): Ditto. * std-regs.c (value_of_builtin_frame_fp_reg): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Ditto. (sparc_push_dummy_frame, sparc64_read_fp): Ditto. (sparc32_register_virtual_type): Ditto. * sh-tdep.c (sh64_frame_chain): Ditto. (sh64_get_saved_register, sh64_pop_frame): Ditto. (sh_nofp_frame_init_saved_regs): Ditto. (sh64_nofp_frame_init_saved_regs): Ditto. (sh_fp_frame_init_saved_regs): Ditto. * remote-mips.c (mips_wait, mips_fetch_registers): Ditto. * remote-e7000.c (fetch_regs_from_dump): Ditto. * procfs.c (procfs_fetch_registers): Ditto. (procfs_store_registers): Ditto. * ns32knbsd-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. (fetch_kcore_registers, clear_regs): Ditto. * ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto. (ns32k_push_dummy_frame, ns32k_pop_frame): Ditto. * nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto. * nlm/i386.c (do_status): Ditto. * mipsv4-nat.c (supply_gregset): Ditto. * mips-tdep.c: Ditto for comments. * mips-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. * m68k-tdep.c (m68k_push_dummy_frame): Ditto. (m68k_pop_frame, m68k_frame_init_saved_regs): Ditto. * i386-tdep.c (i386_frame_init_saved_regs): Ditto. (i386_do_pop_frame, i386_register_type): Ditto. * hppa-tdep.c (hppa_frame_chain): Ditto. (hppa_push_dummy_frame, find_dummy_frame_regs): Ditto. (hppa_pop_frame, hppa_read_fp): Ditto. (skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto. * cris-tdep.c (cris_examine, cris_pop_frame): Ditto. * config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto. * config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto. * config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto. * config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto. * config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto. * blockframe.c: Ditto for comments. * arch-utils.h: Ditto for comments. * arch-utils.c (legacy_virtual_frame_pointer): Ditto. * alphanbsd-tdep.c (fetch_core_registers): Ditto. * alphabsd-nat.c (fetch_inferior_registers): Ditto. * alpha-tdep.h: Ditto for comments. * alpha-tdep.c (alpha_cannot_fetch_register): Ditto. (alpha_cannot_store_register): Ditto. (alpha_push_dummy_frame): Ditto. * alpha-nat.c (supply_gregset): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update. * config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update. * config/sparc/tm-sparc.h: Update comment. * hppa-tdep.c (hppa_init_extra_frame_info): Use deprecated_read_fp instead of TARGET_READ_FP. (hppa_init_extra_frame_info, hppa_frame_chain): Ditto. (hppa_push_dummy_frame, hppa_read_fp): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Use deprecated_read_fp instead of read_fp. * s390-tdep.c (s390_push_arguments): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * frame.h: Ditto in comments. * frame.c (legacy_get_prev_frame): Ditto. * dummy-frame.c (dummy_frame_this_id): Ditto. * arm-tdep.c (arm_init_extra_frame_info): Ditto. 2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Replace read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp, DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.
2003-04-29 01:49:49 +00:00
if (rn == DEPRECATED_FP_REGNUM)
have_fp = 1;
get_frame_saved_regs (fi)[rn] = get_frame_base (fi) - where[rn] + depth - 4;
}
else
{
get_frame_saved_regs (fi)[rn] = 0;
}
}
if (have_fp)
{
get_frame_saved_regs (fi)[SP_REGNUM] =
2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP. (DEPRECATED_FP_REGNUM): Replace FP_REGNUM. * gdbarch.h, gdbarch.c: Re-generate. * infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM, DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID. * inferior.h (deprecated_read_fp): Rename read_fp. (generic_target_read_fp): Delete declaration. * regcache.c (generic_target_read_fp): Delete function. (deprecated_read_fp): Replace read_fp, use DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM. * d10v-tdep.c (d10v_read_fp): Delete function. (d10v_gdbarch_init): Do not set deprecated_read_fp. * sparc-tdep.c (sparc_gdbarch_init): Do not set deprecated_target_read_fp to generic_target_read_fp. * sh-tdep.c (sh_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Set deprecated_fp_regnum. * x86-64-tdep.c (x86_64_init_abi): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with DEPRECATED_FP_REGNUM. (vax_push_dummy_frame, vax_pop_frame): Ditto. * std-regs.c (value_of_builtin_frame_fp_reg): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Ditto. (sparc_push_dummy_frame, sparc64_read_fp): Ditto. (sparc32_register_virtual_type): Ditto. * sh-tdep.c (sh64_frame_chain): Ditto. (sh64_get_saved_register, sh64_pop_frame): Ditto. (sh_nofp_frame_init_saved_regs): Ditto. (sh64_nofp_frame_init_saved_regs): Ditto. (sh_fp_frame_init_saved_regs): Ditto. * remote-mips.c (mips_wait, mips_fetch_registers): Ditto. * remote-e7000.c (fetch_regs_from_dump): Ditto. * procfs.c (procfs_fetch_registers): Ditto. (procfs_store_registers): Ditto. * ns32knbsd-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. (fetch_kcore_registers, clear_regs): Ditto. * ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto. (ns32k_push_dummy_frame, ns32k_pop_frame): Ditto. * nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto. * nlm/i386.c (do_status): Ditto. * mipsv4-nat.c (supply_gregset): Ditto. * mips-tdep.c: Ditto for comments. * mips-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. * m68k-tdep.c (m68k_push_dummy_frame): Ditto. (m68k_pop_frame, m68k_frame_init_saved_regs): Ditto. * i386-tdep.c (i386_frame_init_saved_regs): Ditto. (i386_do_pop_frame, i386_register_type): Ditto. * hppa-tdep.c (hppa_frame_chain): Ditto. (hppa_push_dummy_frame, find_dummy_frame_regs): Ditto. (hppa_pop_frame, hppa_read_fp): Ditto. (skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto. * cris-tdep.c (cris_examine, cris_pop_frame): Ditto. * config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto. * config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto. * config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto. * config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto. * config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto. * blockframe.c: Ditto for comments. * arch-utils.h: Ditto for comments. * arch-utils.c (legacy_virtual_frame_pointer): Ditto. * alphanbsd-tdep.c (fetch_core_registers): Ditto. * alphabsd-nat.c (fetch_inferior_registers): Ditto. * alpha-tdep.h: Ditto for comments. * alpha-tdep.c (alpha_cannot_fetch_register): Ditto. (alpha_cannot_store_register): Ditto. (alpha_push_dummy_frame): Ditto. * alpha-nat.c (supply_gregset): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update. * config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update. * config/sparc/tm-sparc.h: Update comment. * hppa-tdep.c (hppa_init_extra_frame_info): Use deprecated_read_fp instead of TARGET_READ_FP. (hppa_init_extra_frame_info, hppa_frame_chain): Ditto. (hppa_push_dummy_frame, hppa_read_fp): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Use deprecated_read_fp instead of read_fp. * s390-tdep.c (s390_push_arguments): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * frame.h: Ditto in comments. * frame.c (legacy_get_prev_frame): Ditto. * dummy-frame.c (dummy_frame_this_id): Ditto. * arm-tdep.c (arm_init_extra_frame_info): Ditto. 2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Replace read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp, DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.
2003-04-29 01:49:49 +00:00
read_memory_integer (get_frame_saved_regs (fi)[DEPRECATED_FP_REGNUM], 4);
}
else
{
get_frame_saved_regs (fi)[SP_REGNUM] = get_frame_base (fi) - 4;
}
2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP. (DEPRECATED_FP_REGNUM): Replace FP_REGNUM. * gdbarch.h, gdbarch.c: Re-generate. * infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM, DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID. * inferior.h (deprecated_read_fp): Rename read_fp. (generic_target_read_fp): Delete declaration. * regcache.c (generic_target_read_fp): Delete function. (deprecated_read_fp): Replace read_fp, use DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM. * d10v-tdep.c (d10v_read_fp): Delete function. (d10v_gdbarch_init): Do not set deprecated_read_fp. * sparc-tdep.c (sparc_gdbarch_init): Do not set deprecated_target_read_fp to generic_target_read_fp. * sh-tdep.c (sh_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Set deprecated_fp_regnum. * x86-64-tdep.c (x86_64_init_abi): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with DEPRECATED_FP_REGNUM. (vax_push_dummy_frame, vax_pop_frame): Ditto. * std-regs.c (value_of_builtin_frame_fp_reg): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Ditto. (sparc_push_dummy_frame, sparc64_read_fp): Ditto. (sparc32_register_virtual_type): Ditto. * sh-tdep.c (sh64_frame_chain): Ditto. (sh64_get_saved_register, sh64_pop_frame): Ditto. (sh_nofp_frame_init_saved_regs): Ditto. (sh64_nofp_frame_init_saved_regs): Ditto. (sh_fp_frame_init_saved_regs): Ditto. * remote-mips.c (mips_wait, mips_fetch_registers): Ditto. * remote-e7000.c (fetch_regs_from_dump): Ditto. * procfs.c (procfs_fetch_registers): Ditto. (procfs_store_registers): Ditto. * ns32knbsd-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. (fetch_kcore_registers, clear_regs): Ditto. * ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto. (ns32k_push_dummy_frame, ns32k_pop_frame): Ditto. * nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto. * nlm/i386.c (do_status): Ditto. * mipsv4-nat.c (supply_gregset): Ditto. * mips-tdep.c: Ditto for comments. * mips-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. * m68k-tdep.c (m68k_push_dummy_frame): Ditto. (m68k_pop_frame, m68k_frame_init_saved_regs): Ditto. * i386-tdep.c (i386_frame_init_saved_regs): Ditto. (i386_do_pop_frame, i386_register_type): Ditto. * hppa-tdep.c (hppa_frame_chain): Ditto. (hppa_push_dummy_frame, find_dummy_frame_regs): Ditto. (hppa_pop_frame, hppa_read_fp): Ditto. (skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto. * cris-tdep.c (cris_examine, cris_pop_frame): Ditto. * config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto. * config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto. * config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto. * config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto. * config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto. * blockframe.c: Ditto for comments. * arch-utils.h: Ditto for comments. * arch-utils.c (legacy_virtual_frame_pointer): Ditto. * alphanbsd-tdep.c (fetch_core_registers): Ditto. * alphabsd-nat.c (fetch_inferior_registers): Ditto. * alpha-tdep.h: Ditto for comments. * alpha-tdep.c (alpha_cannot_fetch_register): Ditto. (alpha_cannot_store_register): Ditto. (alpha_push_dummy_frame): Ditto. * alpha-nat.c (supply_gregset): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update. * config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update. * config/sparc/tm-sparc.h: Update comment. * hppa-tdep.c (hppa_init_extra_frame_info): Use deprecated_read_fp instead of TARGET_READ_FP. (hppa_init_extra_frame_info, hppa_frame_chain): Ditto. (hppa_push_dummy_frame, hppa_read_fp): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Use deprecated_read_fp instead of read_fp. * s390-tdep.c (s390_push_arguments): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * frame.h: Ditto in comments. * frame.c (legacy_get_prev_frame): Ditto. * dummy-frame.c (dummy_frame_this_id): Ditto. * arm-tdep.c (arm_init_extra_frame_info): Ditto. 2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Replace read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp, DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.
2003-04-29 01:49:49 +00:00
get_frame_extra_info (fi)->f_offset = depth - where[DEPRECATED_FP_REGNUM] - 4;
/* Work out the return pc - either from the saved pr or the pr
value */
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Initialize the extra info saved in a FRAME */
static void
2000-07-30 01:48:28 +00:00
sh_init_extra_frame_info (int fromleaf, struct frame_info *fi)
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
frame_extra_info_zalloc (fi, sizeof (struct frame_extra_info));
if (get_next_frame (fi))
2003-03-12 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_FRAME_SAVED_PC): Replace FRAME_SAVED_PC. * gdbarch.h, gdbarch.c: Re-generate. * xstormy16-tdep.c (xstormy16_gdbarch_init): Update. * x86-64-tdep.h: Update. * x86-64-tdep.c (x86_64_init_abi): Update. * v850-tdep.c (v850_gdbarch_init): Update. * sparc-tdep.c (sparc_gdbarch_init): Update. * sh-tdep.c (sh_gdbarch_init): Update. * s390-tdep.c (s390_gdbarch_init): Update. * rs6000-tdep.c (rs6000_gdbarch_init): Update. * ppc-linux-tdep.c (ppc_linux_init_abi): Update. * ns32k-tdep.c (ns32k_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * mcore-tdep.c (mcore_gdbarch_init): Update. * m68k-tdep.c (m68k_gdbarch_init): Update. * m68hc11-tdep.c (m68hc11_gdbarch_init): Update. * ia64-tdep.c (ia64_gdbarch_init): Update. * i386-tdep.c (i386_gdbarch_init): Update. * i386-interix-tdep.c (i386_interix_init_abi): Update. * hppa-tdep.c (hppa_gdbarch_init): Update. * h8300-tdep.c (h8300_gdbarch_init): Update. * frv-tdep.c (frv_gdbarch_init): Update. * cris-tdep.c (cris_gdbarch_init): Update. * avr-tdep.c (avr_gdbarch_init): Update. * arm-tdep.c (arm_gdbarch_init): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. * sh-tdep.c (sh_init_extra_frame_info): Update. (sh64_init_extra_frame_info): Update. * ns32knbsd-nat.c (frame_num_args): Update. * m68hc11-tdep.c (m68hc11_init_extra_frame_info): Update. * xstormy16-tdep.c (xstormy16_pop_frame): Update. (xstormy16_frame_chain_valid): Update. * vax-tdep.c (vax_saved_pc_after_call): Update. * v850-tdep.c (v850_frame_chain): Update. (v850_pop_frame): Update. (v850_init_extra_frame_info): Update. * sparc-tdep.c (setup_arbitrary_frame): Update. * ns32k-tdep.c (umax_frame_num_args): Update. * s390-tdep.c (s390_pop_frame_regular): Update. * mn10300-tdep.c (mn10300_frame_chain): Update. (mn10300_pop_frame_regular): Update. (mn10300_init_extra_frame_info): Update. * mips-tdep.c (mips_init_frame_pc_first): Update. (mips_frame_chain): Update. (mips_pop_frame): Update. * mcore-tdep.c (mcore_frame_chain): Update. (mcore_pop_frame): Update. (mcore_init_extra_frame_info): Update. * arch-utils.c (init_frame_pc_default): Update. * m68k-tdep.c (isi_frame_num_args): Update. (delta68_frame_num_args): Update. (news_frame_num_args): Update. * ia64-tdep.c (ia64_pop_frame_regular): Update. * alpha-tdep.c (alpha_init_frame_pc_first): Update. (alpha_frame_chain): Update. (alpha_pop_frame): Update. * hppa-tdep.c (hppa_saved_pc_after_call): Update. (hppa_init_extra_frame_info): Update. (hppa_frame_chain): Update. (hppa_frame_chain_valid): Update. * cris-tdep.c (cris_init_extra_frame_info): Update. * avr-tdep.c (avr_init_extra_frame_info): Update. * arm-tdep.c (arm_frame_chain_valid): Update. (arm_init_extra_frame_info): Update. (arm_pop_frame): Update. * frame.c (frame_pc_unwind): Update. * config/sparc/tm-sparc.h (DEPRECATED_FRAME_SAVED_PC): Update. (DEPRECATED_INIT_FRAME_PC_FIRST): Update. * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update. * config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update. * config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update. * config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update. 2003-03-12 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Rename FRAME_SAVED_PC to DEPRECATED_FRAME_SAVED_PC.
2003-03-12 16:50:47 +00:00
deprecated_update_frame_pc_hack (fi, DEPRECATED_FRAME_SAVED_PC (get_next_frame (fi)));
if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (fi), get_frame_base (fi),
get_frame_base (fi)))
{
2003-04-21 16:48:41 +00:00
/* We need to setup fi->frame here because call_function_by_hand
gets it wrong by assuming it's always FP. */
deprecated_update_frame_base_hack (fi, deprecated_read_register_dummy (get_frame_pc (fi), get_frame_base (fi),
SP_REGNUM));
get_frame_extra_info (fi)->return_pc = deprecated_read_register_dummy (get_frame_pc (fi),
get_frame_base (fi),
2002-09-17 Andrew Cagney <cagney@redhat.com> * h8300-tdep.c (h8300_frame_chain): (h8300_frame_saved_pc): * blockframe.c (deprecated_read_register_dummy): Rename generic_read_register_dummy. * frame.c (frame_unwind_signed_register): New function. (frame_unwind_unsigned_register): New function. * frame.h (frame_unwind_signed_register): Declare. (frame_unwind_unsigned_register): Declare. (deprecated_read_register_dummy): Rename generic_read_register_dummy. * xstormy16-tdep.c (xstormy16_frame_saved_pc): Update. * rs6000-tdep.c (rs6000_frame_saved_pc): Update. * s390-tdep.c (s390_frame_saved_pc_nofix): Update. (s390_frame_chain): Update. * v850-tdep.c (v850_find_callers_reg): Update. (v850_frame_saved_pc): Update. * m32r-tdep.c (m32r_init_extra_frame_info): Update. (m32r_find_callers_reg): Update. (m32r_frame_saved_pc): Update. * sh-tdep.c (sh_find_callers_reg): Update. (sh64_get_saved_pr): Update. (sh_init_extra_frame_info): Update. (sh_init_extra_frame_info): Update. (sh64_init_extra_frame_info): Update. (sh64_init_extra_frame_info): Update. * mcore-tdep.c (mcore_find_callers_reg): Update. (mcore_frame_saved_pc): Update. (mcore_init_extra_frame_info): Update. * i386-tdep.c (i386_frame_saved_pc): Update. * ia64-tdep.c (ia64_frame_saved_pc): Update. (ia64_init_extra_frame_info): Update. (ia64_init_extra_frame_info): Update. * d10v-tdep.c (d10v_frame_saved_pc): Update. * cris-tdep.c (cris_init_extra_frame_info): Update. * avr-tdep.c (avr_frame_chain): Update. (avr_init_extra_frame_info): Update. (avr_frame_saved_pc): Update. * arm-tdep.c (arm_find_callers_reg): Update. (arm_init_extra_frame_info): Update. (arm_frame_saved_pc): Update.
2002-09-17 20:42:01 +00:00
PC_REGNUM);
2003-05-03 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_REGISTER_SIZE): Rename REGISTER_SIZE. (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS): Rename SIZEOF_CALL_DUMMY_WORDS. (DEPRECATED_CALL_DUMMY_WORDS): Rename CALL_DUMMY_WORDS. (DEPRECATED_FIX_CALL_DUMMY): Rename FIX_CALL_DUMMY. (DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET): Rename CALL_DUMMY_BREAKPOINT_OFFSET. (DEPRECATED_CALL_DUMMY_START_OFFSET): Rename CALL_DUMMY_START_OFFSET. (DEPRECATED_CALL_DUMMY_LENGTH): Rename CALL_DUMMY_LENGTH. * gdbarch.h, gdbarch.c: Re-generate. * alpha-tdep.c, alphafbsd-tdep.c, arm-linux-tdep.c: Update. * arm-tdep.c, avr-tdep.c, breakpoint.c, cris-tdep.c: Update. * dummy-frame.c, dummy-frame.h, frv-tdep.c, gdbarch.c: Update. * gdbarch.h, gdbarch.sh, h8300-tdep.c, hppa-tdep.c: Update. * i386-tdep.c, ia64-tdep.c, infcall.c, inferior.h: Update. * m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c: Update. * mips-tdep.c, mn10300-tdep.c, ns32k-tdep.c: Update. * rs6000-tdep.c, s390-tdep.c, sh-tdep.c, sol-thread.c: Update. * sparc-tdep.c, target.c, v850-tdep.c, valops.c: Update. * vax-tdep.c, x86-64-tdep.c, xstormy16-tdep.c: Update. * config/ia64/tm-ia64.h, config/m68k/tm-vx68.h: Update. * config/mips/tm-mips.h, config/pa/nm-hppah.h: Update. * config/pa/tm-hppa.h, config/pa/tm-hppa64.h: Update. * config/s390/tm-s390.h, config/sparc/tm-sp64.h: Update. * config/sparc/tm-sparc.h: Update. Index: doc/ChangeLog 2003-05-03 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Make CALL_DUMMY_WORDS, SIZEOF_CALL_DUMMY_WORDS, CALL_DUMMY_LENGTH, FIX_CALL_DUMMY, CALL_DUMMY_BREAKPOINT_OFFSET and CALL_DUMMY_BREAKPOINT_OFFSET deprecated. Index: mi/ChangeLog 2003-05-03 Andrew Cagney <cagney@redhat.com> * mi-main.c (mi_cmd_data_write_register_values): Replace REGISTER_SIZE with DEPRECATED_REGISTER_SIZE. Index: testsuite/ChangeLog 2003-05-03 Andrew Cagney <cagney@redhat.com> * gdb.base/watchpoint.exp: Rename CALL_DUMMY_BREAKPOINT_OFFSET to DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET in comments.
2003-05-05 17:56:57 +00:00
get_frame_extra_info (fi)->f_offset = -(DEPRECATED_CALL_DUMMY_LENGTH + 4);
get_frame_extra_info (fi)->leaf_function = 0;
return;
}
else
{
DEPRECATED_FRAME_INIT_SAVED_REGS (fi);
get_frame_extra_info (fi)->return_pc =
sh_find_callers_reg (fi, PR_REGNUM);
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
}
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Extract from an array REGBUF containing the (raw) register state
the address in which a function should return its structure value,
as a CORE_ADDR (or an expression that can be used as one). */
static CORE_ADDR
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_extract_struct_value_address (struct regcache *regcache)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
ULONGEST addr;
/*FIXME: Is R0 really correct here? Not STRUCT_RETURN_REGNUM? */
regcache_cooked_read_unsigned (regcache, STRUCT_RETURN_REGNUM, &addr);
return addr;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
static CORE_ADDR
2000-07-30 01:48:28 +00:00
sh_frame_saved_pc (struct frame_info *frame)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
return (get_frame_extra_info (frame)->return_pc);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
/* Discard from the stack the innermost frame,
restoring all saved registers. */
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static void
2000-07-30 01:48:28 +00:00
sh_pop_frame (void)
{
struct frame_info *frame = get_current_frame ();
CORE_ADDR fp;
int regnum;
if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (frame),
get_frame_base (frame),
get_frame_base (frame)))
generic_pop_dummy_frame ();
else
1999-07-07 20:19:36 +00:00
{
fp = get_frame_base (frame);
2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename FRAME_INIT_SAVED_REGS. * gdbarch.h, gdbarch.c: Regenerate. * stack.c (frame_info): Update. * sh-tdep.c (sh_find_callers_reg, sh64_get_saved_pr): Update. (sh_init_extra_frame_info, sh64_init_extra_frame_info): Update. (sh64_get_saved_register, sh_pop_frame, sh64_pop_frame): Update. * ns32k-tdep.c (ns32k_pop_frame): Update. * mips-tdep.c (mips_pop_frame): Update. * m68hc11-tdep.c (m68hc11_pop_frame): Update. * ia64-tdep.c (ia64_frame_chain): Update. (ia64_frame_saved_pc, ia64_get_saved_register): Update. (ia64_frameless_function_invocation): Update. (ia64_init_extra_frame_info): Update. (ia64_pop_frame_regular): Update. * frame.h (struct frame_info): Update comment. (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * frame.c (frame_saved_regs_register_unwind): Update. (frame_saved_regs_register_unwind): Update. (deprecated_generic_get_saved_register): Update. * cris-tdep.c: Update comment. * config/sparc/tm-sparc.h (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * xstormy16-tdep.c (xstormy16_gdbarch_init): Update. * x86-64-tdep.c (x86_64_init_abi): Update. * vax-tdep.c (vax_gdbarch_init): Update. * v850-tdep.c (v850_gdbarch_init): Update. * sparc-tdep.c (sparc_gdbarch_init): Update. * sh-tdep.c (sh_gdbarch_init): Update. * s390-tdep.c (s390_gdbarch_init): Update. * rs6000-tdep.c (rs6000_gdbarch_init): Update. * ppc-linux-tdep.c (ppc_linux_init_abi): Update. * ns32k-tdep.c (ns32k_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * mcore-tdep.c (mcore_gdbarch_init): Update. * m68k-tdep.c (m68k_gdbarch_init): Update. * m68hc11-tdep.c (m68hc11_gdbarch_init): Update. * ia64-tdep.c (ia64_gdbarch_init): Update. * i386-tdep.c (i386_gdbarch_init): Update. * frv-tdep.c (frv_gdbarch_init): Update. * avr-tdep.c (avr_gdbarch_init): Update. * arm-tdep.c (arm_gdbarch_init): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. 2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Rename FRAME_INIT_SAVED_REGS to DEPRECATED_FRAME_INIT_SAVED_REGS.
2003-03-02 04:02:25 +00:00
DEPRECATED_FRAME_INIT_SAVED_REGS (frame);
1999-07-07 20:19:36 +00:00
/* Copy regs from where they were saved in the frame */
for (regnum = 0; regnum < NUM_REGS + NUM_PSEUDO_REGS; regnum++)
if (get_frame_saved_regs (frame)[regnum])
write_register (regnum,
read_memory_integer (get_frame_saved_regs (frame)[regnum], 4));
write_register (PC_REGNUM, get_frame_extra_info (frame)->return_pc);
1999-07-07 20:19:36 +00:00
write_register (SP_REGNUM, fp + 4);
}
flush_cached_frames ();
}
static CORE_ADDR
sh_frame_align (struct gdbarch *ignore, CORE_ADDR sp)
{
return sp & ~3;
}
/* Function: push_dummy_call (formerly push_arguments)
Setup the function arguments for calling a function in the inferior.
On the Hitachi SH architecture, there are four registers (R4 to R7)
which are dedicated for passing function arguments. Up to the first
four arguments (depending on size) may go into these registers.
The rest go on the stack.
MVS: Except on SH variants that have floating point registers.
In that case, float and double arguments are passed in the same
manner, but using FP registers instead of GP registers.
Arguments that are smaller than 4 bytes will still take up a whole
register or a whole 32-bit word on the stack, and will be
right-justified in the register or the stack word. This includes
chars, shorts, and small aggregate types.
Arguments that are larger than 4 bytes may be split between two or
more registers. If there are not enough registers free, an argument
may be passed partly in a register (or registers), and partly on the
stack. This includes doubles, long longs, and larger aggregates.
As far as I know, there is no upper limit to the size of aggregates
that will be passed in this way; in other words, the convention of
passing a pointer to a large aggregate instead of a copy is not used.
MVS: The above appears to be true for the SH variants that do not
have an FPU, however those that have an FPU appear to copy the
aggregate argument onto the stack (and not place it in registers)
if it is larger than 16 bytes (four GP registers).
An exceptional case exists for struct arguments (and possibly other
aggregates such as arrays) if the size is larger than 4 bytes but
not a multiple of 4 bytes. In this case the argument is never split
between the registers and the stack, but instead is copied in its
entirety onto the stack, AND also copied into as many registers as
there is room for. In other words, space in registers permitting,
two copies of the same argument are passed in. As far as I can tell,
only the one on the stack is used, although that may be a function
of the level of compiler optimization. I suspect this is a compiler
bug. Arguments of these odd sizes are left-justified within the
word (as opposed to arguments smaller than 4 bytes, which are
right-justified).
1999-07-07 20:19:36 +00:00
If the function is to return an aggregate type such as a struct, it
is either returned in the normal return value register R0 (if its
size is no greater than one byte), or else the caller must allocate
space into which the callee will copy the return value (if the size
is greater than one byte). In this case, a pointer to the return
value location is passed into the callee in register R2, which does
not displace any of the other arguments passed in via registers R4
to R7. */
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static CORE_ADDR
sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
CORE_ADDR func_addr,
struct regcache *regcache,
CORE_ADDR bp_addr, int nargs,
struct value **args,
CORE_ADDR sp, int struct_return,
CORE_ADDR struct_addr)
{
int stack_offset, stack_alloc;
int argreg, flt_argreg;
int argnum;
struct type *type;
CORE_ADDR regval;
char *val;
char valbuf[4];
int len;
int odd_sized_struct;
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
/* first force sp to a 4-byte alignment */
sp = sh_frame_align (gdbarch, sp);
/* The "struct return pointer" pseudo-argument has its own dedicated
register */
if (struct_return)
regcache_cooked_write_unsigned (regcache,
STRUCT_RETURN_REGNUM,
struct_addr);
/* Now make sure there's space on the stack */
for (argnum = 0, stack_alloc = 0; argnum < nargs; argnum++)
stack_alloc += ((TYPE_LENGTH (VALUE_TYPE (args[argnum])) + 3) & ~3);
sp -= stack_alloc; /* make room on stack for args */
/* Now load as many as possible of the first arguments into
registers, and push the rest onto the stack. There are 16 bytes
in four registers available. Loop thru args from first to last. */
argreg = ARG0_REGNUM;
flt_argreg = FLOAT_ARG0_REGNUM;
for (argnum = 0, stack_offset = 0; argnum < nargs; argnum++)
{
type = VALUE_TYPE (args[argnum]);
len = TYPE_LENGTH (type);
memset (valbuf, 0, sizeof (valbuf));
if (len < 4)
{
/* value gets right-justified in the register or stack word */
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
memcpy (valbuf + (4 - len),
(char *) VALUE_CONTENTS (args[argnum]), len);
else
memcpy (valbuf, (char *) VALUE_CONTENTS (args[argnum]), len);
val = valbuf;
}
else
val = (char *) VALUE_CONTENTS (args[argnum]);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
if (len > 4 && (len & 3) != 0)
odd_sized_struct = 1; /* Such structs go entirely on stack. */
else if (len > 16)
odd_sized_struct = 1; /* So do aggregates bigger than 4 words. */
else
odd_sized_struct = 0;
while (len > 0)
{
if ((TYPE_CODE (type) == TYPE_CODE_FLT
&& flt_argreg > FLOAT_ARGLAST_REGNUM)
|| argreg > ARGLAST_REGNUM
|| odd_sized_struct)
{
/* must go on the stack */
write_memory (sp + stack_offset, val, 4);
stack_offset += 4;
}
/* NOTE WELL!!!!! This is not an "else if" clause!!!
That's because some *&^%$ things get passed on the stack
AND in the registers! */
if (TYPE_CODE (type) == TYPE_CODE_FLT &&
flt_argreg > 0 && flt_argreg <= FLOAT_ARGLAST_REGNUM)
{
/* Argument goes in a single-precision fp reg. */
regval = extract_unsigned_integer (val, register_size (gdbarch,
argreg));
regcache_cooked_write_unsigned (regcache, flt_argreg++, regval);
}
else if (argreg <= ARGLAST_REGNUM)
{
/* there's room in a register */
regval = extract_unsigned_integer (val, register_size (gdbarch,
argreg));
regcache_cooked_write_unsigned (regcache, argreg++, regval);
}
/* Store the value 4 bytes at a time. This means that things
larger than 4 bytes may go partly in registers and partly
on the stack. */
len -= register_size (gdbarch, argreg);
val += register_size (gdbarch, argreg);
}
}
/* Store return address. */
regcache_cooked_write_unsigned (regcache, PR_REGNUM, bp_addr);
/* Update stack pointer. */
regcache_cooked_write_unsigned (regcache, SP_REGNUM, sp);
return sp;
}
static CORE_ADDR
sh_push_dummy_call_nofpu (struct gdbarch *gdbarch,
CORE_ADDR func_addr,
struct regcache *regcache,
CORE_ADDR bp_addr,
int nargs, struct value **args,
CORE_ADDR sp, int struct_return,
CORE_ADDR struct_addr)
{
int stack_offset, stack_alloc;
int argreg;
int argnum;
struct type *type;
CORE_ADDR regval;
char *val;
char valbuf[4];
int len;
int odd_sized_struct;
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
/* first force sp to a 4-byte alignment */
sp = sh_frame_align (gdbarch, sp);
/* The "struct return pointer" pseudo-argument has its own dedicated
register */
if (struct_return)
regcache_cooked_write_unsigned (regcache,
STRUCT_RETURN_REGNUM,
struct_addr);
/* Now make sure there's space on the stack */
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
for (argnum = 0, stack_alloc = 0; argnum < nargs; argnum++)
1999-07-07 20:19:36 +00:00
stack_alloc += ((TYPE_LENGTH (VALUE_TYPE (args[argnum])) + 3) & ~3);
sp -= stack_alloc; /* make room on stack for args */
/* Now load as many as possible of the first arguments into
registers, and push the rest onto the stack. There are 16 bytes
in four registers available. Loop thru args from first to last. */
argreg = ARG0_REGNUM;
for (argnum = 0, stack_offset = 0; argnum < nargs; argnum++)
{
type = VALUE_TYPE (args[argnum]);
1999-07-07 20:19:36 +00:00
len = TYPE_LENGTH (type);
memset (valbuf, 0, sizeof (valbuf));
if (len < 4)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
/* value gets right-justified in the register or stack word */
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
memcpy (valbuf + (4 - len),
(char *) VALUE_CONTENTS (args[argnum]), len);
else
memcpy (valbuf, (char *) VALUE_CONTENTS (args[argnum]), len);
1999-07-07 20:19:36 +00:00
val = valbuf;
}
else
1999-07-07 20:19:36 +00:00
val = (char *) VALUE_CONTENTS (args[argnum]);
if (len > 4 && (len & 3) != 0)
1999-07-07 20:19:36 +00:00
odd_sized_struct = 1; /* such structs go entirely on stack */
else
odd_sized_struct = 0;
while (len > 0)
{
if (argreg > ARGLAST_REGNUM
|| odd_sized_struct)
{
/* must go on the stack */
write_memory (sp + stack_offset, val, 4);
stack_offset += 4;
}
/* NOTE WELL!!!!! This is not an "else if" clause!!!
That's because some *&^%$ things get passed on the stack
AND in the registers! */
if (argreg <= ARGLAST_REGNUM)
{
/* there's room in a register */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
regval = extract_unsigned_integer (val, register_size (gdbarch,
argreg));
regcache_cooked_write_unsigned (regcache, argreg++, regval);
}
/* Store the value 4 bytes at a time. This means that things
larger than 4 bytes may go partly in registers and partly
on the stack. */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
len -= register_size (gdbarch, argreg);
val += register_size (gdbarch, argreg);
}
}
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
/* Store return address. */
regcache_cooked_write_unsigned (regcache, PR_REGNUM, bp_addr);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
/* Update stack pointer. */
regcache_cooked_write_unsigned (regcache, SP_REGNUM, sp);
return sp;
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Find a function's return value in the appropriate registers (in
regbuf), and copy it into valbuf. Extract from an array REGBUF
containing the (raw) register state a function return value of type
TYPE, and copy that, in virtual format, into VALBUF. */
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_default_extract_return_value (struct type *type, struct regcache *regcache,
void *valbuf)
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
int len = TYPE_LENGTH (type);
int return_register = R0_REGNUM;
int offset;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
if (len <= 4)
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
ULONGEST c;
regcache_cooked_read_unsigned (regcache, R0_REGNUM, &c);
store_unsigned_integer (valbuf, len, c);
}
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
else if (len == 8)
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
int i, regnum = R0_REGNUM;
for (i = 0; i < len; i += 4)
regcache_raw_read (regcache, regnum++, (char *)valbuf + i);
}
else
error ("bad size for return value");
}
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh3e_sh4_extract_return_value (struct type *type, struct regcache *regcache,
void *valbuf)
{
if (TYPE_CODE (type) == TYPE_CODE_FLT)
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
int len = TYPE_LENGTH (type);
int i, regnum = FP0_REGNUM;
for (i = 0; i < len; i += 4)
regcache_raw_read (regcache, regnum++, (char *)valbuf + i);
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
else
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_default_extract_return_value (type, regcache, valbuf);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Write into appropriate registers a function return value
of type TYPE, given in virtual format.
If the architecture is sh4 or sh3e, store a function's return value
in the R0 general register or in the FP0 floating point register,
depending on the type of the return value. In all the other cases
the result is stored in r0, left-justified. */
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_default_store_return_value (struct type *type, struct regcache *regcache,
const void *valbuf)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
ULONGEST val;
int len = TYPE_LENGTH (type);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
if (len <= 4)
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
val = extract_unsigned_integer (valbuf, len);
regcache_cooked_write_unsigned (regcache, R0_REGNUM, val);
}
else
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
{
int i, regnum = R0_REGNUM;
for (i = 0; i < len; i += 4)
regcache_raw_write (regcache, regnum++, (char *)valbuf + i);
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh3e_sh4_store_return_value (struct type *type, struct regcache *regcache,
const void *valbuf)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
if (TYPE_CODE (type) == TYPE_CODE_FLT)
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
{
int len = TYPE_LENGTH (type);
int i, regnum = FP0_REGNUM;
for (i = 0; i < len; i += 4)
regcache_raw_write (regcache, regnum++, (char *)valbuf + i);
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
else
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_default_store_return_value (type, regcache, valbuf);
}
/* Print the registers in a form similar to the E7000 */
static void
2000-07-30 01:48:28 +00:00
sh_generic_show_regs (void)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n",
paddr (read_register (PC_REGNUM)),
(long) read_register (SR_REGNUM),
(long) read_register (PR_REGNUM),
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
(long) read_register (MACH_REGNUM),
(long) read_register (MACL_REGNUM));
printf_filtered ("GBR=%08lx VBR=%08lx",
(long) read_register (GBR_REGNUM),
(long) read_register (VBR_REGNUM));
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (0),
(long) read_register (1),
(long) read_register (2),
(long) read_register (3),
(long) read_register (4),
(long) read_register (5),
(long) read_register (6),
(long) read_register (7));
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (8),
(long) read_register (9),
(long) read_register (10),
(long) read_register (11),
(long) read_register (12),
(long) read_register (13),
(long) read_register (14),
(long) read_register (15));
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static void
2000-07-30 01:48:28 +00:00
sh3_show_regs (void)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
1999-09-09 00:02:17 +00:00
printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n",
paddr (read_register (PC_REGNUM)),
(long) read_register (SR_REGNUM),
(long) read_register (PR_REGNUM),
1999-09-09 00:02:17 +00:00
(long) read_register (MACH_REGNUM),
(long) read_register (MACL_REGNUM));
printf_filtered ("GBR=%08lx VBR=%08lx",
(long) read_register (GBR_REGNUM),
(long) read_register (VBR_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered (" SSR=%08lx SPC=%08lx",
(long) read_register (tdep->SSR_REGNUM),
(long) read_register (tdep->SPC_REGNUM));
1999-09-09 00:02:17 +00:00
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (0),
(long) read_register (1),
(long) read_register (2),
(long) read_register (3),
(long) read_register (4),
(long) read_register (5),
(long) read_register (6),
(long) read_register (7));
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (8),
(long) read_register (9),
(long) read_register (10),
(long) read_register (11),
(long) read_register (12),
(long) read_register (13),
(long) read_register (14),
(long) read_register (15));
}
2003-02-03 14:38:05 +00:00
static void
sh2e_show_regs (void)
{
printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n",
paddr (read_register (PC_REGNUM)),
(long) read_register (SR_REGNUM),
(long) read_register (PR_REGNUM),
(long) read_register (MACH_REGNUM),
(long) read_register (MACL_REGNUM));
printf_filtered ("GBR=%08lx VBR=%08lx",
(long) read_register (GBR_REGNUM),
(long) read_register (VBR_REGNUM));
printf_filtered (" FPUL=%08lx FPSCR=%08lx",
(long) read_register (gdbarch_tdep (current_gdbarch)->FPUL_REGNUM),
(long) read_register (gdbarch_tdep (current_gdbarch)->FPSCR_REGNUM));
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (0),
(long) read_register (1),
(long) read_register (2),
(long) read_register (3),
(long) read_register (4),
(long) read_register (5),
(long) read_register (6),
(long) read_register (7));
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (8),
(long) read_register (9),
(long) read_register (10),
(long) read_register (11),
(long) read_register (12),
(long) read_register (13),
(long) read_register (14),
(long) read_register (15));
printf_filtered (("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
(long) read_register (FP0_REGNUM + 0),
(long) read_register (FP0_REGNUM + 1),
(long) read_register (FP0_REGNUM + 2),
(long) read_register (FP0_REGNUM + 3),
(long) read_register (FP0_REGNUM + 4),
(long) read_register (FP0_REGNUM + 5),
(long) read_register (FP0_REGNUM + 6),
(long) read_register (FP0_REGNUM + 7));
printf_filtered (("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
(long) read_register (FP0_REGNUM + 8),
(long) read_register (FP0_REGNUM + 9),
(long) read_register (FP0_REGNUM + 10),
(long) read_register (FP0_REGNUM + 11),
(long) read_register (FP0_REGNUM + 12),
(long) read_register (FP0_REGNUM + 13),
(long) read_register (FP0_REGNUM + 14),
(long) read_register (FP0_REGNUM + 15));
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static void
2000-07-30 01:48:28 +00:00
sh3e_show_regs (void)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n",
paddr (read_register (PC_REGNUM)),
(long) read_register (SR_REGNUM),
(long) read_register (PR_REGNUM),
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
(long) read_register (MACH_REGNUM),
(long) read_register (MACL_REGNUM));
printf_filtered ("GBR=%08lx VBR=%08lx",
(long) read_register (GBR_REGNUM),
(long) read_register (VBR_REGNUM));
printf_filtered (" SSR=%08lx SPC=%08lx",
(long) read_register (tdep->SSR_REGNUM),
(long) read_register (tdep->SPC_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered (" FPUL=%08lx FPSCR=%08lx",
(long) read_register (tdep->FPUL_REGNUM),
(long) read_register (tdep->FPSCR_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (0),
(long) read_register (1),
(long) read_register (2),
(long) read_register (3),
(long) read_register (4),
(long) read_register (5),
(long) read_register (6),
(long) read_register (7));
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (8),
(long) read_register (9),
(long) read_register (10),
(long) read_register (11),
(long) read_register (12),
(long) read_register (13),
(long) read_register (14),
(long) read_register (15));
printf_filtered (("FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
(long) read_register (FP0_REGNUM + 0),
(long) read_register (FP0_REGNUM + 1),
(long) read_register (FP0_REGNUM + 2),
(long) read_register (FP0_REGNUM + 3),
(long) read_register (FP0_REGNUM + 4),
(long) read_register (FP0_REGNUM + 5),
(long) read_register (FP0_REGNUM + 6),
(long) read_register (FP0_REGNUM + 7));
printf_filtered (("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
(long) read_register (FP0_REGNUM + 8),
(long) read_register (FP0_REGNUM + 9),
(long) read_register (FP0_REGNUM + 10),
(long) read_register (FP0_REGNUM + 11),
(long) read_register (FP0_REGNUM + 12),
(long) read_register (FP0_REGNUM + 13),
(long) read_register (FP0_REGNUM + 14),
(long) read_register (FP0_REGNUM + 15));
}
static void
2000-07-30 01:48:28 +00:00
sh3_dsp_show_regs (void)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n",
paddr (read_register (PC_REGNUM)),
(long) read_register (SR_REGNUM),
(long) read_register (PR_REGNUM),
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
(long) read_register (MACH_REGNUM),
(long) read_register (MACL_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("GBR=%08lx VBR=%08lx",
(long) read_register (GBR_REGNUM),
(long) read_register (VBR_REGNUM));
printf_filtered (" SSR=%08lx SPC=%08lx",
(long) read_register (tdep->SSR_REGNUM),
(long) read_register (tdep->SPC_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered (" DSR=%08lx",
(long) read_register (tdep->DSR_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (0),
(long) read_register (1),
(long) read_register (2),
(long) read_register (3),
(long) read_register (4),
(long) read_register (5),
(long) read_register (6),
(long) read_register (7));
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (8),
(long) read_register (9),
(long) read_register (10),
(long) read_register (11),
(long) read_register (12),
(long) read_register (13),
(long) read_register (14),
(long) read_register (15));
printf_filtered ("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n",
(long) read_register (tdep->A0G_REGNUM) & 0xff,
(long) read_register (tdep->A0_REGNUM),
(long) read_register (tdep->M0_REGNUM),
(long) read_register (tdep->X0_REGNUM),
(long) read_register (tdep->Y0_REGNUM),
(long) read_register (tdep->RS_REGNUM),
(long) read_register (tdep->MOD_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n",
(long) read_register (tdep->A1G_REGNUM) & 0xff,
(long) read_register (tdep->A1_REGNUM),
(long) read_register (tdep->M1_REGNUM),
(long) read_register (tdep->X1_REGNUM),
(long) read_register (tdep->Y1_REGNUM),
(long) read_register (tdep->RE_REGNUM));
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static void
2000-07-30 01:48:28 +00:00
sh4_show_regs (void)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
int pr = read_register (tdep->FPSCR_REGNUM) & 0x80000;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n",
paddr (read_register (PC_REGNUM)),
(long) read_register (SR_REGNUM),
(long) read_register (PR_REGNUM),
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
(long) read_register (MACH_REGNUM),
(long) read_register (MACL_REGNUM));
printf_filtered ("GBR=%08lx VBR=%08lx",
(long) read_register (GBR_REGNUM),
(long) read_register (VBR_REGNUM));
printf_filtered (" SSR=%08lx SPC=%08lx",
(long) read_register (tdep->SSR_REGNUM),
(long) read_register (tdep->SPC_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered (" FPUL=%08lx FPSCR=%08lx",
(long) read_register (tdep->FPUL_REGNUM),
(long) read_register (tdep->FPSCR_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (0),
(long) read_register (1),
(long) read_register (2),
(long) read_register (3),
(long) read_register (4),
(long) read_register (5),
(long) read_register (6),
(long) read_register (7));
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (8),
(long) read_register (9),
(long) read_register (10),
(long) read_register (11),
(long) read_register (12),
(long) read_register (13),
(long) read_register (14),
(long) read_register (15));
printf_filtered ((pr
? "DR0-DR6 %08lx%08lx %08lx%08lx %08lx%08lx %08lx%08lx\n"
: "FP0-FP7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
(long) read_register (FP0_REGNUM + 0),
(long) read_register (FP0_REGNUM + 1),
(long) read_register (FP0_REGNUM + 2),
(long) read_register (FP0_REGNUM + 3),
(long) read_register (FP0_REGNUM + 4),
(long) read_register (FP0_REGNUM + 5),
(long) read_register (FP0_REGNUM + 6),
(long) read_register (FP0_REGNUM + 7));
printf_filtered ((pr
? "DR8-DR14 %08lx%08lx %08lx%08lx %08lx%08lx %08lx%08lx\n"
: "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"),
(long) read_register (FP0_REGNUM + 8),
(long) read_register (FP0_REGNUM + 9),
(long) read_register (FP0_REGNUM + 10),
(long) read_register (FP0_REGNUM + 11),
(long) read_register (FP0_REGNUM + 12),
(long) read_register (FP0_REGNUM + 13),
(long) read_register (FP0_REGNUM + 14),
(long) read_register (FP0_REGNUM + 15));
}
static void
2000-07-30 01:48:28 +00:00
sh_dsp_show_regs (void)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n",
paddr (read_register (PC_REGNUM)),
(long) read_register (SR_REGNUM),
(long) read_register (PR_REGNUM),
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
(long) read_register (MACH_REGNUM),
(long) read_register (MACL_REGNUM));
printf_filtered ("GBR=%08lx VBR=%08lx",
(long) read_register (GBR_REGNUM),
(long) read_register (VBR_REGNUM));
printf_filtered (" DSR=%08lx",
(long) read_register (tdep->DSR_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (0),
(long) read_register (1),
(long) read_register (2),
(long) read_register (3),
(long) read_register (4),
(long) read_register (5),
(long) read_register (6),
(long) read_register (7));
printf_filtered ("R8-R15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
(long) read_register (8),
(long) read_register (9),
(long) read_register (10),
(long) read_register (11),
(long) read_register (12),
(long) read_register (13),
(long) read_register (14),
(long) read_register (15));
printf_filtered ("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n",
(long) read_register (tdep->A0G_REGNUM) & 0xff,
(long) read_register (tdep->A0_REGNUM),
(long) read_register (tdep->M0_REGNUM),
(long) read_register (tdep->X0_REGNUM),
(long) read_register (tdep->Y0_REGNUM),
(long) read_register (tdep->RS_REGNUM),
(long) read_register (tdep->MOD_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n",
(long) read_register (tdep->A1G_REGNUM) & 0xff,
(long) read_register (tdep->A1_REGNUM),
(long) read_register (tdep->M1_REGNUM),
(long) read_register (tdep->X1_REGNUM),
(long) read_register (tdep->Y1_REGNUM),
(long) read_register (tdep->RE_REGNUM));
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
}
2003-06-11 Andrew Cagney <cagney@redhat.com> * xstormy16-tdep.c (xstormy16_push_return_address): Make static. (xstormy16_save_dummy_frame_tos): Make static. (_initialize_xstormy16_tdep): Add declaration. * vax-tdep.c (_initialize_vax_tdep): Add declaration. * v850-tdep.c: Make local functions static. (_initialize_v850_tdep): Add declaration. * sparc-tdep.c: Make local functions static. (_initialize_sparc_tdep): Add declaration. * sh-tdep.c: Make local functions static. (_initialize_sh_tdep): Add declaration. * sh3-rom.c (_initialize_sh3_rom): Add declaration. * s390-tdep.c: Make local functions static. (_initialize_s390_tdep): Add declaration. * dbxread.c (find_stab_function_addr): Make static. * ppc-bdm.c (_initialize_bdm_ppc): Add declaration. * ocd.c (_initialize_remote_ocd): Add declaration. * dink32-rom.c (_initialize_dink32_rom): Add declaration. * ppcbug-rom.c (_initialize_ppcbug_rom): Add declaration. * ns32k-tdep.c (_initialize_ns32k_tdep): Add declaration. * ns32knbsd-tdep.c (_initialize_ns32knbsd_tdep): Add declaration. * mips-tdep.c (_initialize_mips_tdep): Add declaration. * remote-array.c (_initialize_array): Add declaration. (_initialize_remote_monitors): Add declaration. * remote-mips.c: Make local functions static. (_initialize_remote_mips): Add declaration. * mcore-tdep.c: Make all local functions static. (_initialize_mcore_tdep): Add declaration. * dbug-rom.c (_initialize_dbug_rom): Add declaration. * abug-rom.c (_initialize_abug_rom): Add declaration. * rom68k-rom.c (_initialize_rom68k): Add declaration. * cpu32bug-rom.c (_initialize_cpu32bug_rom): Add declaration. * m68k-tdep.c (_initialize_m68k_tdep): Add declaration. * remote-est.c (_initialize_est): Add declaration. * m68hc11-tdep.c (_initialize_m68hc11_tdep): Add declaration. (m68hc11_call_dummy_address): Make static. * ia64-tdep.c: Make local functions static. (_initialize_ia64_tdep): Add declaration. * solib-legacy.c (_initialize_svr4_lm): Add declaration. * monitor.c (monitor_wait_filter): Make static. (_initialize_remote_monitors): Add declaration. * remote-hms.c (_initialize_remote_hms): Add declaration. * remote-e7000.c (fetch_regs_from_dump): Make static. (expect_n): Make static. (_initialize_remote_e7000): Add declaration. * ser-e7kpc.c: Always include "defs.h". (_initialize_ser_e7000pc): Add declaration. * h8300-tdep.c (_initialize_h8300_tdep): Add declaration. * cris-tdep.c: Make all but one function static. (_initialize_cris_tdep): Add declaration. * solib-svr4.c (_initialize_svr4_solib): Add declaration. * solib.c (update_solib_list): Make static. (_initialize_solib): Add declaration. * avr-tdep.c (avr_breakpoint_from_pc): Make static. (_initialize_avr_tdep): Add declaration. * remote-rdi.c (voiddummy): Make static. (_initialize_remote_rdi): Add declaration. * arm-tdep.c (_initialize_arm_tdep): Add declaration. * remote-rdp.c (send_rdp): Make static. (_initialize_remote_rdp): Add declaration. * alpha-tdep.c (_initialize_alpha_tdep): Add declaration.
2003-06-11 13:16:30 +00:00
static void
sh_show_regs_command (char *args, int from_tty)
{
if (sh_show_regs)
(*sh_show_regs)();
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Return the GDB type object for the "standard" data type
of data in register N. */
static struct type *
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_sh3e_register_type (struct gdbarch *gdbarch, int reg_nr)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
if ((reg_nr >= FP0_REGNUM
&& (reg_nr <= tdep->FP_LAST_REGNUM))
|| (reg_nr == tdep->FPUL_REGNUM))
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
return builtin_type_float;
else
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
return builtin_type_int;
}
static struct type *
sh_sh4_build_float_register_type (int high)
{
struct type *temp;
temp = create_range_type (NULL, builtin_type_int, 0, high);
return create_array_type (NULL, builtin_type_float, temp);
}
static struct type *
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_sh4_register_type (struct gdbarch *gdbarch, int reg_nr)
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
if ((reg_nr >= FP0_REGNUM
&& (reg_nr <= tdep->FP_LAST_REGNUM))
|| (reg_nr == tdep->FPUL_REGNUM))
return builtin_type_float;
else if (reg_nr >= tdep->DR0_REGNUM
&& reg_nr <= tdep->DR_LAST_REGNUM)
return builtin_type_double;
else if (reg_nr >= tdep->FV0_REGNUM
&& reg_nr <= tdep->FV_LAST_REGNUM)
return sh_sh4_build_float_register_type (3);
else
return builtin_type_int;
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static struct type *
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_default_register_type (struct gdbarch *gdbarch, int reg_nr)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
return builtin_type_int;
}
/* On the sh4, the DRi pseudo registers are problematic if the target
is little endian. When the user writes one of those registers, for
instance with 'ser var $dr0=1', we want the double to be stored
like this:
fr0 = 0x00 0x00 0x00 0x00 0x00 0xf0 0x3f
fr1 = 0x00 0x00 0x00 0x00 0x00 0x00 0x00
This corresponds to little endian byte order & big endian word
order. However if we let gdb write the register w/o conversion, it
will write fr0 and fr1 this way:
fr0 = 0x00 0x00 0x00 0x00 0x00 0x00 0x00
fr1 = 0x00 0x00 0x00 0x00 0x00 0xf0 0x3f
because it will consider fr0 and fr1 as a single LE stretch of memory.
To achieve what we want we must force gdb to store things in
floatformat_ieee_double_littlebyte_bigword (which is defined in
include/floatformat.h and libiberty/floatformat.c.
In case the target is big endian, there is no problem, the
raw bytes will look like:
fr0 = 0x3f 0xf0 0x00 0x00 0x00 0x00 0x00
fr1 = 0x00 0x00 0x00 0x00 0x00 0x00 0x00
The other pseudo registers (the FVs) also don't pose a problem
because they are stored as 4 individual FP elements. */
static void
sh_sh4_register_convert_to_virtual (int regnum, struct type *type,
char *from, char *to)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
if (regnum >= tdep->DR0_REGNUM
&& regnum <= tdep->DR_LAST_REGNUM)
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
{
DOUBLEST val;
floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword, from, &val);
store_typed_floating (to, type, val);
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
}
else
error ("sh_register_convert_to_virtual called with non DR register number");
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
}
static void
sh_sh4_register_convert_to_raw (struct type *type, int regnum,
const void *from, void *to)
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
if (regnum >= tdep->DR0_REGNUM
&& regnum <= tdep->DR_LAST_REGNUM)
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
DOUBLEST val = extract_typed_floating (from, type);
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
floatformat_from_doublest (&floatformat_ieee_double_littlebyte_bigword, &val, to);
}
else
error("sh_register_convert_to_raw called with non DR register number");
}
2003-06-11 Andrew Cagney <cagney@redhat.com> * xstormy16-tdep.c (xstormy16_push_return_address): Make static. (xstormy16_save_dummy_frame_tos): Make static. (_initialize_xstormy16_tdep): Add declaration. * vax-tdep.c (_initialize_vax_tdep): Add declaration. * v850-tdep.c: Make local functions static. (_initialize_v850_tdep): Add declaration. * sparc-tdep.c: Make local functions static. (_initialize_sparc_tdep): Add declaration. * sh-tdep.c: Make local functions static. (_initialize_sh_tdep): Add declaration. * sh3-rom.c (_initialize_sh3_rom): Add declaration. * s390-tdep.c: Make local functions static. (_initialize_s390_tdep): Add declaration. * dbxread.c (find_stab_function_addr): Make static. * ppc-bdm.c (_initialize_bdm_ppc): Add declaration. * ocd.c (_initialize_remote_ocd): Add declaration. * dink32-rom.c (_initialize_dink32_rom): Add declaration. * ppcbug-rom.c (_initialize_ppcbug_rom): Add declaration. * ns32k-tdep.c (_initialize_ns32k_tdep): Add declaration. * ns32knbsd-tdep.c (_initialize_ns32knbsd_tdep): Add declaration. * mips-tdep.c (_initialize_mips_tdep): Add declaration. * remote-array.c (_initialize_array): Add declaration. (_initialize_remote_monitors): Add declaration. * remote-mips.c: Make local functions static. (_initialize_remote_mips): Add declaration. * mcore-tdep.c: Make all local functions static. (_initialize_mcore_tdep): Add declaration. * dbug-rom.c (_initialize_dbug_rom): Add declaration. * abug-rom.c (_initialize_abug_rom): Add declaration. * rom68k-rom.c (_initialize_rom68k): Add declaration. * cpu32bug-rom.c (_initialize_cpu32bug_rom): Add declaration. * m68k-tdep.c (_initialize_m68k_tdep): Add declaration. * remote-est.c (_initialize_est): Add declaration. * m68hc11-tdep.c (_initialize_m68hc11_tdep): Add declaration. (m68hc11_call_dummy_address): Make static. * ia64-tdep.c: Make local functions static. (_initialize_ia64_tdep): Add declaration. * solib-legacy.c (_initialize_svr4_lm): Add declaration. * monitor.c (monitor_wait_filter): Make static. (_initialize_remote_monitors): Add declaration. * remote-hms.c (_initialize_remote_hms): Add declaration. * remote-e7000.c (fetch_regs_from_dump): Make static. (expect_n): Make static. (_initialize_remote_e7000): Add declaration. * ser-e7kpc.c: Always include "defs.h". (_initialize_ser_e7000pc): Add declaration. * h8300-tdep.c (_initialize_h8300_tdep): Add declaration. * cris-tdep.c: Make all but one function static. (_initialize_cris_tdep): Add declaration. * solib-svr4.c (_initialize_svr4_solib): Add declaration. * solib.c (update_solib_list): Make static. (_initialize_solib): Add declaration. * avr-tdep.c (avr_breakpoint_from_pc): Make static. (_initialize_avr_tdep): Add declaration. * remote-rdi.c (voiddummy): Make static. (_initialize_remote_rdi): Add declaration. * arm-tdep.c (_initialize_arm_tdep): Add declaration. * remote-rdp.c (send_rdp): Make static. (_initialize_remote_rdp): Add declaration. * alpha-tdep.c (_initialize_alpha_tdep): Add declaration.
2003-06-11 13:16:30 +00:00
static void
sh_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache,
int reg_nr, void *buffer)
{
int base_regnum, portion;
char temp_buffer[MAX_REGISTER_SIZE];
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
if (reg_nr >= tdep->DR0_REGNUM
&& reg_nr <= tdep->DR_LAST_REGNUM)
{
base_regnum = dr_reg_base_num (reg_nr);
/* Build the value in the provided buffer. */
/* Read the real regs for which this one is an alias. */
for (portion = 0; portion < 2; portion++)
regcache_raw_read (regcache, base_regnum + portion,
(temp_buffer
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
+ register_size (gdbarch, base_regnum) * portion));
/* We must pay attention to the endiannes. */
sh_sh4_register_convert_to_virtual (reg_nr,
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
gdbarch_register_type (gdbarch, reg_nr),
temp_buffer, buffer);
}
else if (reg_nr >= tdep->FV0_REGNUM
&& reg_nr <= tdep->FV_LAST_REGNUM)
{
base_regnum = fv_reg_base_num (reg_nr);
/* Read the real regs for which this one is an alias. */
for (portion = 0; portion < 4; portion++)
regcache_raw_read (regcache, base_regnum + portion,
((char *) buffer
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
+ register_size (gdbarch, base_regnum) * portion));
}
}
2003-06-11 Andrew Cagney <cagney@redhat.com> * xstormy16-tdep.c (xstormy16_push_return_address): Make static. (xstormy16_save_dummy_frame_tos): Make static. (_initialize_xstormy16_tdep): Add declaration. * vax-tdep.c (_initialize_vax_tdep): Add declaration. * v850-tdep.c: Make local functions static. (_initialize_v850_tdep): Add declaration. * sparc-tdep.c: Make local functions static. (_initialize_sparc_tdep): Add declaration. * sh-tdep.c: Make local functions static. (_initialize_sh_tdep): Add declaration. * sh3-rom.c (_initialize_sh3_rom): Add declaration. * s390-tdep.c: Make local functions static. (_initialize_s390_tdep): Add declaration. * dbxread.c (find_stab_function_addr): Make static. * ppc-bdm.c (_initialize_bdm_ppc): Add declaration. * ocd.c (_initialize_remote_ocd): Add declaration. * dink32-rom.c (_initialize_dink32_rom): Add declaration. * ppcbug-rom.c (_initialize_ppcbug_rom): Add declaration. * ns32k-tdep.c (_initialize_ns32k_tdep): Add declaration. * ns32knbsd-tdep.c (_initialize_ns32knbsd_tdep): Add declaration. * mips-tdep.c (_initialize_mips_tdep): Add declaration. * remote-array.c (_initialize_array): Add declaration. (_initialize_remote_monitors): Add declaration. * remote-mips.c: Make local functions static. (_initialize_remote_mips): Add declaration. * mcore-tdep.c: Make all local functions static. (_initialize_mcore_tdep): Add declaration. * dbug-rom.c (_initialize_dbug_rom): Add declaration. * abug-rom.c (_initialize_abug_rom): Add declaration. * rom68k-rom.c (_initialize_rom68k): Add declaration. * cpu32bug-rom.c (_initialize_cpu32bug_rom): Add declaration. * m68k-tdep.c (_initialize_m68k_tdep): Add declaration. * remote-est.c (_initialize_est): Add declaration. * m68hc11-tdep.c (_initialize_m68hc11_tdep): Add declaration. (m68hc11_call_dummy_address): Make static. * ia64-tdep.c: Make local functions static. (_initialize_ia64_tdep): Add declaration. * solib-legacy.c (_initialize_svr4_lm): Add declaration. * monitor.c (monitor_wait_filter): Make static. (_initialize_remote_monitors): Add declaration. * remote-hms.c (_initialize_remote_hms): Add declaration. * remote-e7000.c (fetch_regs_from_dump): Make static. (expect_n): Make static. (_initialize_remote_e7000): Add declaration. * ser-e7kpc.c: Always include "defs.h". (_initialize_ser_e7000pc): Add declaration. * h8300-tdep.c (_initialize_h8300_tdep): Add declaration. * cris-tdep.c: Make all but one function static. (_initialize_cris_tdep): Add declaration. * solib-svr4.c (_initialize_svr4_solib): Add declaration. * solib.c (update_solib_list): Make static. (_initialize_solib): Add declaration. * avr-tdep.c (avr_breakpoint_from_pc): Make static. (_initialize_avr_tdep): Add declaration. * remote-rdi.c (voiddummy): Make static. (_initialize_remote_rdi): Add declaration. * arm-tdep.c (_initialize_arm_tdep): Add declaration. * remote-rdp.c (send_rdp): Make static. (_initialize_remote_rdp): Add declaration. * alpha-tdep.c (_initialize_alpha_tdep): Add declaration.
2003-06-11 13:16:30 +00:00
static void
sh_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
int reg_nr, const void *buffer)
{
int base_regnum, portion;
char temp_buffer[MAX_REGISTER_SIZE];
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
if (reg_nr >= tdep->DR0_REGNUM
&& reg_nr <= tdep->DR_LAST_REGNUM)
{
base_regnum = dr_reg_base_num (reg_nr);
/* We must pay attention to the endiannes. */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_sh4_register_convert_to_raw (gdbarch_register_type (gdbarch, reg_nr), reg_nr,
buffer, temp_buffer);
/* Write the real regs for which this one is an alias. */
for (portion = 0; portion < 2; portion++)
regcache_raw_write (regcache, base_regnum + portion,
(temp_buffer
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
+ register_size (gdbarch, base_regnum) * portion));
}
else if (reg_nr >= tdep->FV0_REGNUM
&& reg_nr <= tdep->FV_LAST_REGNUM)
{
base_regnum = fv_reg_base_num (reg_nr);
/* Write the real regs for which this one is an alias. */
for (portion = 0; portion < 4; portion++)
regcache_raw_write (regcache, base_regnum + portion,
((char *) buffer
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
+ register_size (gdbarch, base_regnum) * portion));
}
}
/* Floating point vector of 4 float registers. */
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
do_fv_register_info (struct gdbarch *gdbarch, struct ui_file *file,
int fv_regnum)
{
int first_fp_reg_num = fv_reg_base_num (fv_regnum);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
fprintf_filtered (file, "fv%d\t0x%08x\t0x%08x\t0x%08x\t0x%08x\n",
fv_regnum - gdbarch_tdep (gdbarch)->FV0_REGNUM,
(int) read_register (first_fp_reg_num),
(int) read_register (first_fp_reg_num + 1),
(int) read_register (first_fp_reg_num + 2),
(int) read_register (first_fp_reg_num + 3));
}
/* Double precision registers. */
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
do_dr_register_info (struct gdbarch *gdbarch, struct ui_file *file,
int dr_regnum)
{
int first_fp_reg_num = dr_reg_base_num (dr_regnum);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
fprintf_filtered (file, "dr%d\t0x%08x%08x\n",
dr_regnum - gdbarch_tdep (gdbarch)->DR0_REGNUM,
(int) read_register (first_fp_reg_num),
(int) read_register (first_fp_reg_num + 1));
}
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_print_pseudo_register (struct gdbarch *gdbarch, struct ui_file *file,
int regnum)
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
if (regnum < NUM_REGS || regnum >= NUM_REGS + NUM_PSEUDO_REGS)
internal_error (__FILE__, __LINE__,
"Invalid pseudo register number %d\n", regnum);
else if (regnum >= tdep->DR0_REGNUM
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
&& regnum <= tdep->DR_LAST_REGNUM)
do_dr_register_info (gdbarch, file, regnum);
else if (regnum >= tdep->FV0_REGNUM
&& regnum <= tdep->FV_LAST_REGNUM)
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
do_fv_register_info (gdbarch, file, regnum);
}
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_do_fp_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum)
{ /* do values for FP (float) regs */
char *raw_buffer;
double flt; /* double extracted from raw hex data */
int inv;
int j;
/* Allocate space for the float. */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
raw_buffer = (char *) alloca (register_size (gdbarch, FP0_REGNUM));
/* Get the data in raw format. */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
if (!frame_register_read (get_selected_frame (), regnum, raw_buffer))
error ("can't read register %d (%s)", regnum, REGISTER_NAME (regnum));
/* Get the register as a number */
flt = unpack_double (builtin_type_float, raw_buffer, &inv);
/* Print the name and some spaces. */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
fputs_filtered (REGISTER_NAME (regnum), file);
print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), file);
/* Print the value. */
if (inv)
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
fprintf_filtered (file, "<invalid float>");
else
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
fprintf_filtered (file, "%-10.9g", flt);
/* Print the fp register as hex. */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
fprintf_filtered (file, "\t(raw 0x");
for (j = 0; j < register_size (gdbarch, regnum); j++)
{
2002-01-05 04:30:46 +00:00
register int idx = TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? j
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
: register_size (gdbarch, regnum) - 1 - j;
fprintf_filtered (file, "%02x", (unsigned char) raw_buffer[idx]);
}
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
fprintf_filtered (file, ")");
fprintf_filtered (file, "\n");
}
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_do_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum)
{
char raw_buffer[MAX_REGISTER_SIZE];
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
fputs_filtered (REGISTER_NAME (regnum), file);
print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), file);
/* Get the data in raw format. */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
if (!frame_register_read (get_selected_frame (), regnum, raw_buffer))
fprintf_filtered (file, "*value not available*\n");
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
val_print (gdbarch_register_type (gdbarch, regnum), raw_buffer, 0, 0,
file, 'x', 1, 0, Val_pretty_default);
fprintf_filtered (file, "\t");
val_print (gdbarch_register_type (gdbarch, regnum), raw_buffer, 0, 0,
file, 0, 1, 0, Val_pretty_default);
fprintf_filtered (file, "\n");
}
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_print_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum)
{
if (regnum < 0 || regnum >= NUM_REGS + NUM_PSEUDO_REGS)
internal_error (__FILE__, __LINE__,
"Invalid register number %d\n", regnum);
else if (regnum >= 0 && regnum < NUM_REGS)
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == TYPE_CODE_FLT)
sh_do_fp_register (gdbarch, file, regnum); /* FP regs */
else
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_do_register (gdbarch, file, regnum); /* All other regs */
}
else if (regnum < NUM_REGS + NUM_PSEUDO_REGS)
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
{
sh_print_pseudo_register (gdbarch, file, regnum);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
}
}
2003-06-11 Andrew Cagney <cagney@redhat.com> * xstormy16-tdep.c (xstormy16_push_return_address): Make static. (xstormy16_save_dummy_frame_tos): Make static. (_initialize_xstormy16_tdep): Add declaration. * vax-tdep.c (_initialize_vax_tdep): Add declaration. * v850-tdep.c: Make local functions static. (_initialize_v850_tdep): Add declaration. * sparc-tdep.c: Make local functions static. (_initialize_sparc_tdep): Add declaration. * sh-tdep.c: Make local functions static. (_initialize_sh_tdep): Add declaration. * sh3-rom.c (_initialize_sh3_rom): Add declaration. * s390-tdep.c: Make local functions static. (_initialize_s390_tdep): Add declaration. * dbxread.c (find_stab_function_addr): Make static. * ppc-bdm.c (_initialize_bdm_ppc): Add declaration. * ocd.c (_initialize_remote_ocd): Add declaration. * dink32-rom.c (_initialize_dink32_rom): Add declaration. * ppcbug-rom.c (_initialize_ppcbug_rom): Add declaration. * ns32k-tdep.c (_initialize_ns32k_tdep): Add declaration. * ns32knbsd-tdep.c (_initialize_ns32knbsd_tdep): Add declaration. * mips-tdep.c (_initialize_mips_tdep): Add declaration. * remote-array.c (_initialize_array): Add declaration. (_initialize_remote_monitors): Add declaration. * remote-mips.c: Make local functions static. (_initialize_remote_mips): Add declaration. * mcore-tdep.c: Make all local functions static. (_initialize_mcore_tdep): Add declaration. * dbug-rom.c (_initialize_dbug_rom): Add declaration. * abug-rom.c (_initialize_abug_rom): Add declaration. * rom68k-rom.c (_initialize_rom68k): Add declaration. * cpu32bug-rom.c (_initialize_cpu32bug_rom): Add declaration. * m68k-tdep.c (_initialize_m68k_tdep): Add declaration. * remote-est.c (_initialize_est): Add declaration. * m68hc11-tdep.c (_initialize_m68hc11_tdep): Add declaration. (m68hc11_call_dummy_address): Make static. * ia64-tdep.c: Make local functions static. (_initialize_ia64_tdep): Add declaration. * solib-legacy.c (_initialize_svr4_lm): Add declaration. * monitor.c (monitor_wait_filter): Make static. (_initialize_remote_monitors): Add declaration. * remote-hms.c (_initialize_remote_hms): Add declaration. * remote-e7000.c (fetch_regs_from_dump): Make static. (expect_n): Make static. (_initialize_remote_e7000): Add declaration. * ser-e7kpc.c: Always include "defs.h". (_initialize_ser_e7000pc): Add declaration. * h8300-tdep.c (_initialize_h8300_tdep): Add declaration. * cris-tdep.c: Make all but one function static. (_initialize_cris_tdep): Add declaration. * solib-svr4.c (_initialize_svr4_solib): Add declaration. * solib.c (update_solib_list): Make static. (_initialize_solib): Add declaration. * avr-tdep.c (avr_breakpoint_from_pc): Make static. (_initialize_avr_tdep): Add declaration. * remote-rdi.c (voiddummy): Make static. (_initialize_remote_rdi): Add declaration. * arm-tdep.c (_initialize_arm_tdep): Add declaration. * remote-rdp.c (send_rdp): Make static. (_initialize_remote_rdp): Add declaration. * alpha-tdep.c (_initialize_alpha_tdep): Add declaration.
2003-06-11 13:16:30 +00:00
static void
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file,
struct frame_info *frame, int regnum, int fpregs)
{
if (regnum != -1) /* do one specified register */
{
if (*(REGISTER_NAME (regnum)) == '\0')
error ("Not a valid register for the current processor type");
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_print_register (gdbarch, file, regnum);
}
else
/* do all (or most) registers */
{
regnum = 0;
while (regnum < NUM_REGS)
{
/* If the register name is empty, it is undefined for this
processor, so don't display anything. */
if (REGISTER_NAME (regnum) == NULL
|| *(REGISTER_NAME (regnum)) == '\0')
{
regnum++;
continue;
}
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == TYPE_CODE_FLT)
{
if (fpregs)
{
/* true for "INFO ALL-REGISTERS" command */
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_do_fp_register (gdbarch, file, regnum); /* FP regs */
regnum ++;
}
else
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
regnum += (gdbarch_tdep (gdbarch)->FP_LAST_REGNUM - FP0_REGNUM); /* skip FP regs */
}
else
{
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
sh_do_register (gdbarch, file, regnum); /* All other regs */
regnum++;
}
}
if (fpregs)
while (regnum < NUM_REGS + NUM_PSEUDO_REGS)
{
sh_print_pseudo_register (gdbarch, file, regnum);
regnum++;
}
}
}
#ifdef SVR4_SHARED_LIBS
/* Fetch (and possibly build) an appropriate link_map_offsets structure
for native i386 linux targets using the struct offsets defined in
link.h (but without actual reference to that file).
This makes it possible to access i386-linux shared libraries from
a gdb that was not built on an i386-linux host (for cross debugging).
*/
struct link_map_offsets *
sh_linux_svr4_fetch_link_map_offsets (void)
{
static struct link_map_offsets lmo;
static struct link_map_offsets *lmp = 0;
if (lmp == 0)
{
lmp = &lmo;
lmo.r_debug_size = 8; /* 20 not actual size but all we need */
lmo.r_map_offset = 4;
lmo.r_map_size = 4;
lmo.link_map_size = 20; /* 552 not actual size but all we need */
lmo.l_addr_offset = 0;
lmo.l_addr_size = 4;
lmo.l_name_offset = 4;
lmo.l_name_size = 4;
lmo.l_next_offset = 12;
lmo.l_next_size = 4;
lmo.l_prev_offset = 16;
lmo.l_prev_size = 4;
}
return lmp;
}
#endif /* SVR4_SHARED_LIBS */
enum
{
DSP_DSR_REGNUM = 24,
DSP_A0G_REGNUM,
DSP_A0_REGNUM,
DSP_A1G_REGNUM,
DSP_A1_REGNUM,
DSP_M0_REGNUM,
DSP_M1_REGNUM,
DSP_X0_REGNUM,
DSP_X1_REGNUM,
DSP_Y0_REGNUM,
DSP_Y1_REGNUM,
DSP_MOD_REGNUM = 40,
DSP_RS_REGNUM = 43,
DSP_RE_REGNUM,
DSP_R0_BANK_REGNUM = 51,
DSP_R7_BANK_REGNUM = DSP_R0_BANK_REGNUM + 7
};
static int
sh_dsp_register_sim_regno (int nr)
{
if (legacy_register_sim_regno (nr) < 0)
return legacy_register_sim_regno (nr);
if (nr >= DSP_DSR_REGNUM && nr <= DSP_Y1_REGNUM)
return nr - DSP_DSR_REGNUM + SIM_SH_DSR_REGNUM;
if (nr == DSP_MOD_REGNUM)
return SIM_SH_MOD_REGNUM;
if (nr == DSP_RS_REGNUM)
return SIM_SH_RS_REGNUM;
if (nr == DSP_RE_REGNUM)
return SIM_SH_RE_REGNUM;
if (nr >= DSP_R0_BANK_REGNUM && nr <= DSP_R7_BANK_REGNUM)
return nr - DSP_R0_BANK_REGNUM + SIM_SH_R0_BANK_REGNUM;
return nr;
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
static gdbarch_init_ftype sh_gdbarch_init;
static struct gdbarch *
2000-07-30 01:48:28 +00:00
sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
{
struct gdbarch *gdbarch;
struct gdbarch_tdep *tdep;
sh_show_regs = sh_generic_show_regs;
switch (info.bfd_arch_info->mach)
{
case bfd_mach_sh2e:
sh_show_regs = sh2e_show_regs;
break;
case bfd_mach_sh_dsp:
sh_show_regs = sh_dsp_show_regs;
break;
case bfd_mach_sh3:
sh_show_regs = sh3_show_regs;
break;
case bfd_mach_sh3e:
sh_show_regs = sh3e_show_regs;
break;
case bfd_mach_sh3_dsp:
sh_show_regs = sh3_dsp_show_regs;
break;
case bfd_mach_sh4:
sh_show_regs = sh4_show_regs;
break;
case bfd_mach_sh5:
sh_show_regs = sh64_show_regs;
/* SH5 is handled entirely in sh64-tdep.c */
return sh64_gdbarch_init (info, arches);
}
/* If there is already a candidate, use it. */
arches = gdbarch_list_lookup_by_info (arches, &info);
if (arches != NULL)
return arches->gdbarch;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* None found, create a new architecture from the information
provided. */
tdep = XMALLOC (struct gdbarch_tdep);
gdbarch = gdbarch_alloc (&info, tdep);
2002-12-10 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC. Change to a function with predicate. * gdbarch.h, gdbarch.c: Re-generate. * frame.c (get_prev_frame): Update. Test DEPRECATED_INIT_FRAME_PC_P. * config/sparc/tm-sparc.h (DEPRECATED_INIT_FRAME_PC): Update. * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC): Update. * config/mn10200/tm-mn10200.h (DEPRECATED_INIT_FRAME_PC): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * i386-interix-tdep.c (i386_interix_init_abi): Update. * arm-tdep.c: Update comments. * h8300-tdep.c (h8300_gdbarch_init): Explicitly set init_frame_pc. * config/m32r/tm-m32r.h (DEPRECATED_INIT_FRAME_PC): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * ns32k-tdep.c (ns32k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * d10v-tdep.c (d10v_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * config/z8k/tm-z8k.h (INIT_FRAME_PC_FIRST): Delete macro. (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC.
2002-12-11 02:26:38 +00:00
/* 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()). */
set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Initialize the register numbers that are not common to all the
variants to -1, if necessary thse will be overwritten in the case
statement below. */
tdep->FPUL_REGNUM = -1;
tdep->FPSCR_REGNUM = -1;
tdep->DSR_REGNUM = -1;
tdep->FP_LAST_REGNUM = -1;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
tdep->A0G_REGNUM = -1;
tdep->A0_REGNUM = -1;
tdep->A1G_REGNUM = -1;
tdep->A1_REGNUM = -1;
tdep->M0_REGNUM = -1;
tdep->M1_REGNUM = -1;
tdep->X0_REGNUM = -1;
tdep->X1_REGNUM = -1;
tdep->Y0_REGNUM = -1;
tdep->Y1_REGNUM = -1;
tdep->MOD_REGNUM = -1;
tdep->RS_REGNUM = -1;
tdep->RE_REGNUM = -1;
tdep->SSR_REGNUM = -1;
tdep->SPC_REGNUM = -1;
tdep->DR0_REGNUM = -1;
tdep->DR_LAST_REGNUM = -1;
tdep->FV0_REGNUM = -1;
tdep->FV_LAST_REGNUM = -1;
2002-05-10 Elena Zannoni <ezannoni@redhat.com> New support for sh64-elf (sh5) target. * configure.tgt: For sh64-elf target, default to sh-elf. * config/sh/tm-sh.h (enum sh-abi): Possible ABI's. (struct gdbarch_tdep): Add new fields for new registers and ABI info. * sh-tdep.c: Include elf-bfd.h, elf/sh.h, gdb/sim-sh.h. (NUM_PSEUDO_REGS_SH_MEDIA, NUM_PSEUDO_REGS_SH_COMPACT, MSYMBOL_IS_SPECIAL, IS_ISA32_ADDR, MAKE_ISA32_ADDR, UNMAKE_ISA32_ADDR, IS_PTABSL_R18, IS_STS_R0, IS_STS_PR, IS_MOV_TO_R15, IS_MOV_R14, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STL_R14_R15, IS_ADDIL_SP_MEDIA, IS_ADDI_SP_MEDIA, IS_ADDL_SP_FP_MEDIA, IS_ADD_SP_FP_MEDIA, IS_MOV_SP_FP_MEDIA, IS_MOV_R0, IS_MOVL_R0, IS_ADD_SP_R0, IS_MOV_R14_R0, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_NOP): New macros. (sh_sh64_register_name, sh64_elf_make_msymbol_special, pc_is_isa32, sh_sh64_breakpoint_from_pc, look_for_args_moves, sh64_skip_prologue_hard_way, sh64_use_struct_convention, gdb_print_insn_sh64, translate_insn_rn, sh64_frame_chain, sh64_get_saved_pr, fpp_reg_base_num, is_media_pseudo, sh64_get_gdb_regnum, sh64_media_reg_base_num, sh64_compact_reg_base_num, translate_rn_to_arch_reg_num, sign_extend, sh64_nofp_frame_init_saved_regs, sh64_init_extra_frame_info, sh64_get_saved_register, sh64_extract_struct_value_address, sh64_pop_frame, sh64_push_arguments, sh64_extract_return_value, sh64_store_return_value, sh64_show_media_regs, sh64_show_compact_regs, sh64_show_regs, sh_sh64_register_byte, sh_sh64_register_raw_size, sh_sh64_register_virtual_size, sh_sh64_register_virtual_type, sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw, sh64_pseudo_register_read, sh64_register_read, sh64_pseudo_register_write, sh64_register_write, do_fv_c_register_info, do_dr_c_register_info, do_r_c_register_info, do_fpp_register_info, do_cr_c_register_info, sh64_do_pseudo_register, sh_compact_do_registers_info, sh64_do_registers_info, sh_gdbarch_init): New functions.
2002-05-10 23:00:23 +00:00
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_long_long_bit (gdbarch, 8 * TARGET_CHAR_BIT);
set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_num_regs (gdbarch, SH_DEFAULT_NUM_REGS);
set_gdbarch_sp_regnum (gdbarch, 15);
2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP. (DEPRECATED_FP_REGNUM): Replace FP_REGNUM. * gdbarch.h, gdbarch.c: Re-generate. * infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM, DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID. * inferior.h (deprecated_read_fp): Rename read_fp. (generic_target_read_fp): Delete declaration. * regcache.c (generic_target_read_fp): Delete function. (deprecated_read_fp): Replace read_fp, use DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM. * d10v-tdep.c (d10v_read_fp): Delete function. (d10v_gdbarch_init): Do not set deprecated_read_fp. * sparc-tdep.c (sparc_gdbarch_init): Do not set deprecated_target_read_fp to generic_target_read_fp. * sh-tdep.c (sh_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * xstormy16-tdep.c (xstormy16_gdbarch_init): Set deprecated_fp_regnum. * x86-64-tdep.c (x86_64_init_abi): Ditto. * vax-tdep.c (vax_gdbarch_init): Ditto. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto. * x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with DEPRECATED_FP_REGNUM. (vax_push_dummy_frame, vax_pop_frame): Ditto. * std-regs.c (value_of_builtin_frame_fp_reg): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Ditto. (sparc_push_dummy_frame, sparc64_read_fp): Ditto. (sparc32_register_virtual_type): Ditto. * sh-tdep.c (sh64_frame_chain): Ditto. (sh64_get_saved_register, sh64_pop_frame): Ditto. (sh_nofp_frame_init_saved_regs): Ditto. (sh64_nofp_frame_init_saved_regs): Ditto. (sh_fp_frame_init_saved_regs): Ditto. * remote-mips.c (mips_wait, mips_fetch_registers): Ditto. * remote-e7000.c (fetch_regs_from_dump): Ditto. * procfs.c (procfs_fetch_registers): Ditto. (procfs_store_registers): Ditto. * ns32knbsd-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. (fetch_kcore_registers, clear_regs): Ditto. * ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto. (ns32k_push_dummy_frame, ns32k_pop_frame): Ditto. * nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto. * nlm/i386.c (do_status): Ditto. * mipsv4-nat.c (supply_gregset): Ditto. * mips-tdep.c: Ditto for comments. * mips-nat.c (fetch_inferior_registers): Ditto. (store_inferior_registers, fetch_core_registers): Ditto. * m68k-tdep.c (m68k_push_dummy_frame): Ditto. (m68k_pop_frame, m68k_frame_init_saved_regs): Ditto. * i386-tdep.c (i386_frame_init_saved_regs): Ditto. (i386_do_pop_frame, i386_register_type): Ditto. * hppa-tdep.c (hppa_frame_chain): Ditto. (hppa_push_dummy_frame, find_dummy_frame_regs): Ditto. (hppa_pop_frame, hppa_read_fp): Ditto. (skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto. * cris-tdep.c (cris_examine, cris_pop_frame): Ditto. * config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto. * config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto. * config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto. * config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto. * config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto. * blockframe.c: Ditto for comments. * arch-utils.h: Ditto for comments. * arch-utils.c (legacy_virtual_frame_pointer): Ditto. * alphanbsd-tdep.c (fetch_core_registers): Ditto. * alphabsd-nat.c (fetch_inferior_registers): Ditto. * alpha-tdep.h: Ditto for comments. * alpha-tdep.c (alpha_cannot_fetch_register): Ditto. (alpha_cannot_store_register): Ditto. (alpha_push_dummy_frame): Ditto. * alpha-nat.c (supply_gregset): Ditto. * config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update. * config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update. * config/sparc/tm-sparc.h: Update comment. * hppa-tdep.c (hppa_init_extra_frame_info): Use deprecated_read_fp instead of TARGET_READ_FP. (hppa_init_extra_frame_info, hppa_frame_chain): Ditto. (hppa_push_dummy_frame, hppa_read_fp): Ditto. * sparc-tdep.c (sparc_init_extra_frame_info): Use deprecated_read_fp instead of read_fp. * s390-tdep.c (s390_push_arguments): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * frame.h: Ditto in comments. * frame.c (legacy_get_prev_frame): Ditto. * dummy-frame.c (dummy_frame_this_id): Ditto. * arm-tdep.c (arm_init_extra_frame_info): Ditto. 2003-04-28 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Replace read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp, DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.
2003-04-29 01:49:49 +00:00
set_gdbarch_deprecated_fp_regnum (gdbarch, 14);
set_gdbarch_pc_regnum (gdbarch, 16);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_fp0_regnum (gdbarch, -1);
set_gdbarch_num_pseudo_regs (gdbarch, 0);
set_gdbarch_breakpoint_from_pc (gdbarch, sh_breakpoint_from_pc);
set_gdbarch_use_struct_convention (gdbarch, sh_use_struct_convention);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_print_insn (gdbarch, gdb_print_insn_sh);
set_gdbarch_register_sim_regno (gdbarch, legacy_register_sim_regno);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
set_gdbarch_skip_prologue (gdbarch, sh_skip_prologue);
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
set_gdbarch_decr_pc_after_break (gdbarch, 0);
set_gdbarch_function_start_offset (gdbarch, 0);
set_gdbarch_frame_args_skip (gdbarch, 0);
set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
set_gdbarch_deprecated_frame_chain (gdbarch, sh_frame_chain);
set_gdbarch_deprecated_get_saved_register (gdbarch, deprecated_generic_get_saved_register);
set_gdbarch_deprecated_init_extra_frame_info (gdbarch, sh_init_extra_frame_info);
set_gdbarch_deprecated_pop_frame (gdbarch, sh_pop_frame);
set_gdbarch_deprecated_frame_saved_pc (gdbarch, sh_frame_saved_pc);
set_gdbarch_deprecated_saved_pc_after_call (gdbarch, sh_saved_pc_after_call);
set_gdbarch_frame_align (gdbarch, sh_frame_align);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
switch (info.bfd_arch_info->mach)
{
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
case bfd_mach_sh:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_register_name (gdbarch, sh_sh_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_default_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename FRAME_INIT_SAVED_REGS. * gdbarch.h, gdbarch.c: Regenerate. * stack.c (frame_info): Update. * sh-tdep.c (sh_find_callers_reg, sh64_get_saved_pr): Update. (sh_init_extra_frame_info, sh64_init_extra_frame_info): Update. (sh64_get_saved_register, sh_pop_frame, sh64_pop_frame): Update. * ns32k-tdep.c (ns32k_pop_frame): Update. * mips-tdep.c (mips_pop_frame): Update. * m68hc11-tdep.c (m68hc11_pop_frame): Update. * ia64-tdep.c (ia64_frame_chain): Update. (ia64_frame_saved_pc, ia64_get_saved_register): Update. (ia64_frameless_function_invocation): Update. (ia64_init_extra_frame_info): Update. (ia64_pop_frame_regular): Update. * frame.h (struct frame_info): Update comment. (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * frame.c (frame_saved_regs_register_unwind): Update. (frame_saved_regs_register_unwind): Update. (deprecated_generic_get_saved_register): Update. * cris-tdep.c: Update comment. * config/sparc/tm-sparc.h (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * xstormy16-tdep.c (xstormy16_gdbarch_init): Update. * x86-64-tdep.c (x86_64_init_abi): Update. * vax-tdep.c (vax_gdbarch_init): Update. * v850-tdep.c (v850_gdbarch_init): Update. * sparc-tdep.c (sparc_gdbarch_init): Update. * sh-tdep.c (sh_gdbarch_init): Update. * s390-tdep.c (s390_gdbarch_init): Update. * rs6000-tdep.c (rs6000_gdbarch_init): Update. * ppc-linux-tdep.c (ppc_linux_init_abi): Update. * ns32k-tdep.c (ns32k_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * mcore-tdep.c (mcore_gdbarch_init): Update. * m68k-tdep.c (m68k_gdbarch_init): Update. * m68hc11-tdep.c (m68hc11_gdbarch_init): Update. * ia64-tdep.c (ia64_gdbarch_init): Update. * i386-tdep.c (i386_gdbarch_init): Update. * frv-tdep.c (frv_gdbarch_init): Update. * avr-tdep.c (avr_gdbarch_init): Update. * arm-tdep.c (arm_gdbarch_init): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. 2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Rename FRAME_INIT_SAVED_REGS to DEPRECATED_FRAME_INIT_SAVED_REGS.
2003-03-02 04:02:25 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
break;
case bfd_mach_sh2:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_register_name (gdbarch, sh_sh_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_default_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename FRAME_INIT_SAVED_REGS. * gdbarch.h, gdbarch.c: Regenerate. * stack.c (frame_info): Update. * sh-tdep.c (sh_find_callers_reg, sh64_get_saved_pr): Update. (sh_init_extra_frame_info, sh64_init_extra_frame_info): Update. (sh64_get_saved_register, sh_pop_frame, sh64_pop_frame): Update. * ns32k-tdep.c (ns32k_pop_frame): Update. * mips-tdep.c (mips_pop_frame): Update. * m68hc11-tdep.c (m68hc11_pop_frame): Update. * ia64-tdep.c (ia64_frame_chain): Update. (ia64_frame_saved_pc, ia64_get_saved_register): Update. (ia64_frameless_function_invocation): Update. (ia64_init_extra_frame_info): Update. (ia64_pop_frame_regular): Update. * frame.h (struct frame_info): Update comment. (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * frame.c (frame_saved_regs_register_unwind): Update. (frame_saved_regs_register_unwind): Update. (deprecated_generic_get_saved_register): Update. * cris-tdep.c: Update comment. * config/sparc/tm-sparc.h (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * xstormy16-tdep.c (xstormy16_gdbarch_init): Update. * x86-64-tdep.c (x86_64_init_abi): Update. * vax-tdep.c (vax_gdbarch_init): Update. * v850-tdep.c (v850_gdbarch_init): Update. * sparc-tdep.c (sparc_gdbarch_init): Update. * sh-tdep.c (sh_gdbarch_init): Update. * s390-tdep.c (s390_gdbarch_init): Update. * rs6000-tdep.c (rs6000_gdbarch_init): Update. * ppc-linux-tdep.c (ppc_linux_init_abi): Update. * ns32k-tdep.c (ns32k_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * mcore-tdep.c (mcore_gdbarch_init): Update. * m68k-tdep.c (m68k_gdbarch_init): Update. * m68hc11-tdep.c (m68hc11_gdbarch_init): Update. * ia64-tdep.c (ia64_gdbarch_init): Update. * i386-tdep.c (i386_gdbarch_init): Update. * frv-tdep.c (frv_gdbarch_init): Update. * avr-tdep.c (avr_gdbarch_init): Update. * arm-tdep.c (arm_gdbarch_init): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. 2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Rename FRAME_INIT_SAVED_REGS to DEPRECATED_FRAME_INIT_SAVED_REGS.
2003-03-02 04:02:25 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
break;
2003-02-03 14:38:05 +00:00
case bfd_mach_sh2e:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
/* doubles on sh2e and sh3e are actually 4 byte. */
set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_register_name (gdbarch, sh_sh2e_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_sh3e_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
2003-02-03 14:38:05 +00:00
set_gdbarch_fp0_regnum (gdbarch, 25);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value);
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
2003-02-03 14:38:05 +00:00
tdep->FPUL_REGNUM = 23;
tdep->FPSCR_REGNUM = 24;
tdep->FP_LAST_REGNUM = 40;
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
2003-02-03 14:38:05 +00:00
break;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
case bfd_mach_sh_dsp:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_register_name (gdbarch, sh_sh_dsp_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_default_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_register_sim_regno (gdbarch, sh_dsp_register_sim_regno);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
tdep->DSR_REGNUM = 24;
tdep->A0G_REGNUM = 25;
tdep->A0_REGNUM = 26;
tdep->A1G_REGNUM = 27;
tdep->A1_REGNUM = 28;
tdep->M0_REGNUM = 29;
tdep->M1_REGNUM = 30;
tdep->X0_REGNUM = 31;
tdep->X1_REGNUM = 32;
tdep->Y0_REGNUM = 33;
tdep->Y1_REGNUM = 34;
tdep->MOD_REGNUM = 40;
tdep->RS_REGNUM = 43;
tdep->RE_REGNUM = 44;
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
break;
case bfd_mach_sh3:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_register_name (gdbarch, sh_sh3_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_default_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
tdep->SSR_REGNUM = 41;
tdep->SPC_REGNUM = 42;
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
break;
case bfd_mach_sh3e:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
/* doubles on sh2e and sh3e are actually 4 byte. */
set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_register_name (gdbarch, sh_sh3e_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_sh3e_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
set_gdbarch_fp0_regnum (gdbarch, 25);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value);
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
tdep->FPUL_REGNUM = 23;
tdep->FPSCR_REGNUM = 24;
tdep->FP_LAST_REGNUM = 40;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
tdep->SSR_REGNUM = 41;
tdep->SPC_REGNUM = 42;
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_fp_frame_init_saved_regs);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
break;
case bfd_mach_sh3_dsp:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_register_name (gdbarch, sh_sh3_dsp_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_default_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_register_sim_regno (gdbarch, sh_dsp_register_sim_regno);
set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
tdep->DSR_REGNUM = 24;
tdep->A0G_REGNUM = 25;
tdep->A0_REGNUM = 26;
tdep->A1G_REGNUM = 27;
tdep->A1_REGNUM = 28;
tdep->M0_REGNUM = 29;
tdep->M1_REGNUM = 30;
tdep->X0_REGNUM = 31;
tdep->X1_REGNUM = 32;
tdep->Y0_REGNUM = 33;
tdep->Y1_REGNUM = 34;
tdep->MOD_REGNUM = 40;
tdep->RS_REGNUM = 43;
tdep->RE_REGNUM = 44;
tdep->SSR_REGNUM = 41;
tdep->SPC_REGNUM = 42;
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
break;
case bfd_mach_sh4:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_register_name (gdbarch, sh_sh4_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_sh4_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
set_gdbarch_fp0_regnum (gdbarch, 25);
set_gdbarch_num_pseudo_regs (gdbarch, 12);
set_gdbarch_pseudo_register_read (gdbarch, sh_pseudo_register_read);
set_gdbarch_pseudo_register_write (gdbarch, sh_pseudo_register_write);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value);
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu);
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
tdep->FPUL_REGNUM = 23;
tdep->FPSCR_REGNUM = 24;
tdep->FP_LAST_REGNUM = 40;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
tdep->SSR_REGNUM = 41;
tdep->SPC_REGNUM = 42;
tdep->DR0_REGNUM = 59;
tdep->DR_LAST_REGNUM = 66;
tdep->FV0_REGNUM = 67;
tdep->FV_LAST_REGNUM = 70;
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_fp_frame_init_saved_regs);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
break;
default:
* sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp should go thru sh_dsp_register_sim_regno, else the dsp regs will not get the right values. * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to deprecated_store_floating by call to store_typed_floating. (sh_sh4_register_convert_to_raw): Substitute call to deprecated_extract_floating by call to extract_typed_floating. * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e. * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to register_size and calls to REGISTER_VIRTUAL_TYPE by calls to gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch as possible. (do_pseudo_register): Remove. (sh_push_dummy_code): New function. (sh64_store_struct_return): Rename from sh_store_struct_return. Only called for sh64 now. (sh_extract_struct_value_address): Regcache'ify. (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify and accomodate new tasks. (sh64_push_return_address): Rename from sh_push_return_address. Only called for sh64 now. (sh_default_extract_return_value): Rename from sh_extract_return_value. Regcache'ify. (sh3e_sh4_extract_return_value): Regcache'ify. (sh_default_store_return_value): Ditto. (sh3e_sh4_store_return_value): Ditto. (sh_default_register_byte): Remove. (sh_sh4_register_byte): Remove. (sh_default_register_raw_size): Remove. (sh_sh4_register_raw_size): Remove. (sh_register_virtual_size): Remove. (sh_sh3e_register_virtual_type): Remove. (sh_sh3e_register_type): New function. (sh_sh4_register_virtual_type): Remove. (sh_sh4_register_type): New function. (sh_default_register_virtual_type): Remove. (sh_default_register_type): New function. (do_fv_register_info): Add parameters to accomodate call from sh_print_registers_info. (do_dr_register_info): Ditto. (sh_print_pseudo_register): Rename from sh_do_pseudo_register. Add parameters to accomodate call from sh_print_registers_info. (sh_do_fp_register): Ditto. (sh64_do_pseudo_register): Call do_dr_register_info, do_fv_register_info and sh_do_fp_register with default parameters. (sh_do_register): Add parameters to accomodate call from sh_print_registers_info. (sh_print_register): Ditto. (sh_print_registers_info): Rename from sh_do_registers_info. Add parameters to be used as gdbarch_print_registers_info implementation. Accomodate removed do_pseudo_register function pointer. (sh_compact_do_registers_info): Accomodate removed do_pseudo_register function pointer. Call sh_print_register with default parameters. (sh64_do_registers_info): Call sh_print_registers_info instead of sh_do_registers_info. (sh_gdbarch_init): Rearrange to cleanup and to allow easier detection of deprecated vs. non-deprecated functionality. Rename sh_call_dummy_words to sh64_call_dummy_words. Remove function pointer assignments by direct function calls.
2003-07-16 09:45:56 +00:00
set_gdbarch_register_name (gdbarch, sh_generic_register_name);
set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
set_gdbarch_register_type (gdbarch, sh_default_register_type);
set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbarch.sh (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename FRAME_INIT_SAVED_REGS. * gdbarch.h, gdbarch.c: Regenerate. * stack.c (frame_info): Update. * sh-tdep.c (sh_find_callers_reg, sh64_get_saved_pr): Update. (sh_init_extra_frame_info, sh64_init_extra_frame_info): Update. (sh64_get_saved_register, sh_pop_frame, sh64_pop_frame): Update. * ns32k-tdep.c (ns32k_pop_frame): Update. * mips-tdep.c (mips_pop_frame): Update. * m68hc11-tdep.c (m68hc11_pop_frame): Update. * ia64-tdep.c (ia64_frame_chain): Update. (ia64_frame_saved_pc, ia64_get_saved_register): Update. (ia64_frameless_function_invocation): Update. (ia64_init_extra_frame_info): Update. (ia64_pop_frame_regular): Update. * frame.h (struct frame_info): Update comment. (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * frame.c (frame_saved_regs_register_unwind): Update. (frame_saved_regs_register_unwind): Update. (deprecated_generic_get_saved_register): Update. * cris-tdep.c: Update comment. * config/sparc/tm-sparc.h (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro. * xstormy16-tdep.c (xstormy16_gdbarch_init): Update. * x86-64-tdep.c (x86_64_init_abi): Update. * vax-tdep.c (vax_gdbarch_init): Update. * v850-tdep.c (v850_gdbarch_init): Update. * sparc-tdep.c (sparc_gdbarch_init): Update. * sh-tdep.c (sh_gdbarch_init): Update. * s390-tdep.c (s390_gdbarch_init): Update. * rs6000-tdep.c (rs6000_gdbarch_init): Update. * ppc-linux-tdep.c (ppc_linux_init_abi): Update. * ns32k-tdep.c (ns32k_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * mcore-tdep.c (mcore_gdbarch_init): Update. * m68k-tdep.c (m68k_gdbarch_init): Update. * m68hc11-tdep.c (m68hc11_gdbarch_init): Update. * ia64-tdep.c (ia64_gdbarch_init): Update. * i386-tdep.c (i386_gdbarch_init): Update. * frv-tdep.c (frv_gdbarch_init): Update. * avr-tdep.c (avr_gdbarch_init): Update. * arm-tdep.c (arm_gdbarch_init): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. 2003-03-01 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Rename FRAME_INIT_SAVED_REGS to DEPRECATED_FRAME_INIT_SAVED_REGS.
2003-03-02 04:02:25 +00:00
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
break;
}
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
return gdbarch;
}
static void
sh_dump_tdep (struct gdbarch *current_gdbarch, struct ui_file *file)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
if (tdep == NULL)
return;
/* FIXME: dump the rest of gdbarch_tdep. */
}
2003-06-11 Andrew Cagney <cagney@redhat.com> * xstormy16-tdep.c (xstormy16_push_return_address): Make static. (xstormy16_save_dummy_frame_tos): Make static. (_initialize_xstormy16_tdep): Add declaration. * vax-tdep.c (_initialize_vax_tdep): Add declaration. * v850-tdep.c: Make local functions static. (_initialize_v850_tdep): Add declaration. * sparc-tdep.c: Make local functions static. (_initialize_sparc_tdep): Add declaration. * sh-tdep.c: Make local functions static. (_initialize_sh_tdep): Add declaration. * sh3-rom.c (_initialize_sh3_rom): Add declaration. * s390-tdep.c: Make local functions static. (_initialize_s390_tdep): Add declaration. * dbxread.c (find_stab_function_addr): Make static. * ppc-bdm.c (_initialize_bdm_ppc): Add declaration. * ocd.c (_initialize_remote_ocd): Add declaration. * dink32-rom.c (_initialize_dink32_rom): Add declaration. * ppcbug-rom.c (_initialize_ppcbug_rom): Add declaration. * ns32k-tdep.c (_initialize_ns32k_tdep): Add declaration. * ns32knbsd-tdep.c (_initialize_ns32knbsd_tdep): Add declaration. * mips-tdep.c (_initialize_mips_tdep): Add declaration. * remote-array.c (_initialize_array): Add declaration. (_initialize_remote_monitors): Add declaration. * remote-mips.c: Make local functions static. (_initialize_remote_mips): Add declaration. * mcore-tdep.c: Make all local functions static. (_initialize_mcore_tdep): Add declaration. * dbug-rom.c (_initialize_dbug_rom): Add declaration. * abug-rom.c (_initialize_abug_rom): Add declaration. * rom68k-rom.c (_initialize_rom68k): Add declaration. * cpu32bug-rom.c (_initialize_cpu32bug_rom): Add declaration. * m68k-tdep.c (_initialize_m68k_tdep): Add declaration. * remote-est.c (_initialize_est): Add declaration. * m68hc11-tdep.c (_initialize_m68hc11_tdep): Add declaration. (m68hc11_call_dummy_address): Make static. * ia64-tdep.c: Make local functions static. (_initialize_ia64_tdep): Add declaration. * solib-legacy.c (_initialize_svr4_lm): Add declaration. * monitor.c (monitor_wait_filter): Make static. (_initialize_remote_monitors): Add declaration. * remote-hms.c (_initialize_remote_hms): Add declaration. * remote-e7000.c (fetch_regs_from_dump): Make static. (expect_n): Make static. (_initialize_remote_e7000): Add declaration. * ser-e7kpc.c: Always include "defs.h". (_initialize_ser_e7000pc): Add declaration. * h8300-tdep.c (_initialize_h8300_tdep): Add declaration. * cris-tdep.c: Make all but one function static. (_initialize_cris_tdep): Add declaration. * solib-svr4.c (_initialize_svr4_solib): Add declaration. * solib.c (update_solib_list): Make static. (_initialize_solib): Add declaration. * avr-tdep.c (avr_breakpoint_from_pc): Make static. (_initialize_avr_tdep): Add declaration. * remote-rdi.c (voiddummy): Make static. (_initialize_remote_rdi): Add declaration. * arm-tdep.c (_initialize_arm_tdep): Add declaration. * remote-rdp.c (send_rdp): Make static. (_initialize_remote_rdp): Add declaration. * alpha-tdep.c (_initialize_alpha_tdep): Add declaration.
2003-06-11 13:16:30 +00:00
extern initialize_file_ftype _initialize_sh_tdep; /* -Wmissing-prototypes */
void
2000-07-30 01:48:28 +00:00
_initialize_sh_tdep (void)
{
struct cmd_list_element *c;
2000-07-19 Elena Zannoni <ezannoni@kwikemart.cygnus.com> Multiarch the sh target. * sh-tdep.c: (sh_generic_reg_names, sh_reg_names,sh3_reg_names, sh3e_reg_names, sh_dsp_reg_names, sh3_dsp_reg_names, sh_processor_type_table): Remove. (XMALLOC): Define. (struct frame_extra_info): Define. (sh_register_raw_size, sh_register_virtual_size, sh_register_virtual_type, sh_register_byte, sh_breakpoint_from_pc, sh_frame_saved_pc, sh_skip_prologue, sh_nofp_frame_init_saved_regs, sh_fp_frame_init_saved_regs, sh_extract_struct_value_address, sh_use_struct_convention, sh_store_struct_return, sh_push_arguments, sh_push_return_address, sh_saved_pc_after_call, sh_generic_register_name, sh_sh_register_name, sh_sh3_register_name, sh_sh3e_register_name, sh_sh_dsp_register_name, sh_sh3_dsp_register_name, sh_frame_args_address, sh_frame_locals_address, sh_coerce_float_to_double, sh_default_store_return_value, sh3e_sh4_store_return_value, sh_generic_show_regs, sh3_show_regs,sh3e_show_regs, sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs, sh_register_byte, sh_register_raw_size, sh_register_virtual_size, sh_sh3e_register_virtual_type, sh_default_register_virtual_type, sh_gdbarch_init): New functions. (sh_target_architecture_hook, sh_frame_find_saved_regs, sh_show_regs): Delete functions. (sh_frame_chain, sh_find_callers_reg, sh_init_extra_frame_info, sh_pop_frame, sh_extract_return_value): Update * config/sh/tm-sh.h (GDB_MULTI_ARCH): Define to 1. (struct gdbarch_tdep): Define. Remove all unnecessary defines. * remote-e7000.c ({PR,GBR,SR,MACL,VBR,MACH}_REGNUM): Define to -1, for h8300 case. (want_sh,want_nopc_sh,want_nopc_sh3): Make nomenclature consistent. (e7000_fetch_registers): Remove ifdef GDB_TARGET_IS_SH, use runtime check instead. (e7000_wait): Ditto. * sh3-rom.c (sh3_supply_register): Use gdbarch_tdep to get the SSR and SPC register numbers. (sh3_regnames, sh3e_regnames): Don't specify a size. * config/h8300/tm-h8300.h: Add comment.
2000-07-19 14:11:42 +00:00
gdbarch_register (bfd_arch_sh, sh_gdbarch_init, sh_dump_tdep);
add_com ("regs", class_vars, sh_show_regs_command, "Print all registers");
}