(md_apply_fix): Handle BFD_RELOC_MIPS16_GPREL.
* config/tc-mips.c (append_insn): Output jump instruction as a
pair of 2 byte instructions, rather than as a single 4 byte
instruction.
start-sanitize-r5900
* config/tc-mips.c (md_begin): Correct test of mips_5900.
(mips_ip): Don't check INSN_ISA for a macro.
end-sanitize-r5900
be two byte aligned. Round argument sizes up to two byte boundary.
Write out args in two byte hunks.
(mn10200_push_return_address): Implement.
* config/mn10200/tm-mn10200.h (EXTRACT_RETURN_VALUE): Abort for
structures > 8 bytes (temporary).
(STORE_RETURN_VALUE): Likewise.
(CALL_DUMMY): No longer undefine.
(USE_STRUCT_CONVENTION): Use for args > 8 bytes.
(REG_STRUCT_HAS_ADDR): Define.
Inferior function calls for the mn10200.
* config/vxworks.exp: New file.
* gdb.base/a2-run.exp: Change vxworks cases to use gdb_spawn_id.
* config/monitor.exp(gdb_target_monitor): Look for a prompt from
gdb before assuming everything worked. Send a ^C if a timeout
occurs.
Random fixes for vxworks and d10v.
(find_proc_desc): Move non-heuristic proc search code into separate
function.
(gdb_print_insn_mips): Use non-heuristic method to find procedure
descriptor, to avoid prologue examination when disassembling.
* remote-mips.c: Add support for new "lsi" target (LSI MiniRISC
aka MicroMeteor board).
(mips_exit_debug): Prevent protocol reinitialization if an error
occurs while exiting debug mode.
instruction registers, opcodes and formats. Build internal table
for new instructions and provide callbacks for assembler and
disassembler.
* itbl-lex.l, itbl-parse.y: Lex and yacc parsers for instruction
spec table.
* itbl-ops.h: New file. Header file for itbl support.
* config/itbl-mips.h: New file. Mips specific definitions for
itbl support.
comments, formatting, etc. Plus other minor fixes for problems
I found during my first pass over the mn10200 port.
(mn10200_analyze_prologue): New function.
(mn10200_frame_chain, mn10200_init_extra_frame_info): Use it.
* config/mn10200/tm-mn10200.h: Lots of updates/improvements to
comments, formatting, etc. Minor fixes for problems I found during
my first pass over the mn10200 port.
(TARGET_*_BIT): Define appropriately for ints, long longs, doubles and
pointers.
(REGISTER_VIRTUAL_TYPE): Define as a long.
(EXTRACT_RETURN_VALUE): Rework to deal with long ints living
in register pairs.
(STORE_RETURN_VALUE): Similarly.
Checking in my initial changes, prologue scanning, etc.
Current gdb testsuite results:
=== gdb Summary ===
# of expected passes 3684
# of expected failures 40
# of unexpected failures 6
* scripttempl/tic80coff.sc: New (dummy) file for TIc80.
* Makefile.in (etic80coff.c): Add target and rule to build it.
* configure.tgt (tic80-*-coff): Set targ_emul to tic80coff.
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.
the linkage name of a die from DW_AT_MIPS_linkage_name or
DW_AT_name.
(read_func_scope, dwarf2_add_field, dwarf2_add_member_fn,
new_symbol): Use it instead of accessing DW_AT_name.
(read_partial_die): Use DW_AT_MIPS_linkage name as name of the
partial die if present.
(dwarf2_add_member_fn): Make a copy of physname on the type obstack.
and REG_DEST_E for register operands that have to be
an even numbered register. Add REG_FPA for operands that
are one of the floating point accumulator registers.
Add TIC80_OPERAND_MASK to flags for ENDMASK operand.
(tic80_opcodes): Change entries that need even numbered
register operands to use the new operand table entries.
Add "or" entries that are identical to "or.tt" entries.
(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.
(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.