* configure.in: don't avoid building gdb for mn10300 any more
* Makefile.in: double-quote GCC_FOR_TARGET line in EXTRA_GCC_FLAGS
instead of single-quoting it.
Rob Savoye [Wed, 4 Dec 1996 00:56:56 +0000 (00:56 +0000)]
* configure.in: Look for libtermcap.a.
* Makefile.in: Only link in -ltermcap if it exists.
* erc32.c: Update to version 2.6a. Fix uart handling.
* exec.c: Update to version 2.6a. Add sparclite support.
* float.c: Update to version 2.6a. Convert comments to
preprocessor warnings. Add __setfpucw() for i385 hosts so floating
point exceptions work.
* func.c: Update to version 2.6a. Fix uart handling, add support
for user error traps.
* help.c: Update to version 2.6a. Add help note on user error
traps.
* interf.c: Update to version 2.6a. Fix uart handling, and add
sparclite support.
* examples/gccx: Use sparclite cross compiler, not native gcc.
* examples/srt0.S: Use "mov" rather than "wr" for manipulating
the psr register.
Jeff Law [Wed, 4 Dec 1996 00:42:01 +0000 (00:42 +0000)]
* simops.c: Fix simulation of division instructions.
Fix typos/thinkos in several "cmp" and "sub" instructions.
Another couple dozen c-torture failures fixed.
* cofflink.c (_bfd_coff_generic_relocate_section): Print an error
message for bfd_reloc_outofrange, rather than aborting. From
Philippe De Muyter <[email protected]>.
* cofflink.c (_bfd_coff_final_link): If there aren't any relocs in
a relocateable link, don't try to process them. From Heinz Wrobel
<[email protected]>.
Jeff Law [Mon, 2 Dec 1996 07:44:50 +0000 (07:44 +0000)]
* elf32-mn10300.c (mn10300_info_howto): Renamed from
mn10300-Info_howto_rel. Tweak reloc argument to be an
Elf32_Internal_Rela.
(USE_RELA): Define instead of USE_REL.
(elf_info_to_howto, elf_info_howto_rel): Corresponding changes.
Jeff Law [Mon, 2 Dec 1996 07:38:10 +0000 (07:38 +0000)]
* simops.c: Fix "movdm, an", "movbu dm, (an)", and "movhu dm, (an)".
Along with some compiler, bfd, assembler changes this fixes 90 or so
c-torture execution failures.
Jeff Law [Mon, 2 Dec 1996 04:50:26 +0000 (04:50 +0000)]
* config/tc-mn10300.h (tc_fix_adjustable): Don't do any
reloc adjustments.
reloc adjusting is of minimal value, and quite problematical for
machines which do linker relaxing...
Peter Schauer [Sun, 1 Dec 1996 08:33:39 +0000 (08:33 +0000)]
Add support for Irix 6.2 native O32 and N32 ABI.
* config.in, configure.in, configure: Check for <objlist.h>.
* configure.tgt: Handle mips*-sgi-irix6* like irix5 for now.
* cp-valprint.c (cp_print_value_fields): Use SYMBOL_VALUE_ADDRESS
instead of SYMBOL_BLOCK_VALUE to get the address of a static member.
* dwarf2read.c: Turn warnings and recoverable errors into complaints,
add new complaints where appropriate.
gcc -Wall cleanup.
(struct line_head): Change line_base from char to int to avoid
problems with compilers whose plain char is represented by an
unsigned char.
(struct partial_die_info): Add is_declaration field.
(dwarf2_tmp_obstack): New obstack for allocating temporary storage
used during symbol reading.
(cu_header_offset): New variable for resolving relative reference
dies.
(optimized_out, basereg, islocal, frame_base_reg, frame_base_offset):
New interface variables for decode_locdesc.
(struct dwarf2_pinfo): New structure for communication between
psymtab and symtab reading, passed via pst->read_symtab_private.
(dwarf2_has_info, dwarf2_build_psymtabs): Accept objects files
without line number sections.
(dwarf2_build_psymtabs_hard): Initialize temporary obstack
for symbol reading.
Allocate and initialize pst->read_symtab_private.
Relocate pst->textlow and pst->texthigh with baseaddr.
(scan_partial_symbols): Do not add DW_AT_declaration symbols
to the partial symbol table.
Add file scope enumerator symbols to the partial symbol table.
Fix typo in highpc computation.
If we didn't find a lowpc, set it to highpc to avoid complaints
from `maint check.
(add_partial_symbol): Relocate symbol values with baseaddr.
Add static DW_TAG_subprogram and DW_TAG_variable symbols to the
minimal symbol table.
Obtain symbol values for DW_TAG_variable symbols from the location
descriptor, skip symbols with missing location desciptors.
Skip symbols for aggregate types without children.
Handle enumerator symbols.
(dwarf2_psymtab_to_symtab): Issue symbol reading message if verbose.
(psymtab_to_symtab_1): Set local variables from
pst->read_symtab_private, set cu_header_offset and baseaddr.
Initialize temporary obstack for symbol reading, initialize
buildsym and add a cleanup to really_free_pendings.
Relocate highpc with baseaddr when calling end_symtab.
If the compilation is from a C file generated by language
preprocessors, do not set the symtab language if it was already
deduced by start_subfile.
Removed verbose sorting symbol table message.
(process_die): Handle DW_TAG_ptr_to_member_type and
DW_TAG_reference_type.
Use read_subroutine_type to get the function type for
DW_TAG_subprogram before calling read_func_scope.
(read_file_scope): Initialize file name to <unknown>, start_subfile
expects a non-NULL name.
If we didn't find a lowpc, set it to highpc to avoid complaints
from finish_symbol.
Relocate lowpc and highpc with baseaddr.
Get rid of Irix6.2 native cc compile machine prefix in comp_dir.
Zero out ftypes for each new compilation unit (may be different
language or different objfile).
Accept compilation units without line number information, pass
comp_dir to decode_lines.
(read_func_scope): Initialize function name to <unknown> to avoid
core dumps when DW_AT_name is missing.
Relocate lowpc and highpc with baseaddr.
Handle DW_AT_frame_base, keep result for DW_OP_fbreg operations.
Pass function type to new_symbol.
(read_lexical_block_scope): Relocate lowpc and highpc with baseaddr.
(read_structure_scope): Set TYPE_TAG_NAME, not TYPE_NAME.
Handle DW_TAG_class_type.
Copy fields to type_obstack, release temporary storage for fields.
Don't add symbol if die is a stub die and has no children.
Handle C++ static member fields.
(read_enumeration): Set TYPE_TAG_NAME, not TYPE_NAME.
Copy fields to type_obstack, release temporary storage for fields.
Let new_symbol handle the symbol creation for enumerators
instead of handcrafting a symbol.
Determine signedness of enum type from enumerators.
(dwarf_read_array_type): Handle variable length arrays.
Use lookup_pointer_type instead of handcrafting a type.
Create array type only if a DW_TAG_subrange_type was found.
(read_tag_pointer_type, read_tag_reference_type):
Use lookup_pointer_type and lookup_reference_type instead
of handcrafting a type.
(read_tag_ptr_to_member_type): New function to handle
DW_TAG_ptr_to_member_type.
(read_subroutine_type): Handle parameter dies.
Use lookup_function_type instead of handcrafting a type.
(read_typedef): Allocate a TYPE_CODE_TYPEDEF type for the typedef.
(read_base_type): If the type has a name, use init_type to create
a new type instead of second guessing a fundamental type.
(read_comp_unit): Reset die reference table before building
a new one.
(dwarf2_read_section): Read section contents into psymbol_obstack.
(dwarf2_read_abbrevs): Handle unterminated abbreviations
for a compile unit gracefully.
(read_partial_die): Zero partial die before reading its info.
Handle DW_AT_declaration.
Fix typo in handling of DW_FORM_block4.
(read_full_die): Fix typo in handling of DW_FORM_block4.
(read_1_signed_byte, read_2_signed_bytes, read_4_signed_bytes):
New routines to get signed values from a buffer.
(read_n_bytes, read_string): Allocate storage from the temporary
obstack. If the host char size permits it, return pointer
to buffer instead of allocating storage.
(set_cu_language): Handle DW_LANG_Mips_Assembler.
(dwarf_attr): Return NULL if reference die for DW_AT_specification
or DW_AT_abstract_origin die is not found.
(record_minimal_symbol): Removed, replaced with a direct call to
prim_record_minimal_symbol, it now handles saving the string itself.
(convert_locdesc): Removed, partial symtab reading now uses
decode_locdesc.
(dwarf_attr): Use dwarf2_get_ref_die_offset to get the absolute
offset for the die reference.
(dwarf_decode_lines): Complain if the line section info is missing.
Use read_1_signed_byte to extract lh.line_base to avoid
problems with compilers whose plain char is represented by an
unsigned char.
Add cleanups for allocated temporary storage.
Start a subfile for the first file in the state machine.
Fix off by one problem with dirs.dirs access.
Use comp_dir when directory index is 0.
Support multiple sequences (from Jason Merrill <[email protected]>).
(dwarf2_start_subfile): Try to keep line numbers from identical
absolute and relative file names in a common subfile.
(new_symbol): Allocate symbol and symbol name on the symbol_obstack.
Set SYMBOL_LINE from DW_AT_decl_line if present.
Set SYMBOL_TYPE from passed type if not NULL.
Change DW_TAG_variable symbol types with missing type entries
to a sensible type.
Handle optimized_out, offreg and islocal storage classes.
Add external symbols with type information whose address isn't
known as LOC_UNRESOLVED symbols.
Synthesize typedefs for C++ classes, structs, unions and enumerations.
Handle DW_TAG_enumerator symbols, complain for unrecognized
symbol tags.
(die_type): A missing DW_AT_type represents a void type.
Use dwarf2_get_ref_die_offset to get the absolute offset for
the die reference.
(die_containing_type): New function to build type from
DW_AT_containing_type attribut.
(read_type_die): Handle DW_TAG_ptr_to_member_type.
Treat DW_TAG_subprogram like DW_TAG_subroutine_type.
(dwarf_base_type): Fix typo with creation of FT_UNSIGNED_SHORT
fundamental type.
(create_name): Removed, symbol name allocation is now done
in new_symbol.
(dump_die): Use print_address_numeric to print a CORE_ADDR.
(dwarf2_empty_die_ref_table): New function to clear the die
reference table.
(dwarf2_get_ref_die_offset): New function to get the absolute
die offset from a die reference attribute.
(decode_locdesc): Complete rewrite using a stack, code mostly
borrowed from dwarfread.c:locval.
(dwarf_alloc_type): Removed, replaced by direct calls to alloc_type.
(dwarf_alloc_block): Allocate block on temporary obstack.
* elfread.c (elf_symtab_read): When handling Irix dynamic symbols,
skip section name symbols and relocate all others.
(elf_symfile_read): Build dwarf2 psymtab even if offset is non-zero.
* irix5-nat.c (fetch_core_registers): Handle core_reg_sect
from N32 executables. Call registers_fetched after extracting
the registers.
(obj_list_variant, struct link_map, LM_OFFSET, LM_ADDR): New
definitions to enable support of O32 and N32 format objlists.
(struct so_list): New members offset, so_name and lmstart to
eliminate dependencies from the objlist format used.
(solib_map_sections, symbol_add_stub, solib_add,
info_sharedlibrary_command, solib_address, clear_solib): Use
so_name and LM_OFFSET.
(first_link_map_member): Rewrite to enable support of O32 and N32
format objlists.
(next_link_map_member, xfer_link_map_member): New functions to
support O32 and N32 format objlists.
(find_solib): Use first_link_map_member, next_link_map_member and
xfer_link_map_member.
(solib_create_inferior_hook): Use TARGET_SIGNAL_* instead of
host signal numbers.
* mdebugread.c (parse_partial_symbols, handle_psymbol_enumerators):
Pass CORE_ADDR variant to add_psymbol_to_list.
* mips-tdep.c (heuristic_proc_desc): Stop examining the prologue
if we encounter a positive stack adjustment. Handle `move $30,$sp'.
Handle `sd reg,offset($sp)' for 32 bit ABIs.
* symmisc.c (dump_msymbols, print_partial_symbols): Use
print_address_numeric to print a SYMBOL_VALUE_ADDRESS.
(dump_symtab): Print compilation directory if it is not NULL.
* valops.c (search_struct_field, value_struct_elt_for_reference):
Use SYMBOL_VALUE_ADDRESS instead of SYMBOL_BLOCK_VALUE to get the
address of a static member.
Peter Schauer [Thu, 28 Nov 1996 08:55:13 +0000 (08:55 +0000)]
* vax-tdep.c (vax_print_insn): Made static, modified to take
disassemble_info as parameter.
(_initialize_vax_tdep): New function to initialize tm_print_insn
to vax_print_insn.
* 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.
Jeff Law [Wed, 27 Nov 1996 17:56:10 +0000 (17:56 +0000)]
* simops.c: Implement the remaining 5, 6 and 7 byte instructions.
Everything except the extended instructions, the loop instructions,
trap, rti, and rtm.
Mark Alexander [Wed, 27 Nov 1996 03:40:02 +0000 (03:40 +0000)]
* config/mips/tm-mips.h (ADDR_BITS_REMOVE, TARGET_READ_SP): Define.
(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.
Jeff Law [Wed, 27 Nov 1996 00:53:25 +0000 (00:53 +0000)]
* mn10300_sim.h (_state): Add another register (MDR).
(REG_MDR): Define.
* simops.c: Implement "cmp", "calls", "rets", "jmp" and
a few additional random insns.
We can now function calls. We get out of crt0 into main now, then lose
when calls are nested (because don't handle movm yet).
Jeff Law [Tue, 26 Nov 1996 22:58:24 +0000 (22:58 +0000)]
* mn10300_sim.h (PSW_*): Define for CC status tracking.
(REG_D0, REG_A0, REG_SP): Define.
* simops.c: Implement "add", "addc" and a few other random
instructions.
Starting to simulate instructions for the mn10300. Executes some of
the crt0 code now!
Ian Lance Taylor [Tue, 26 Nov 1996 18:12:44 +0000 (18:12 +0000)]
Add support for mips16 (16 bit MIPS implementation):
* gencode.c (inst_type): Add mips16 instruction encoding types.
(GETDATASIZEINSN): Define.
(MIPS_DECODE): Add REG flag to dsllv, dsrav, and dsrlv. Add
jalx. Add LEFT flag to mfhi and mflo. Add RIGHT flag to mthi and
mtlo.
(MIPS16_DECODE): New table, for mips16 instructions.
(bitmap_val): New static function.
(struct mips16_op): Define.
(mips16_op_table): New table, for mips16 operands.
(build_mips16_operands): New static function.
(process_instructions): If PC is odd, decode a mips16
instruction. Break out instruction handling into new
build_instruction function.
(build_instruction): New static function, broken out of
process_instructions. Check modifiers rather than flags for SHIFT
bit count and m[ft]{hi,lo} direction.
(usage): Pass program name to fprintf.
(main): Remove unused variable this_option_optind. Change
``*loptarg++'' to ``loptarg++''.
(my_strtoul): Parenthesize && within ||.
* interp.c (sim_trace): If tracefh is NULL, set it to stderr.
(LoadMemory): Accept a halfword pAddr if vAddr is odd.
(simulate): If PC is odd, fetch a 16 bit instruction, and
increment PC by 2 rather than 4.
* configure.in: Add case for mips16*-*-*.
* configure: Rebuild.
Ian Lance Taylor [Tue, 26 Nov 1996 16:44:22 +0000 (16:44 +0000)]
Add support for mips16 (16 bit MIPS implementation):
* config/tc-mips.c: Extensive additions for mips16 support, not
listed here.
(RELAX_OLD, RELAX_NEW): Use only 7 bits each.
(insn_uses_reg): Change last parameter to an enum.
* config/tc-mips.h (LOCAL_LABELS_DOLLAR): Define as 0.
(md_relax_frag): Define as mips_relax_frag.
(mips_relax_frag): Declare.
(struct mips_cl_insn): Add use_extend and extend fields.
(tc_fix_adjustable): Define.
* config/obj-elf.h (S_GET_OTHER): Define.
(S_SET_OTHER): Define.
Ian Lance Taylor [Tue, 26 Nov 1996 16:43:03 +0000 (16:43 +0000)]
* elf-bfd.h (struct elf_link_hash_entry): Add other field.
* elf.c (_bfd_elf_link_hash_newfunc): Initialize other field.
(swap_out_syms): Set st_other from existing st_other field.
* elflink.h (elf_link_add_object_symbols): Store st_other in hash
table other field.
(elf_link_output_extsym): Set the other field from the global hash
table entry.
* elf32-mips.c (enum reloc_type): Add R_MIPS16_26.
(elf_mips16_jump_howto): New static variable.
(mips16_jump_reloc): New static function.
(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS16_JMP.
(mips_info_to_howto_rel): Handle R_MIPS16_26.
(mips_elf_relocate_section): Handle R_MIPS16_26. Handle R_MIPS_26
to a mips16 symbol.
* reloc.c (BFD_RELOC_MIPS16_JMP): Add to list of relocs.
* bfd-in2.h, libbfd.h: Rebuild.
* cpu-mips.c (arch_info_struct): Add mips:16 entry.
Ian Lance Taylor [Tue, 26 Nov 1996 15:59:18 +0000 (15:59 +0000)]
Add support for mips16 (16 bit MIPS implementation):
* mips16-opc.c: New file.
* mips-dis.c: Include "elf-bfd.h" and "elf/mips.h".
(mips16_reg_names): New static array.
(print_insn_big_mips): Use print_insn_mips16 in 16 bit mode or
after seeing a 16 bit symbol.
(print_insn_little_mips): Likewise.
(print_insn_mips16): New static function.
(print_mips16_insn_arg): New static function.
* mips-opc.c: Add jalx instruction.
* Makefile.in (mips16-opc.o): New target.
* configure.in: Use mips16-opc.o for bfd_mips_arch.
* configure: Rebuild.
J.T. Conklin [Mon, 25 Nov 1996 22:33:46 +0000 (22:33 +0000)]
* m68k-opc.c (m68k-opcodes): The coldfire (mcf5200) can only use
register operands for immediate arithmetic, not, neg, negx, and
set according to condition instructions.
J.T. Conklin [Mon, 25 Nov 1996 21:39:55 +0000 (21:39 +0000)]
* m68k-opc.c (m68k_opcodes): Consistantly Use "s" as the storage
specifier of the effective-address operand in immediate forms of
arithmetic instructions. The specifier for the immediate operand
notes how and where the constant will be stored.
David Edelsohn [Mon, 25 Nov 1996 21:25:54 +0000 (21:25 +0000)]
* write.c: Delete "ifndef md_relax_frag" around is_dnrange.
(relax_segment, case rs_org): Move code inside braces. Move locals
target,after inside too.
(relax_segment, case rs_machine_dependent): Guts moved to ...
(relax_frag): New function.
Call md_prepare_relax_scan if defined.
* config/tc-m68k.h (md_prepare_relax_scan): Renamed from
M68K_AIM_KLUDGE.
Jeff Law [Mon, 25 Nov 1996 15:59:07 +0000 (15:59 +0000)]
* elf32-mn10300.c (bfd_elf32_mn10300_reloc): New function.
(enum reloc_type): Add more reloc types.
(elf32_mn10300_howto_table): Update for new reloc types.
(elf32_mn10300_reloc_map): Update for new reloc types.
* reloc.c: Add some new relocs for the mn10300 series.
* bfd-in2.h, libbfd.h: Rebuilt.
Last week's reloc work.
Jeff Law [Mon, 25 Nov 1996 15:54:43 +0000 (15:54 +0000)]
* config/tc-mn10300.c (md_assemble): Correctly determine the
correct location and type for each relocation.
(md_pcrel_from): Simplify.
Last week's reloc work.
Fred Fish [Sat, 23 Nov 1996 21:33:08 +0000 (21:33 +0000)]
* gdb.base/a1-selftest.exp: Change x86 linux setup_xfails to
use new i*86-pc-linux*-gnu quads.
* gdb.base/corefile.exp: Ditto.
* gdb.base/signals.exp: Ditto.
* gdb.base/sigall.exp: Ditto.
* gdb.base/interrupt.exp: Ditto.
* gdb.base/signals.exp (signal_tests_1): Remove setup_xfail
"i*86-*-linux" for "signal SIGUSR1". Now works, at least with
RedHat 4.0.
* gdb.threads/pthreads.c (_MIT_POSIX_THREADS): Define if target is
linux. This allows the test case to at least compile on latest
linux, but still not run due to missing the threads runtime library.