aboutsummaryrefslogtreecommitdiff
path: root/gdb/mips-tdep.c
AgeCommit message (Collapse)AuthorFilesLines
1999-05-11import gdb-1999-05-10Stan Shebs1-12/+20
1999-04-26import gdb-19990422 snapshotStan Shebs1-52/+229
1999-04-16Initial creation of sourceware repositorygdb-4_18-branchpointStan Shebs1-0/+3259
1999-04-16Initial creation of sourceware repositoryStan Shebs1-3496/+0
1998-12-28hp merge changes -- too numerous to mention here; see ChangeLog andDavid Taylor1-8/+7
ChangeLog-gdbtk for details.
1998-12-19 * mips-tdep.c (mips32_heuristic_proc_desc): Clear temp_saved_regsStu Grossman1-6/+9
on restart. Fixes problem with backtracing through functions that use virtual frame pointers.
1998-12-18Missed this file:Andrew Cagney1-0/+1
* config/mips/tm-mips.h (enum mips_fpu_type, mips_fpu): Move to mips-tdep.c.
1998-12-18CARP/vr4xxx:Andrew Cagney1-90/+171
Rewrite ``set mipsfpu'' command so that it works with the multi-arch framework. For vr4111 and vr4121 disable the FPU.
1998-12-18CARP:Andrew Cagney1-12/+30
Pass gdbarch_info by value to the arch init function. Review doco. Update mips-tdep.c
1998-12-16CARP:Andrew Cagney1-0/+127
For MIPS, multi-arch MIPS_EABI, MIPS_LAST_FP_ARG_REGNUM, MIPS_LAST_ARG_REGNUM.
1998-12-12CARP: Mechanism to replace EXTRA_FRAME_INFO.Andrew Cagney1-23/+17
Add two pointers (saved_regs, extra_info) to struct frame_info. Introduce new macro FRAME_INIT_SAVED_REGS which replaces FRAME_FIND_SAVED_REGS. Document. Use in mn10300 and rs6000 targets. Fix side effects on ALPHA, MIPS, Z8K and SPARC targets.
1998-12-10CARP:Andrew Cagney1-35/+49
Rename REGISTER_NAMES{} -> REGISTER_NAME().
1998-11-23CARP: Convert macro definitions of USE_STRUCT_CONVENTION into targetAndrew Cagney1-12/+53
specific functions.
1998-06-23Tue Jun 23 11:14:04 1998 Michael Snyder <msnyder@cleaver.cygnus.com>Michael Snyder1-16/+62
* config/mips/tm-irix5.h: Modify to work better on irix 6, by making FP registers 8 bytes instead of 4. REGISTER_BYTES: redefine. REGISTER_BYTE(): redefine. REGISTER_VIRTUAL_TYPE: redefine. MIPS_LAST_ARG_REGNUM: redefine. * irix5-nat.c (fetch_core_registers): read 8 bytes per FP register. * mips-tdep.c (FP_REGISTER_DOUBLE): new macro to distinguish targets with 8-byte FP registers (don't use TARGET_MIPS64). (STACK_ARGSIZE): new macro, how much space is taken up on the stack for each function argument (don't use TARGET_MIPS64). (mips_push_arguments): modify logic to work better on Irix 6 (n32 ABI).
1998-04-21* MIPS CPU-specific dissasembly extensions. Now TM_PRINT_INSN_MACH from tm.hFrank Ch. Eigler1-2/+441
sets a default mach for disassembly, just like sparc port. c.f. PR 15371. Tue Apr 21 11:20:54 1998 Frank Ch. Eigler <fche@cygnus.com> * mips-tdep.c (gdb_print_insn_mips): Disassemble MIPS instructions with subtarget-specific `mach', rather than fixed default. * config/mips/tm-mips.h (TM_PRINT_INSN_MACH): New macro, default disassembly `mach'. start-sanitize-r5900 * config/mips/tm-r5900.h (TM_PRINT_INSN_MACH): Override. end-sanitize-r5900 start-sanitize-sky * config/mips/tm-txvu.h (TM_PRINT_INSN_MACH): Override. end-sanitize-sky
1998-04-09 * mips-tdep.c (do_fp_register_row): Use alloca rather than arraysIan Lance Taylor1-2/+6
with dynamic size.
1998-04-05Declare array using MAX_REGISTER_RAW_SIZE, not REGISTER_RAW_SIZE(X)Andrew Cagney1-20/+44
1997-09-30 * mips-tdep.c (set_reg_offset): New function.Mark Alexander1-43/+73
(mips16_heuristic_proc_desc): Calculate offsets of registers saved by entry pseudo-op after rest of prologue has been read. Use set_reg_offset to ignore all but the first save of a given register. (mips32_heuristic_proc_desc): Initialize frame adjustment value. * remote-sim.c (gdbsim_store_register): Don't update registers that have a null or empty name. * findvar.c (read_register_bytes): Don't fetch registers that have a null or empty name.
1997-09-26 * config/mips-tm-mips.h (mips_extra_func_info): New frame_adjustMark Alexander1-11/+15
member for storing offset of MIPS16 frame pointer from SP. * mips-tdep.c: Use RA_REGNUM instead of hardcoded 31 throughout. (PROC_FRAME_ADJUST): Define. (mips16_heuristic_proc_desc): Store frame pointer adjustment value. (get_frame_pointer): Use frame pointer adjustment value when calculating frame address. * remote-sim.c (gdbsim_fetch_register): Don't fetch registers that have a null or empty name. start-sanitize-tx19 * config/mips/tm-tx19.h (MIPS_DEFAULT_FPU_TYPE): Define. (REGISTER_NAMES): Redefine to eliminate FP registers. * config/mips/tm-tx19l.h: Ditto. end-sanitize-tx19
1997-09-26 * configure.tgt: Set gdb_target to r5900.Jeff Law1-3/+15
* config/mips/tm-r5900.h, config/mips/r5900.mt: New files * mips-tdep.c (_initialize_mips_tdep): Allow target files to override default FPU type. Brought over from r5900 branch.
1997-09-15 * dbxread.c (MSYMBOL_SIZE): New macro.Mark Alexander1-52/+186
(end_psymtab): Use MSYMBOL_SIZE to extract size from minimal symbol. * elfread.c (elf_symtab_read): If ELF symbol is "special", such as a MIPS16 function, mark minimal symbol as special too. * mips-tdep.c (pc_is_mips16): New function to check whether a function is MIPS16 by looking at the minimal symbol. Use pc_is_mips16 throughout instead of IS_MIPS16_ADDR macro. * config/mips/tm-mips.h (SYMBOL_IS_SPECIAL, MAKE_MSYMBOL_SPECIAL, MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): New functions for setting/testing "special" MIPS16 bit in ELF and minimal symbols. * mdebugread.c (parse_partial_symbols): Don't construct a partial symbol table for a file that already has one. start-sanitize-tx19 * configure.tgt: Support TX19. * config/mips/tm-tx19.h, config/mips/tm-tx19l.h, config/mips/tx19.mt, config/mips/tx19l.mt: New files for TX19. end-sanitize-tx19
1997-07-04Thu Jul 3 17:41:46 1997 Michael Snyder (msnyder@cleaver.cygnus.com)Michael Snyder1-2/+1
* mips-tdep.c (mips_extract_return_value): align 4-byte float return values within the 8-byte FP register.
1997-07-03Thu Jul 3 13:48:11 1997 Michael Snyder (msnyder@cleaver.cygnus.com)Michael Snyder1-8/+8
* mips-tdep.c (mips_push_arguments): don't left-adjust 32-bit integers in 64-bit register parameters before function calls.
1997-07-01Mon Jun 30 17:54:51 1997 Michael Snyder (msnyder@cleaver.cygnus.com)Michael Snyder1-29/+46
* mips-tdep.c (mips_push_arguments): special-case handling for odd-sized struct parameters passed in registers / on stack.
1997-06-30Mon Jun 30 15:30:38 1997 Michael Snyder (msnyder@cleaver.cygnus.com)Michael Snyder1-9/+16
* mips-tdep.c (mips_push_arguments): tweak alignment of small structs passed in registers for little-endian non-EABI mode.
1997-06-28Fri Jun 27 21:05:45 1997 Michael Snyder (msnyder@cleaver.cygnus.com)Michael Snyder1-1/+17
* mips-tdep.c (mips_push_arguments): handle alignment of integer and struct args on stack for mips64 big-endian.
1997-06-28Fri Jun 27 19:19:12 1997 Michael Snyder (msnyder@cleaver.cygnus.com)Michael Snyder1-12/+31
* config/mips/tm-mips.h (USE_STRUCT_CONVENTION): MIPS_EABI returns structs in a register wherever possible.
1997-06-17 * infrun.c (wait_for_inferior): Mark registers as invalid whenMark Alexander1-62/+258
stepping over an instruction that triggered a watchpoint. * remote-mips.c: Numerous changes to support hardware breakpoints and watchpoints on LSI MiniRISC and TinyRISC boards. * mips-tdep.c: Move MIPS16-related macros to config/mips/tm-mips.h. (mips_breakpoint_from_pc): Account for different breakpoint instructions used by PMON and IDT monitor. * config/mips/tm-embed.h: Enable hardware breakpoints on embedded MIPS targets. * config/mips/tm-mips.h: Define breakpoint instructions for PMON and IDT monitor. Move MIPS16-related macros here from mips-tdep.c.
1997-03-22 * mips-tdep.c (mips_push_arguments): On non-EABI architectures,Mark Alexander1-80/+127
copy first two floating point arguments to general registers, so that MIPS16 functions will receive the arguments correctly. (mips_print_register): Print double registers correctly on little-endian hosts. (mips_extract_return_value): Return double values correctly on little-endian hosts. * mdebugread.c (parse_procedure): Adjust address of procedure relative to address in file descriptor record; this accounts for constant strings that may precede functions in the text section. Remove now-useless lowest_pdr_addr from argument list and all calls.
1997-02-28 * mips-tdep.c (IS_MIPS16_ADDR, MAKE_MIPS16_ADDR, UNMAKE_MIPS16_ADDR):Mark Alexander1-56/+89
New macros for testing, setting, and clearing bit 0 of addresses. Change numerous bits of code where bit 0 was being manipulated to use these macros.
1997-02-09 * remote-mips.c (common_breakpoint): Prevent 64-bit addressesMark Alexander1-5/+16
from being sent to 32-bit targets by masking off upper bits. * mips-tdep.c (heuristic_proc_start): Mask off upper 32 bits of PC on 32-bit targets. (mips16_heuristic_proc_desc): Recognize 'addiu s1,sp,n' as a frame setup instruction. (mips32_heuristic_proc_desc): Fix warning found by gcc -Wall. (mips16_skip_prologue): Recognize 'addiu s1,sp,n' as a valid prologue instruction. Fix warnings and bugs found by gcc -Wall. * buildsym.c (finish_block): Improve handling of overlapping blocks; fixes problem on MIPS16 printing function arguments.
1997-02-04 * mips-tdep.c (mips16_get_imm): Fix calculation of extended immediate.Mark Alexander1-1/+3
(mips16_heuristic_proc_desc): Recognize jal(x) instruction.
1997-02-04 * mips-tdep.c (mips16_decode_reg_save): Distinguish betweenMark Alexander1-114/+307
sd and sw instructions correctly. (heuristic_proc_start): Add support for MIPS16. (mips16_get_imm, mips16_heuristic_proc_desc, mips32_heuristic_proc_desc): New helper functions for heuristic_proc_desc. (heuristic_proc_desc): Rewrite and reorganize to support MIPS16. (mips_push_arguments): Don't align small arguments in EABI. (mips32_skip_prologue): Attempt to shrink code size a little.
1997-01-31 * mips-tdep.c (MIPS16_INSTLEN): Define.Mark Alexander1-42/+151
(mips_find_saved_regs): Replace hardcoded 2's with MIPS16_INSTLEN. (heuristic_proc_start): Recognize 'entry' pseudo-op as a start of function on MIPS16. (mips32_skip_prologue, mips16_skip_prologue): New helper functions for mips_skip_prologue. (mips_skip_prologue): Recognize both 16- and 32-bit prologues.
1997-01-28First set of changes for mips16:Mark Alexander1-47/+185
* config/mips/tm-mips.h (MIPS16_BIG_BREAKPOINT, MIPS16_LITTLE_BREAKPOINT, BREAKPOINT_FROM_PC): Define. (ABOUT_TO_RETURN): Call new function mips_about_to_return. (mips_breakpoint_from_pc, mips_about_to_return): Declare. * mem-break.c (memory_breakpoint_from_pc): New function. (memory_insert_breakpoint, memory_remove_breakpoint): Use memory_breakpoint_from_pc to determine breakpoint contents and size. * target.h (memory_breakpoint_from_pc): Declare. * monitor.c (monitor_insert_breakpoint): Use memory_breakpoint_from_pc to determine size of breakpoint instruction. * mips-tdep.c (mips32_decode_reg_save, mips16_decode_reg_save): New helper functions for mips_find_saved_regs. (mips_find_saved_regs): Recognize mips16 prologues. (mips_addr_bits_remove): Strip off upper 32 bits of address when target CPU is 32 bits but CORE_ADDR is 64 bits. (mips_step_skips_delay): No branch delay slot on mips16. (gdb_print_insn_mips): Disassemble mips16 code. (mips_breakpoint_from_pc, mips_about_to_return): New functions.
1996-12-21 * config/mips/tm-mips.h (PC_IN_CALL_DUMMY): Removed, the defaultPeter Schauer1-32/+24
definition in inferior.h is sufficient. * mips-tdep.c (mips_pc_in_call_dummy): Ditto. (mips_push_arguments): Make sure that the stack is aligned to a multiple of 8 after the arguments are pushed. Structures are always passed by value in the old ABI. Adjust argument register value on big endian targets when passing a value whose length is less than the register size. Write stack arguments with a single write_memory call. (mips_pop_frame): Use frame_saved_regs instead of proc_desc to decide which registers have to be restored.
1996-12-15 * mips-tdep.c (mips_push_arguments): Handle floating point args.Mark Alexander1-115/+197
* config/mips/tm-mips.h (FIX_CALL_DUMMY): Define to set up $25 correctly for PIC on Irix 5.
1996-11-27 * config/mips/tm-mips.h (ADDR_BITS_REMOVE, TARGET_READ_SP): Define.Mark Alexander1-59/+84
(mips_addr_bits_remove): Declare. * mips-tdep.c (mips_push_dummy_frame): Fix heuristic-fence-post errors when hitting breakpoints during inferior function calls in 64-bit programs. (fix_sign_extension): Make public, rename to mips_addr_bits_remove. * utils.c (paddr_nz, preg_nz): New functions, similar to paddr and preg but don't print leading zeroes. * defs.h (paddr_nz, preg_nz): Declare. * remote-mips.c: Use paddr_nz instead of paddr throughout to reduce packet size. (pmon_end_download): Improve timeout error handling.
1996-11-11 * mips-tdep.c, remote-mips.c, values.c, mdebugread.c,Dawn Perchik1-140/+189
config/mips/tm-mips.h: Add/fix bugs for 64-bit mips support. * defs.h: Cleanup; add prototypess * corefile.c: Change FIXME #ifdef * win32-nat.c: Include windefs instead of windows.h. * utils.c: Add routines for printing addresses and registers based on type size.
1996-07-30 * mips-tdep.c (mips_read_processor_type): Add parens aroundFred Fish1-1/+1
bitwise-and operands in comparison; previous expression always evaluated to 0 because of equality comparison of two constants.
1996-07-28 * config/mips/tm-mips.h (struct frame_info): Forward decl.Fred Fish1-4/+71
(struct type): Ditto. (struct value): Ditto. * config/mips/tm-mips.h (sigtramp_address): Move extern decl from mips-tdep.c to here. (sigtramp_end): Ditto. (fixup_sigtramp): Ditto. * config/mips/tm-mips.h (init_extra_frame_info): Add prototype. (mips_frame_chain): Ditto. (mips_step_skips_delay): Ditto. (mips_frame_saved_pc): Ditto. (mips_find_saved_regs): Ditto. (mips_frame_num_args): Ditto. (mips_pop_frame): Ditto. (mips_extract_return_value): Ditto. (mips_store_return_value): Ditto. (mips_push_dummy_frame): Ditto. (mips_push_arguments): Ditto. (mips_do_registers_info): Ditto. (ecoff_relocate_efi): Ditto. (ecoff_relocate_efi): Ditto. * irix4-nat.c (fetch_core_registers): Add prototype. * mips-tdep.c (read_next_frame_reg): Add prototype (heuristic_proc_start): Ditto. (heuristic_proc_desc): Ditto. (mips_print_register): Ditto. * config/mips/nm-irix5.h (procfs_set_watchpoint): Add prototype. (procfs_stopped_by_watchpoint): Ditto. * config/mips/nm-irix4.h (procfs_set_watchpoint): Add prototype. (procfs_stopped_by_watchpoint): Ditto. * config/alpha/tm-alpha.h (ecoff_relocate_efi): Add prototype. (struct symbol): Add forward decl for prototype. * breakpoint.c (internal_breakpoint_number): Only needed if GET_LONGJMP_TARGET or SOLIB_ADD is defined. * objfiles.c (ecoff_relocate_efi): Remove prototype.
1995-10-21 * alpha-tdep.c, mips-tdep.c (init_extra_frame_info):Peter Schauer1-7/+19
Do not set saved registers from heuristics for a sigtramp frame. * dwarfread.c (enum_type): Determine signedness of enum type from enumerators. * mips-tdep.c: Include gdb_string.h, gcc -Wall lint. * rs6000-nat.c (xcoff_relocate_core): Fix typo. * valops.c (value_repeat): Fix length of memory transfer to match recent allocate_repeat_value change.
1995-08-01 * mips-tdep.c (mips_extract_return_value): Fix returning ofPeter Schauer1-1/+8
values whose length is less than the register size for big endian targets. * alpha-tdep.c (alpha_extract_return_value, alpha_store_return_value): Use alpha_convert_register_to_* to handle functions returning "float" correctly.
1995-07-29 * alpha-tdep.c: Move sigtramp handling of saved registers fromPeter Schauer1-59/+192
read_next_frame_reg to alpha_find_saved_regs, handle saved floating point registers. * mips-tdep.c: Move sigtramp handling of saved registers from read_next_frame_reg to mips_find_saved_regs, handle saved floating point registers. * config/mips/tm-irix3.h, config/mips/tm-irix5.h, config/mips/tm-mipsv4.h (SIGFRAME_FPREGSAVE_OFF): Define. * sparc-tdep.c (sparc_pc_adjust): Fix check for `unimp' instruction to handle functions returning structures with large sizes properly.
1995-01-17 General cleanup and simplication of disassembler interface.Stan Shebs1-1/+14
* a29k-pinsn.c, arm-pinsn.c, convex-pinsn.c, gould-pinsn.c, hppa-pinsn.c, i386-pinsn.c, i960-pinsn.c, m68k-pinsn.c, m88k-pinsn.c, mips-pinsn.c, ns32k-pinsn.c, pyr-pinsn.c, rs6000-pinsn.c, sparc-pinsn.c, tahoe-pinsn.c, vax-pinsn.c: Remove. * gould-tdep.c, ns32k-tdep.c, tahoe-tdep.c, vax-tdep.c: New files, had been -pinsn.c files. * Makefile.in (ALLDEPFILES): Remove removed files. (a29k-pinsn.o, arm-pinsn.o, convex-pinsn.o, gould-pinsn.o, hppa-pinsn.o, i386-pinsn.o, i960-pinsn.o, m68k-pinsn.o, m88k-pinsn.o, mips-pinsn.o, ns32k-pinsn.o, pyr-pinsn.o, rs6000-pinsn.o, sparc-pinsn.o, tahoe-pinsn.o, vax-pinsn.o): Remove compile actions. * arm-tdep.o, gould-tdep.o, ns32k-tdep.o, tahoe-tdep.o, vax-tdep.o: Add compile actions. * defs.h (tm_print_insn): New global. * a29k-tdep.c (gdb_print_insn_a29k): New function. (_initialize_a29k_tdep): Rename from _initialize_29k, set tm_print_insn. * alpha-tdep.c (print_insn): Remove. (_initialize_alpha_tdep): Set tm_print_insn. * arm-tdep.c (arm_print_insn): New function, was print_insn in arm-pinsn.c. * convex-tdep.c (convex_print_insn): New function, was print_insn in convex-pinsn.c. * h8300-tdep.c (print_insn): Remove. (gdb_print_insn_h8300): New function. (_initialize_h8300_tdep): New function. * h8500-tdep.c (print_insn): Remove. (_initialize_h8500_tdep): New function. * hppa-tdep.c (_initialize_hppa_tdep): Set tm_print_insn. * i386-tdep.c (_initialize_i386_tdep): New function. * i960-tdep.c (mem, next_insn): New functions, were in i960-pinsn.c. (_initialize_i960_tdep): Set tm_print_insn. * m68k-tdep.c (_initialize_m68k_tdep): New function. * m88k-tdep.c (_initialize_m88k_tdep): New function. * mips-tdep.c (gdb_print_insn_mips): New function. (_initialize_mips_tdep): Set tm_print_insn. * pyr-tdep.c (pyr_print_insn): New function, was print_insn in pyr-pinsn.c. * rs6000-tdep.c (_initialize_rs6000_tdep): New function. * sh-tdep.c (print_insn): Remove. (gdb_print_insn_sh): New function. (_initialize_sh_tdep): Set tm_print_insn. * sparc-tdep.c (_initialize_sparc_tdep): New function. * w65-tdep.c (print_insn): Remove. (_initialize_w65_tdep): New function. * z8k-tdep.c (print_insn): Remove. (gdb_print_insn_z8k): New function. (_initialize_z8k_tdep): Set tm_print_insn. * printcmd.c (print_insn): New function, generic disassembler. * config/*/*.mt (TDEPFILES): Remove refs to *-pinsn.o. * defs.h (query_hook, error_hook): Fix prototypes.
1995-01-10 * mips-tdep.c (mips_skip_prologue): Accept or as well as addu forJim Kingdon1-2/+10
`move $s8, $sp' instruction.
1994-11-18 Support for different MIPS IDT processor models.Stan Shebs1-73/+265
* mips-tdep.c (mips_processor_type, tmp_mips_processor_type, mips_generic_reg_names, mips_r3041_reg_names, mips_r3051_reg_names, mips_r3081_reg_names, mips_processor_type_table): New globals. (mips_do_registers_info): Don't display register if name is empty. (mips_set_processor_type_command): New command. (mips_show_processor_type_command): New command. (mips_set_processor_type): New function. (mips_read_processor_type): New function. * config/mips/tm-idt.h (DEFAULT_MIPS_TYPE): New macro. * config/mips/tm-mips.h (DEFAULT_MIPS_TYPE): New macro. (NUM_REGS): Increase to account for all CP0 registers. (REGISTER_NAMES): Add empty names for CP0 registers. (FIRST_EMBED_REGNUM, LAST_EMBED_REGNUM): Adjust. (PRID_REGNUM): New macro.
1994-09-25 * infcmd.c (do_registers_info) [INVALID_FLOAT]: Only use ifStan Shebs1-44/+41
defined. * values.c (unpack_double) [INVALID_FLOAT]: Ditto. * mips-tdep.c (mips_print_register): Don't test float validity. * config/a29k/tm-a29k.h, config/alpha/tm-alpha.h, config/arm/tm-arm.h, config/convex/tm-convex.h, config/h8300/tm-h8300.h, config/h8500/tm-h8500.h, config/i386/tm-i386v.h, config/i386/tm-sun386.h, config/i960/tm-i960.h, config/m68k/tm-m68k.h, config/m88k/tm-m88k.h, config/mips/tm-mips.h, config/ns32k/tm-merlin.h, config/ns32k/tm-nbsd.h, config/ns32k/tm-ns32km3.h, config/ns32k/tm-umax.h, config/pa/tm-hppa.h, config/pyr/tm-pyr.h, config/rs6000/tm-rs6000.h, config/sh/tm-sh.h, config/sparc/tm-sparc.h, config/z8k/tm-z8k.h (INVALID_FLOAT): Remove definition.
1994-03-01 * mips-tdep.c (mips_step_skips_delay), config/mips/tm-mips.hJim Kingdon1-4/+14
(STEP_SKIPS_DELAY): Added. * infrun.c (proceed) [STEP_SKIPS_DELAY]: Check for a breakpoint in the delay slot.
1994-02-25 * mips-tdep.c (mips_print_register): Print integers usingJim Kingdon1-27/+37
print_scalar_formatted rather than duplicating all the CC_HAS_LONG_LONG and so on. (mips_push_dummy_frame): Use read_register_gen rather than using read_register and then putting it back in target format with store_unsigned_integer. If registers are more than 4 bytes, give an error rather than have some registers overwrite other registers. #if 0 unused include of opcode/mips.h.