Commit Graph

65 Commits

Author SHA1 Message Date
Jason Thorpe ab3b81262e * Makefile.in (sh_tdep_h): Define and use.
* config/sh/tm-sh.h (sh_osabi, sh_abi, gdbarch_tdep,
register enum): Move to...
* * sh-tdep.h: ...here.
* sh-tdep.c: Include sh-tdep.h.
* sh3-rom.c: Likewise.
* shnbsd-tdep.c: Likewise.
2002-05-17 06:55:49 +00:00
Elena Zannoni 283150cd19 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
Jason Thorpe d658f92455 * sh-tdep.c (sh_osabi_names): Declare.
(process_note_abi_tag_sections): New function.
(get_elfosabi): Ditto.
(sh_gdbarch_register_os_abi): Ditto.
(sh_dump_tdep): Ditto.
_initialize_sh_tdep): Use gdbarch_register to register
sh_gdbarch_init and sh_dump_tdep.
* config/sh/tm-sh.h (sh_osabi): Declare.
(gdbarch_tdep): Add sh_osabi and osabi_name members.
2002-05-08 14:54:03 +00:00
Elena Zannoni 3bbfbb92b3 2001-07-11 Elena Zannoni <ezannoni@redhat.com>
* config/sh/tm-sh.h (struct gdbarch_tdep): Add
	FLOAT_ARGLAST_REGNUM, RETURN_REGNUM, ARG0_REGNUM, ARGLAST_REGNUM,
	PR_REGNUM fields.

	* sh-tdep.c (sh_skip_prologue_hard_way): Rename from
	skip_prologue_hard_way().
	(skip_prologue_hard_way): Make it a function pointer.
        (sh_print_register): Use function pointer do_pseudo_register,
	instead of sh_do_pseudo_register.
        (sh_do_registers_info): Ditto.
        (sh_gdbarch_init): Initialize do_pseudo_register.
	(IS_MOV_TO_R14): Rename from IS_MOV_R14.
	(skip_prologue_hard_way): Update.
	(sh_gdbarch_init): Move setting of frame_chain,
	get_saved_register, init_extra_frame_info, push_arguments,
	extract_return_value, pop_frame, store_struct_return,
	extract_struct_value_address, use_struct_convention,
	init_extra_frame_info to before target specific settings.
	(sh_gdbarch_init): Initialize new tdep fields
	FLOAT_ARGLAST_REGNUM, RETURN_REGNUM, ARG0_REGNUM, ARGLAST_REGNUM,
	PR_REGNUM.
	(sh_push_arguments): Use new gdbarch_tdep fields
	{ARG0,ARGLAST}_REGNUM.
	(sh_saved_pc_after_call, sh_nofp_frame_init_saved_regs,
	sh_init_extra_frame_info, sh_push_return_address,
	sh_generic_show_regs, sh3_show_regs, sh3e_show_regs,
	sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs): Update to use
	gdbarch_tdep->PR_REGNUM.
	(dr_reg_base_num, fv_reg_base_num): Move to earlier in the file.
2001-07-12 02:29:33 +00:00
Kevin Buettner b6ba6518e9 Update/correct copyright notices. 2001-03-06 08:22:02 +00:00
Elena Zannoni c5f7d19c5a 2000-12-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* sh-tdep.c (sh_gdbarch_init): Initialize do_registers_info.

        * config/sh/tm-sh.h (DO_REGISTERS_INFO): Remove macro. Use
        multiarch version instead.
2000-12-18 04:36:35 +00:00
Elena Zannoni c6c1f1914d 2000-12-15 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* config/sh/tm-sh.h: Don't remove SR_REGNUM from enum.
2000-12-18 04:15:18 +00:00
Elena Zannoni c62a7c7ba7 2000-12-15 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* sh-tdep.c (sh_generic_show_regs, sh3_show_regs, sh3e_show_regs,
 	sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs): SR_REGNUM is
 	now part of gdbarch_tdep structure.
	(sh_gdbarch_init): Initialize SR_REGNUM.

	* config/sh/tm-sh.h (struct gdbarch_tdep): Add field SR_REGNUM.
2000-12-15 21:44:35 +00:00
Elena Zannoni e6c42fda06 2000-12-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* config/sh/tm-sh.h (struct gdbarch_tdep): Rename fields
        {FP15,DR14,FV12}_REGNUM to {FP,DR,FV}_LAST_REGNUM.
	* sh-tdep.c (sh_sh3e_register_virtual_type,
 	sh_sh4_register_virtual_type, sh_do_registers_info,
 	sh_gdbarch_init, sh_sh4_register_byte, sh_sh4_register_raw_size,
 	sh_sh4_register_convertible, sh_sh4_register_convert_to_virtual,
 	sh_sh4_register_convert_to_raw, sh_fetch_pseudo_register,
 	sh_store_pseudo_register, sh_do_pseudo_register): Ditto.

	* sh-tdep.c (sh_gdbarch_init): Use a function pointer to set the
        disassembly print function.
	(_initialize_sh_tdep): Initialize tm_print_insn using the function
 	pointer.
2000-12-07 16:40:44 +00:00
Elena Zannoni c2ab3f09a1 2000-12-05 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* config/sh/tm-sh.h (struct gdbarch_tdep): Get rid of
        DR{2,4,6,8,10,12}_REGNUM, FV{4,8}_REGNUM, they are not used
        anywhere.
        * sh-tdep.c (sh_gdbarch_init): Don't initialize
        DR{2,4,6,8,10,12}_REGNUM, FV{4,8}_REGNUM.
2000-12-05 17:50:28 +00:00
Elena Zannoni fe9f384f16 2000-07-26 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* sh-tdep.c (sh_sh4_register_name, sh_sh4_register_byte,
 	sh_sh4_register_raw_size, sh_sh4_register_virtual_type,
 	sh_fetch_pseudo_register, sh_store_pseudo_register,
 	sh_do_pseudo_register, sh_gdbarch_init): Fix names for pseudoregs,
 	they should be numbered as drx fvy where x and y are multiples of
 	2 and 4 respectively.

	* config/sh/tm-sh.h: Fix names of pseudo regs.
2000-07-26 23:04:44 +00:00
Elena Zannoni 53116e27b6 2000-07-24 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* config/sh/tm-sh.h (struct gdbarch_tdep): Add sh4 specific
 	pseudo registers.
	(DO_REGISTERS_INFO): Define.

	* sh-tdep.c (sh_sh4_register_name): New function.
	(sh_generic_show_regs, sh3_show_regs, sh3e_show_regs,
 	sh3_dsp_show_regs, sh4_show_regs, sh_dsp_show_regs): Update
 	signature.
	(sh_show_regs_command): New function. Actual function called by
 	the 'regs' command.
	(sh_register_byte): Rename to...
	(sh_default_register_byte): ...New function.
	(sh_sh4_register_byte): New function.
	(sh_register_raw_size): Rename to...
	(sh_default_register_raw_size): ...New function.
	(sh_sh4_register_raw_size): New function.
	(sh_sh4_register_virtual_type): New function.
	(sh_sh4_build_float_register_type): New function.
	(sh_fetch_pseudo_register, sh_store_pseudo_register): New
 	functions.
	(fv_reg_base_num, dr_reg_base_num): New functions.
	(do_fv_register_info, do_dr_register_info, sh_do_pseudo_register,
 	sh_do_fp_register, sh_do_register, sh_print_register,
 	sh_do_registers_info): New functions.
	(sh_gdbarch_init): Initialize sh4 pseudo registers to -1. Update
 	architecture specific parts.
	(_initialize_sh_tdep): Use sh_show_regs_command for 'regs' command.
2000-07-24 20:39:21 +00:00
Elena Zannoni cc17453a58 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
Elena Zannoni 8db62801bd 2000-07-10 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* config/sh/tm-sh.h (STORE_RETURN_VALUE): Redefine as
 	sh_store_return_value().
	* sh-tdep.c (sh_store_return_value): New function. Store the
 	value returned by a function into the appropriate register.

2000-07-10  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

        * sh-tdep.c (sh_skip_prologue): Before looking at the actual
 	instructions, try to see if the symbol table can be of help, by
 	calling after_prologue(). If this doesn't work, call
 	skip_prologue_hard_way().
	(skip_prologue_hard_way): Renamed from sh_skip_prologue. Add some
 	more instruction pattern matching for pushing of arguments, and
 	manipulation of r14.
	(after_prologue): New function. Use symbol table info to determine
 	the end of the prologue, if possible.
2000-07-10 14:43:37 +00:00
Kevin Buettner a14ed312fd PARAMS removal. 2000-05-28 01:12:42 +00:00
Joern Rennecke 63978407cb 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
Jim Blandy 7355ddbace Bring IEEE_FLOAT under gdbarch's control.
* gdbarch.sh (IEEE_FLOAT): New entry.
* gdbarch.c, gdbarch.h: Regenerated.
* valprint.c (IEEE_FLOAT): Provide a default #definition for this.
(print_floating): Use IEEE_FLOAT as if it were an expression; use
the code specific to IEEE-format numbers whenever the value of
IEEE_FLOAT is non-zero.
* config/a29k/tm-a29k.h, config/alpha/tm-alpha.h,
config/arc/tm-arc.h, config/arm/tm-arm.h, config/fr30/tm-fr30.h,
config/h8300/tm-h8300.h, config/i386/tm-i386.h,
config/i960/tm-i960.h, config/m88k/tm-m88k.h,
config/mips/tm-mips.h, config/pa/tm-hppa.h,
config/sparc/tm-sparc.h, config/delta/tm-delta.h,
config/frv/tm-frv.h (IEEE_FLOAT): For all ports that #define
IEEE_FLOAT, make sure they give it the value (1).
2000-04-14 19:14:19 +00:00
Jim Blandy b9a8e3bfd4 Bring COERCE_FLOAT_TO_DOUBLE under gdbarch's control.
* valops.c (COERCE_FLOAT_TO_DOUBLE): Rework definition to be
more function-like.
(default_coerce_float_to_double, standard_coerce_float_to_double):
New functions.
(value_arg_coerce): Adjust for new definition.
* value.h (default_coerce_float_to_double,
standard_coerce_float_to_double): New declarations for the above.
* gdbarch.sh (coerce_float_to_double): New entry, replacing macro.
* gdbarch.c, gdbarch.h: Regenerated.
* tm-alpha.h, tm-fr30.h, tm-m32r.h, tm-mips.h, tm-hppa.h,
tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change
definitions.
* mips-tdep.c (mips_coerce_float_to_double): Supply our own custom
function here.
(mips_gdbarch_init): Install that as our coerce_float_to_double
function.
2000-02-22 19:18:53 +00:00
Jason Molenda c4093a6ab3 import gdb-1999-12-13 snapshot 1999-12-14 01:06:04 +00:00
Jason Molenda 104c1213b4 import gdb-1999-08-30 snapshot 1999-08-31 01:14:27 +00:00
Jason Molenda c5aa993b1f import gdb-1999-07-07 post reformat 1999-07-07 20:19:36 +00:00
Jason Molenda ac9a91a77c import gdb-1999-06-01 snapshot 1999-06-01 15:44:41 +00:00
Jason Molenda 392a587b05 import gdb-1999-05-25 snapshot 1999-05-25 18:09:09 +00:00
Stan Shebs b83266a0e1 import gdb-19990504 snapshot 1999-05-05 14:45:51 +00:00
Stan Shebs 7a292a7adf import gdb-19990422 snapshot 1999-04-26 18:34:20 +00:00
Stan Shebs c906108c21 Initial creation of sourceware repository 1999-04-16 01:35:26 +00:00
Stan Shebs 071ea11e85 Initial creation of sourceware repository 1999-04-16 01:34:07 +00:00
Mark Alexander 1730ec6b18 * config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
coffread.c will correctly handle char or short function parameters.
1999-02-15 02:23:56 +00:00
Andrew Cagney 9ddf9aa9be CARP:
Rename REGISTER_NAMES{} -> REGISTER_NAME().
1998-12-10 06:10:03 +00:00
Andrew Cagney 3a0c96a996 CARP:
Rewrite INNER_THAN so that it takes parameters.
1998-11-28 22:53:04 +00:00
Andrew Cagney 679ce73102 CARP: Delete ABOUT_TO_RETURN across all targets. 1998-11-26 11:13:01 +00:00
Andrew Cagney 98760eab33 CARP: Convert macro definitions of USE_STRUCT_CONVENTION into target
specific functions.
1998-11-23 12:35:23 +00:00
Andrew Cagney d0aba53f38 New commands ``set architecture'', ``show architecture'' and ``info
architecture''.  Update SH target to use new target_architecture_hook.
1997-08-28 10:20:21 +00:00
Fred Fish b25b1c62b0 Minor formatting change (whitespace only). 1997-06-21 03:42:10 +00:00
Fred Fish cf2b165ede * sh-tdep.c (symfile.h): Include.
(gdb_string.h): Include.
	(sh_fix_call_dummy): Ifdef away, currently unused.
	* config/sh/tm-sh.h (pop_frame): Add prototype.
	* config/sh/tm-sh.h (sh_set_processor_type): Add prototype.
1997-06-13 15:22:08 +00:00
Keith Seitz 1e6479d4d7 Modified Files:
ChangeLog sh-tdep.c config/sh/tm-sh.h
        * config/sh/tm-sh.h: add define for FPSCR_REGNUM
        * sh-tdep.c (sh_show_regs): print out all registers for
        the current processor
1997-06-06 21:47:12 +00:00
Stu Grossman 4ce7ba5188 * Makefile.in (SUBDIRS): Add mswin so that make cleanup cleans up
that directory.
	* defs.h utils.c (error warning):  Make message be const.
	* main.c (fputs_unfiltered):  Only send gdb_stdout and gdb_stderr
	to hook.  Otherwise send it to fputs.
	* monitor.c monitor.h (monitor_get_dev_name):  New function.  Does
	the obvious.
	* remote-e7000.c:  Remove debugify stuff.  Change printf, fprintf
	to _filtered forms to make output appear in GUIs.  Replace all
	uses of SERIAL_READCHAR with readchar, which has better error
	checking.
	* (e7000_parse_device):  Add prototype.
	* (readchar):  Improve doc.  Handle random serial errors.
	* (expect):  Disable notice_quit code.  It's busted.  Remove
	serial error handling (it's now handled in readchar).  Remove
	remote_debug echoing.  That's handled in readchar as well.
	* (e7000_parse_device):  Remove serial_flag arg.  It's not
	necessary.
	* (e7000_open):  Split into two pieces.  Second part is
	e7000_start_remote, and is error protected.  Now, when we connect
	to the target, we setup the initial frame and registers so that
	the user gets an immediate indication of where the target is.
	* (gch):  Remove debug output.  That's handled by readchar.
	* (e7000_read_inferior_memory):  Handle errors better.
	* (_initialize_remote_e7000):  Get rid of `<xxx>' things from
	command names.  They show up when doing completion and confuse
	things horribly.
	* ser-e7kpc.c:  Remove the last seven months of brain damage.  Get
	rid of the DLL's since we can access the device directly from Win32s
	and Win95.  Get rid of debugify crud.
	* serial.c:  Remove debugify cruft.
	* (serial_logchar serial_log_command serial_write serial_readchar
	serial_send_break serial_close):  Merge common functionality into
	serial_logchar.  Clean up rest of routines.
	* sparclet-rom.c:  Disembowel.  Leave only download routine.
	Download routine now switches to remote target automatically.
	* top.c (disconnect):  Only define if SIGHUP is defined.  Cleans
	up MSVC/Win32 problem.
	* utils.c (gdb_flush):  Don't call hook unless it's for gdb_stdout
	or gdb_stderr.
	* config/sh/tm-sh.h:  Define TARGET_SH for WinGDB.
	* config/sparc/tm-sparclet.h:  Remove override for prompt.
1997-04-19 01:42:34 +00:00
Michael Snyder e47d1a4e35 Tue Dec 3 11:38:14 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* blockframe.c: add macro USE_GENERIC_DUMMY_FRAMES to enable/disable
          code for generic call_dummy frames.
        * config/h8300/tm-h8300.h: turn on USE_GENERIC_DUMMY_FRAMES
        * config/m32r/tm-m32r.h: turn on USE_GENERIC_DUMMY_FRAMES
        * config/sh/tm-sh.h: turn on USE_GENERIC_DUMMY_FRAMES
        * config/v850/tm-v850.h: turn on USE_GENERIC_DUMMY_FRAMES
1996-12-03 19:44:51 +00:00
Michael Snyder 409f64ae05 Wed Nov 27 11:29:06 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* blockframe.c:         ...Remove old-style CALL_DUMMY code...
        * h8300-tdep.c:
        * config/h8300/tm-h8300.h:
start-sanitize-m32r
        * m32r-tdep.c:
        * config/m32r/tm-m32r.h:
end-sanitize-m32r
        * sh-tdep.c:
        * config/sh/tm-sh.h:
start-sanitize-v850
        * v850-tdep.c:
        * config/v850/tm-v850.h:
end-sanitize-v850
1996-11-27 19:31:26 +00:00
Michael Snyder dc1b349d39 Added target function calls for SH, M32R and H8300.
Added some generic target-independant code for managing call-dummy frames.

Wed Nov 27 10:32:14 1996  Michael Snyder  <msnyder@cleaver.cygnus.com>

        * breakpoint.c: DELETE command will not delete CALL_DUMMY breakpoint.
        * blockframe.c: Add target-independant support for managing
                        CALL_DUMMY frames on the host side.
        * frame.h:      Declarations for generic CALL_DUMMY frame support.
        * h8300-tdep.c: Add target function calls using generic frame support.
        * config/h8300/tm-h8300.h: config for generic target function calls.
start-sanitize-m32r
        * m32r-tdep.c:  Add target function calls using generic frame support.
        * config/m32r/tm-m32r.h:   config for generic target function calls.
end-sanitize-m32r
        * sh-tdep.c:    Add target function calls using generic frame support.
        * config/sh/tm-sh.h:       config for generic target function calls.
start-sanitize-v850
        * v850-tdep.c:  Add target function calls using generic frame support.
        * config/v850/tm-v850.h:   config for generic target function calls.
end-sanitize-v850
        * valops.c:     ADD PUSH_RETURN_ADDRESS so that it doesn't have to be
                        done by PUSH_ARGUMENTS when there's no CALL_DUMMY.
1996-11-27 19:10:07 +00:00
Michael Snyder 69992fc816 Tue Nov 12 12:16:40 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* sh-tdep.c: Add functionality for target function calls.
        * config/sh/tm-sh.h: Add support for target function calls.
This is a safety check-in: everything works, and there'll be another
clean-up round shortly.
1996-11-12 20:19:17 +00:00
Michael Snyder 4dc42997c3 Fri Nov 8 14:30:23 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* config/tm-sh.h: Added a missing comma in middle of REGISTER_NAMES list.
1996-11-08 22:31:36 +00:00
Stan Shebs 12ffa10c1d * config/sh/tm-sh.h (REGISTER_NAMES): Move fp registers to
be consistent with GCC.
	(FPUL_REGNUM, etc): Renumber to match list changes.
	(ADDR_BITS_REMOVE): Delete.
	* sh-tdep.c (sh_reg_names, sh3_reg_names, sh3e_reg_names):
	Rearrange to match REGISTER_NAMES.
	* sh3-rom.c (sh3_regnames, sh3e_regnames): Ditto.
PR 9457
1996-09-20 23:20:58 +00:00
Stan Shebs 05535e79e9 SH3-E support from Allan Tajii <atajii@hmsi.com>:
* sh-tdep.c (sh_reg_names, sh3_reg_names): Add empty names for
	float registers.
	(sh3e_reg_names): New register name array.
	(sh_processor_type_table): Add sh3e processor type.
	* config/sh/tm-sh.h (REGISTER_VIRTUAL_TYPE): Fix test.
	(REGISTER_NAMES, NUM_REGS, NUM_REALREGS, etc): Adjust for
	full set of registers.
	* remote-e7000.c (want_sh3, want_sh3_nopc): New globals.
	(e7000_fetch_registers, e7000_wait): Use them.
	* sh3-rom.c (sh3_regnames): Add float registers.
	(sh3e_cmds, sh3e_ops): New globals.
	(sh3e_open): New function.
	(_initialize_sh3_rom): Rename from _initialize_sh3, set up
	sh3e target vector.

	* gdbwin.c (reg_order) [TARGET_SH]: Update for SH3-E.
	* initfake.c: Call _initialize_sh3_rom instead of _initialize_sh3.
1996-05-13 18:34:09 +00:00
Stan Shebs fea17b5545 Support for bi-endian remote breakpoints.
* remote.c (big_break_insn, little_break_insn): New globals.
	(break_insn): Remove.
	(remote_insert_breakpoint, remote_remove_breakpoint): Use own
	code if REMOTE_BREAKPOINT defined, otherwise call memory
	breakpoint functions.
	* config/sh/tm-sh.h (REMOTE_BREAKPOINT): Remove.
	(BIG_REMOTE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT): Define.
1996-04-28 23:43:05 +00:00
Stan Shebs 00dd4fd9ad * infcmd.c (do_registers_info): Ignore anonymous registers.
* sh-tdep.c (set processor): New command to set specific
	processor type.
	(sh_reg_names, sh3_reg_names): Arrays of register names for
	SH and SH3 processors.
	(sh_set_processor_type): New function.
	* sh3-rom.c (sh3_open): Call it.
	(sh3_regname): Add names of all the bank registers.
	(sh3_supply_register): Clean up formatting.
	* config/sh/tm-sh.h (NUM_REGS, NUM_REALREGS): Increase to include
 	bank registers.
	(REGISTER_NAMES): Add names of bank registers.
	(FP15_REGNUM): Define.
	(REGISTER_VIRTUAL_TYPE): Use it.
	* monitor.c: Clean up some comments.
1996-03-08 02:04:19 +00:00
Jim Wilson 48573afd23 Remove SH3e sanitization. 1996-01-16 20:13:27 +00:00
Stu Grossman ee824ca663 * monitor.c (monitor_load_srec monitor_make_srec): Move all
S-record download code into srec.c.
	* srec.c srec.h:  New files.  Contain S-record loading routines
	formerly in monitor.c.
	* serial.c serial.h:  New routine just like fprintf, but uses
	serial_t instead of FILE *.
	* sh-tdep.c (frame_find_saved_regs init_extra_frame_info):
	Don't add four to saved pc (makes things match manual).  Also, fix
	bug where we didn't get pc from stack frame correctly.
	* config/sh/tm-sh.h (SAVED_PC_AFTER_CALL):  Don't add four to
	saved pc.  Real hardware does this for you.
	* sh3-rom.c (sh3_load):  New routine.  Sets up for download then
	calls generic S-record loader.
	* config/h8300/h8300.mt, config/h8500/h8500.mt,
	config/m68k/monitor.mt, config/pa/hppapro.mt, config/sh/sh.mt:
	Add srec.o to TDEPFILES.
1995-11-14 23:40:18 +00:00
Jim Wilson a862098505 Hitachi SH3e, patch to make FP registers debuggable. 1995-10-19 23:29:59 +00:00
Stu Grossman 1480482acb * Makefile.in sh3-rom.c config/sh/sh.mt config/sh/tm-sh.h: Add
sh3 monitor support.
	* monitor.c:  Cleanup regexp compilation stuff to make it easier
	to use several regexps.
	* monitor.h:  Get rid of struct rom_cmd_data.  It's no longer used.
	* config/m68k/tm-monitor.h:  Don't redefine NUM_REGS here.  It just
	causes GDB to crash.
1995-10-16 18:51:15 +00:00