Fred Fish [Sat, 28 Dec 1996 04:09:34 +0000 (04:09 +0000)]
(Lay some groundwork for TIc80 port that will be filled in incrementally.)
* TODO: Correct a misspelling.
start-sanitize-tic80
* coff-tic80.c: New file for TI TMS320C80 (MVP).
* cpu-tic80.c: New file for TI TMS320C80 (MVP).
* configure.in (case $vec): Add tic80coff_vec entry.
* configure: Regenerate with autoconf.
* archures.c (bfd_tic80_arch): Declare.
* bfd-in2.h (enum bfd_architecture): Add bfd_arch_tic80.
* config.bfd (case ${targ}): Add tic80*-*-coff* target.
* targets.c (tic80coff_vec): Add decl as extern bfd_target.
(bfd_target_vector): Add tic80coff_vec entry.
end-sanitize-tic80
Mark Alexander [Fri, 27 Dec 1996 04:04:44 +0000 (04:04 +0000)]
* valprint.c (print_longest): Don't lose upper bits
of 64-bit values on Windows.
* config/i386/xm-windows.h: Leave CC_HAS_LONG_LONG defined,
undefine PRINTF_HAS_LONG_LONG, so that 64-bit values will
be printed without loss of upper bits.
* sparclet-stub.c: a few clean-ups, removing dead code
* config/sparc/tm-sparclet.h: make registers ASR15, ASR19 invisible
(they're not useful, you can't change, write or even read them)
* sparclet-rom.c: Remove includes of Unix system files.
Add function "sparclet_supply_register" so that parse_register_dump
will not seg-fault by calling a null function pointer.
Remove XMODEM support (unfinished work?).
Remove flag "MO_HANDLE_NL", so monitor's output can be read by humans.
Add fill command.
Remove colon from getreg.resp_delim so PSR register will work.
Remove pointer to sparclet_load (downloading SREC's doesn't work).
Null out local register names for %g0, all %cc and all %asr regs,
since the monitor can't report them. Will return zero instead.
* sparclet-stub.c: New -- remote protocol support for sparclet CPU.
* config/sparc/tm-sparclet.h: Re-arrange REGISTER_NAMES:
Add back %g0 and %psr, add %cc coprocessor regs, add %asr regs.
Adjust NUM_REGS and REGISTER_BYTES accordingly
Jeff Law [Tue, 24 Dec 1996 17:34:41 +0000 (17:34 +0000)]
* remote-e7000.c (want_h8300h, want_nopc_h8300h): Renamed
from want and want_nopc.
(want_h8300s, want_nopc_h8300s): New variables for H8/S register
lists.
(e7000_fetch_registers): Use H8/300H or H8/S register list string
as needed.
(e7000_wait): Likewise.
Bringing over a change from hmse-h8s-beta branch.
Peter Schauer [Mon, 23 Dec 1996 10:30:51 +0000 (10:30 +0000)]
* mips-tdep.c (mips_find_saved_regs): If a frame has been
interrupted by a signal, figure out whether the registers that
the proc_desc claims are saved have been saved yet.
(mips_push_dummy_frame): Write dummy frame register after all
registers have been saved in the dummy frame. Update comments
to reflect the fact that we are now using an AT_ENTRY_POINT
call dummy.
Peter Schauer [Sat, 21 Dec 1996 21:01:01 +0000 (21:01 +0000)]
* config/mips/tm-mips.h (PC_IN_CALL_DUMMY): Removed, the default
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.
Stan Shebs [Thu, 19 Dec 1996 19:17:01 +0000 (19:17 +0000)]
* mpw-build.in: Build ld before gcc, use NewFolderRecursive.
* mpw-config.in: Test for NewFolderRecursive.
* mpw-install: Use symbolic name for startup filename.
* mpw-README: Add various additional details.
PR 10971
Ian Lance Taylor [Thu, 19 Dec 1996 19:08:46 +0000 (19:08 +0000)]
* gencode.c (build_instruction) [MUL]: Cast operands to word64, to
force a 64 bit multiplication.
(build_instruction) [OR]: In mips16 mode, don't do anything if the
destination register is 0, since that is the default mips16 nop
instruction.
Mark Alexander [Thu, 19 Dec 1996 17:45:57 +0000 (17:45 +0000)]
* values.c (unpack_double): Make it compile with MSVC++ 2.x.
* remote-mips.c (S_IROTH): Define if not defined by stat.h, e.g.
when using MSVC++.
(common_open): Fix help string.
Ian Lance Taylor [Thu, 19 Dec 1996 17:07:14 +0000 (17:07 +0000)]
* write.c (adjust_reloc_syms): If the fixup symbol has been
equated to an undefined symbol, convert the fixup to being against
the target symbol. Remove obsolete code handling a special case
for i386 PIC.
Jeff Law [Wed, 18 Dec 1996 17:14:10 +0000 (17:14 +0000)]
* config/tc-mn10200.c (mn10200_insert_operand): Don't
range check operands with MN10200_OPERAND_NOCHECK set.
(check_operand): Likewise.
So the assembler won't check on "and -1,dn".
Ian Lance Taylor [Wed, 18 Dec 1996 01:01:56 +0000 (01:01 +0000)]
* config/tc-mips.c: Undo part of last Friday's alignment changes.
(md_begin): Always align the text section to a four byte
boundary.
(append_insn): Remove call to record_align.
Ian Lance Taylor [Tue, 17 Dec 1996 20:58:57 +0000 (20:58 +0000)]
* config/tc-mips.c (insn_label): Remove.
(struct insn_label_list): Define.
(insn_labels, free_insn_labels): New static variables.
(mips_clear_insn_labels): New static function.
(append_insn): Mark all mips16 text labels, and make them odd.
Handle all labels after emitting a nop, not just one. Call
mips_clear_insn_labels rather than just clearing insn_label.
(mips_emit_delays): Add insns parameter, and use it to decide
whether to mark mips16 labels. Handle all labels, not just one.
Force mips16 labels to be odd. Change all callers.
(mips16_immed): Don't check for an odd branch target.
(md_apply_fix): Don't check mips16 mode for a branch reloc.
(mips16_extended_frag): Ignore the low bit in a branch target.
(md_convert_frag): Likewise.
(mips_no_prev_insn): Call mips_clear_insn_labels rather than just
clearing insn_label.
(mips_align, mips_flush_pending_output, s_cons): Likewise.
(s_float_cons, s_gpword): Likewise.
(s_align): Use insn_labels rather than insn_label.
(s_cons, s_float_cons, s_gpword): Likewise.
(mips_frob_file_after_relocs): New function.
(mips_define_label): Rewrite to add to insn_labels list.
* config/tc-mips.h (tc_frob_file_after_relocs): Define.
* ecoff.c (ecoff_build_symbols): If the size of a function comes
out odd, increment it.
Ian Lance Taylor [Tue, 17 Dec 1996 18:58:59 +0000 (18:58 +0000)]
* elf32-mips.c (mips_elf_add_symbol_hook): Add 1 to the value of a
mips16 symbol during the link.
(mips_elf_finish_dynamic_symbol): Subtract 1 from the value of a
mips16 symbol.
(mips_elf_link_output_symbol_hook): New static function.
(elf_backend_link_output_symbol_hook): Define.
Ian Lance Taylor [Mon, 16 Dec 1996 21:47:23 +0000 (21:47 +0000)]
* gencode.c (MIPS16_DECODE): SWRASP is I8, not RI.
(build_endian_shift): Don't check proc64.
(build_instruction): Always set memval to uword64. Cast op2 to
uword64 when shifting it left in memory instructions. Always use
the same code for stores--don't special case proc64.
Ian Lance Taylor [Mon, 16 Dec 1996 20:01:15 +0000 (20:01 +0000)]
* gencode.c (build_mips16_operands): Fix base PC value for PC
relative operands.
(build_instruction): Call JALDELAYSLOT rather than DELAYSLOT for a
jal instruction.
* interp.c (simJALDELAYSLOT): Define.
(JALDELAYSLOT): Define.
(INDELAYSLOT, INJALDELAYSLOT): Define.
(simulate): Clear simJALDELAYSLOT when simDELAYSLOT is cleared.
Ian Lance Taylor [Mon, 16 Dec 1996 19:39:39 +0000 (19:39 +0000)]
* elf.c (bfd_section_from_shdr): Don't check for reloc sections
against SEC_DEBUGGING sections here (revert patch of December 5).
* elfcode.h (elf_object_p): Check for them here, instead.
Mark Alexander [Sun, 15 Dec 1996 04:59:14 +0000 (04:59 +0000)]
* mips-tdep.c (mips_push_arguments): Handle floating point args.
* config/mips/tm-mips.h (FIX_CALL_DUMMY): Define to set up $25
correctly for PIC on Irix 5.
Ian Lance Taylor [Sun, 15 Dec 1996 03:42:36 +0000 (03:42 +0000)]
* config/tc-mips.c (prev_insn_reloc_type): New static variable.
(RELAX_MIPS16_ENCODE): Add dslot and jal_dslot arguments, and
store them. Adjust other RELAX_MIPS16 macros.
(RELAX_MIPS16_DSLOT): Define.
(RELAX_MIPS16_JAL_DSLOT): Define.
(append_insn): Pass new arguments to RELAX_MIPS16_ENCODE. Correct
handling of whether previous instruction has a fixup. Set
prev_insn_reloc_type.
(mips_no_prev_insn): Clear prev_insn_reloc_type.
(mips16_extended_frag): Use the right base address for a PC
relative add or load.
(md_convert_frag): Likewise. If a PC relative add or load is
used, record the alignment for the section.
Peter Schauer [Sat, 14 Dec 1996 09:17:22 +0000 (09:17 +0000)]
* c-exp.y (qualified_name): Replace explicit check for valid
destructor name with call to destructor_name_p.
* c-lang.h, c-typeprint.c (cp_type_print_method_args): Removed,
no longer needed.
* c-typeprint.c (c_type_print_varspec_prefix, c_type_print_base):
Replace remaining fprintf_unfiltered calls with their filtered variant.
(c_type_print_base): Do not print return type for destructors from
template classes.
Replace cp_type_print_method_args with cplus_demangle call to get
consistent type output for stubbed and unstubbed methods.
* cp-valprint.c (cp_print_class_method): Replace
cp_type_print_method_args with cplus_demangle call to get consistent
type output for stubbed and unstubbed methods.
* gdbtypes.c, gdbtypes.h (get_destructor_fn_field): New function
to find the destructor field indices for a type.
* gdbtypes.h (struct type): Clarify comments for vptr_basetype
and arg_types fields.
(struct fn_field): Remove args field, no longer used.
* symtab.c (decode_line_1), valops.c (value_struct_elt,
check_field_in): Use get_destructor_fn_field to find the destructor
field indices instead of assuming that the compiler passes the member
function fields in a specific order.
* symtab.c (find_methods): Pass NULL instead of SYMBOL_BLOCK_VALUE
to lookup_symbol.
(list_symbol): Replace cp_type_print_method_args with cplus_demangle
call in zapped out code and explain why this code is zapped out.
Ian Lance Taylor [Fri, 13 Dec 1996 18:02:35 +0000 (18:02 +0000)]
* config/tc-mips.c (md_begin): If configured for an embedded ELF
system, don't set the section alignment to 2**4.
(s_change_sec): Likewise.
(append_insn): Call record_alignment for the section.
(md_section_align): Don't align the section size for an embedded
ELF system.
Ian Lance Taylor [Fri, 13 Dec 1996 02:29:37 +0000 (02:29 +0000)]
* elflink.h (elf_link_add_object_symbols): Only add a weak
symbol if the real definition is in the dynamic symbol table.
After finding the real definition, then, if it is dynamic, add the
weak symbol to the dynamic symbol table.
PR 11244.
Ian Lance Taylor [Thu, 12 Dec 1996 22:06:51 +0000 (22:06 +0000)]
* emultempl/gld960c.em: Include <ctype.h>.
(gld960_set_output_arch): Get the machine type from the -A option
if there is one, rather than always using core.
PR 11255.
Ian Lance Taylor [Thu, 12 Dec 1996 19:57:22 +0000 (19:57 +0000)]
* ppcboot.c (ppcboot_set_arch_mach): Don't define; it's a
function.
(ppcboot_bfd_print_private_bfd_data): Don't take the address of an
array.
PR 11256.
Jim Wilson [Wed, 11 Dec 1996 22:04:46 +0000 (22:04 +0000)]
For NEC 4100/4300 project: Add little endian support and misc cleanups.
* gencode.c (build_instruction): Use !ByteSwapMem instead of
BigEndianMem.
* interp.c (CONFIG, config_EP_{mask,shift,D,DxxDxx, config_BE): Delete.
(BigEndianMem): Rename to ByteSwapMem and change sense.
(BigEndianCPU, sim_write, LoadMemory, StoreMemory): Change
BigEndianMem references to !ByteSwapMem.
(set_endianness): New function, with prototype.
(sim_open): Call set_endianness.
(sim_info): Use simBE instead of BigEndianMem.
(xfer_direct_word, xfer_direct_long, swap_direct_word,
swap_direct_long, xfer_big_word, xfer_big_long, xfer_little_word,
xfer_little_long, swap_word, swap_long): Delete unnecessary MSC_VER
ifdefs, keeping the prototype declaration.
(swap_word): Rewrite correctly.
(ColdReset): Delete references to CONFIG. Delete endianness related
code; moved to set_endianness.