* interp.c (mips16_entry): Add support for floating point cases.
(SignalException): Pass floating point cases to mips16_entry.
(ValueFPR): Don't restrict fmt_single and fmt_word to even
registers.
(StoreFPR): Likewise. Also, don't clobber fpr + 1 for fmt_single
or fmt_word.
(COP_LW): Pass fmt_word rather than fmt_uninterpreted to StoreFPR,
and then set the state to fmt_uninterpreted.
(COP_SW): Temporarily set the state to fmt_word while calling
ValueFPR.
* elf32-mips.c (FN_STUB, CALL_STUB, CALL_FP_STUB): Define.
(struct mips_elf_link_hash_entry): Add new fields fn_stub,
need_fn_sub, call_stub, and call_fp_stub.
(struct mips_elf_link_hash_table): Add field mips16_stubs_seen.
(mips_elf_link_hash_newfunc): Initialize new fields.
(mips_elf_link_hash_table_create): Likewise.
(mips_elf_relocate_section): Redirect relocations to use mips16
stubs when appropriate.
(mips_elf_check_relocs): Attach stub sections to the appropriate
symbol. Set need_fn_stub when appropriate.
(mips_elf_always_size_sections): New static function.
(mips_elf_check_mips16_stubs): New static function.
(elf_backend_always_size_sections): Define.
* elf-bfd.h (struct elf_obj_tdata): Add local_stubs field.
* config/tc-mips.c (mips_fix_adjustable): Don't adjust relocations
against any mips16 symbols, not just externally visible ones.
(md_apply_fix): Corresponding change.
Jeff Law [Thu, 6 Feb 1997 21:43:53 +0000 (21:43 +0000)]
* gdb.base/default.exp: Set match_max to 5000 and the timeout
to 60 seconds. Temporarily set match_max to 15000 around the
"info copying" test.
Fixes timeout/overflow problems for hpux10.20 hosted toolchains.
Jeff Law [Thu, 6 Feb 1997 20:58:55 +0000 (20:58 +0000)]
* gdb.base/nodebug.exp: Don't try to do an inferior function
call if the target doesn't support them.
* gdb.base/printcmds.exp: Likewise.
* gdb.base/setvar.exp: Likewise.
* gdb.base/structs.exp: Likewise.
* gdb.c++/templates.exp: Likewise.
* gdb.base/ptype.exp: Likewise. Remove UDI specific stuff.
* gdb.base/recurse.exp: Enable for the mn10200.
* configure.in: Do configure gdb.stabs directory for *-*-elf
targets.
* configure: Rebuilt.
Jeff Law [Thu, 6 Feb 1997 19:50:33 +0000 (19:50 +0000)]
* gdb.base/break.exp: Check for gdb,noresults before testing
exit status and/or results from the target.
* gdb.base/watchpoint.exp, gdb.base/langs.exp: Likewise.
* lib/gdb.exp: Remove old (now bogus) initialization of
noinferior, noargs, noresults and nosignals.
More cleanups for new testing framework.
* stabs.c (struct bincl_file): Add next_stack field.
(push_bincl): Put the new file on both bincl_list and
bincl_stack. Clear the file_types field.
(pop_bincl): Use the next_stack field when popping the stack.
Don't put the file on bincl_list.
(find_excl): Include the file name when warning about an unfound
N_EXCL.
* debug.c (debug_type_samep): Don't crash if we are passed NULL.
PR 11465.
* mips16-opc.c: Add new cases of exit instruction for
disassembler.
* mips-dis.c (print_mips16_insn_arg): Display floating point
registers in operands of exit instruction. Print `$' before
register names in operands of entry and exit instructions.
Mark Alexander [Tue, 4 Feb 1997 02:09:33 +0000 (02:09 +0000)]
* mips-tdep.c (mips16_decode_reg_save): Distinguish between
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.
Bob Manson [Mon, 3 Feb 1997 20:36:39 +0000 (20:36 +0000)]
* gdb.base/a1-selftest.exp: Make sure we call gdb_exit before
trying to delete the copy of gdb. Catch the file delete so we
don't die if the delete fails; also, the file should be copied to
the host, not to the build.
Fixes problems when gdb isn't built with debugging.
* cofflink.c (_bfd_coff_generic_relocate_section): If doing a
relocateable link, just skip pc_relative pcrel_offset relocs.
* coff-arm.c (coff_arm_rtype_to_howto): Return a different howto
structure for an ARM26 reloc which can be resolved.
(coff_arm_adjust_symndx): Only convert ARM26 to ARM26D if the
reloc can be resolved.
PR 11599.
* m32r-stub.c: New -- remote protocol support for M32R cpu.
* m32r-rom.c: Several experiments with improved download time.
* .Sanitize: Add entry for m32r-stub.c
* symbols.c (resolve_symbol_value): Don't change X_add_number for
an equated symbol.
* write.c (write_relocs): Avoid looping on equated symbols.
Adjust fx_offset by X_add_number for each symbol.
* config/obj-coff.c (do_relocs_for): Avoid looping on equated
symbols.
(fixup_segment): Add a loop to track down equated symbols and
adjust fx_offset appropriately.
Ian Lance Taylor [Fri, 31 Jan 1997 18:20:20 +0000 (18:20 +0000)]
* emultempl/sunos.em (gld${EMULATION_NAME}_find_so): Search for
".so" in the name, not ".so.".
(gld${EMULATION_NAME}_search_dir): Accept a plain .so file.
Mark Alexander [Fri, 31 Jan 1997 16:37:07 +0000 (16:37 +0000)]
* mips-tdep.c (MIPS16_INSTLEN): Define.
(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.
Fred Fish [Thu, 30 Jan 1997 21:16:46 +0000 (21:16 +0000)]
* tic80-opc.c (tic80_predefined_symbols): Table of name/value
pairs for all predefined symbols recognized by the assembler.
Also used by the disassembling routines.
(tic80_symbol_to_value): New function.
(tic80_value_to_symbol): New function.
* tic80-dis.c (print_operand_control_register,
print_operand_condition_code, print_operand_bitnum):
Remove private tables and use tic80_value_to_symbol function.
Fred Fish [Thu, 30 Jan 1997 20:56:33 +0000 (20:56 +0000)]
* tic80.h: Change all the OPERAND defines to use the form (1 << X)
rather than a constant that is 2**X. Reorder them to put bits for
operands that have symbolic names in the upper bits, so they can
be packed into an int where the lower bits contain the value that
corresponds to that symbolic name.
(predefined_symbo): Add struct.
(tic80_predefined_symbols): Declare array of translations.
(tic80_num_predefined_symbols): Declare size of that array.
(tic80_value_to_symbol): Declare function.
(tic80_symbol_to_value): Declare function.
Ian Lance Taylor [Thu, 30 Jan 1997 17:10:28 +0000 (17:10 +0000)]
Ideas from Srinivas Addagarla <[email protected]>:
* read.c (read_a_source_file): After doing an mri_pending_align,
adjust the line_label if there is one.
(s_space): Set mri_pending_align if an odd number of bytes were
output.
Ian Lance Taylor [Thu, 30 Jan 1997 16:33:36 +0000 (16:33 +0000)]
* emultempl/sunos.em: Include <ctype.h>.
(gld${EMULATION_NAME}_find_so): Skip the directory name when
searching for ".so.".
(gld${EMULATION_NAME}_search_dir): Make sure that the library name
has a version number, and that only version numbers follow .so.
Ian Lance Taylor [Wed, 29 Jan 1997 18:58:04 +0000 (18:58 +0000)]
* objdump.c (objdump_print_value): Add skip_zeroes parameter.
Change all callers.
(objdump_print_addr_with_sym): Likewise. Call objdump_print_value
to print address.
(objdump_print_addr): New static function.
(objdump_print_address): Just call objdump_print_addr.
(disassemble_bytes): Print real address, not function offset.
Skip a certain number of leading zeroes.
* objdump.c (disassemble_zeroes): New static variable.
(usage): Mention --disassemble-zeroes.
(long_options): Add "disassemble-zeroes".
(disassemble_bytes): Check disassemble_zeroes.
Changes requested by LSI.
Jeff Law [Wed, 29 Jan 1997 07:02:22 +0000 (07:02 +0000)]
* elf32-mn10200.c (reloc_type): Add 16bit pc-relative reloc.
(elf_mn10200_howto_table): Likewise.
(mn10200_reloc_map): Likewise.
How did I miss the 16bit pc-relative relocs?!?
Mark Alexander [Tue, 28 Jan 1997 00:50:13 +0000 (00:50 +0000)]
First set of changes for mips16:
* 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.