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.
Michael Snyder [Mon, 3 Feb 1997 19:18:32 +0000 (19:18 +0000)]
Mon Feb 3 11:06:05 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
* 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 <srinivas@cdotd.ernet.in>:
* 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.
Ian Lance Taylor [Mon, 27 Jan 1997 18:13:01 +0000 (18:13 +0000)]
* elf32-i386.c (elf_i386_size_dynamic_sections): When checking for
relocations against the text segment, look up the output name of
the reloc section.
* elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
* elf32-mips.c (mips_elf_size_dynamic_sections): Likewise.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
* elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Likewise.
Jeff Law [Mon, 27 Jan 1997 17:36:55 +0000 (17:36 +0000)]
* tm-mn10200.h (NUM_REGS): Decrease to 12.
(REGISTER_NAMES): Elimination registers not found on the mn10200.
(PC_REGNUM, MDR_REGNUM, PSW_REGNUM): Corresponding changes.
(LIR_REGNUM, LAR_REGNUM): Delete. They don't exist on the mn10200.
Peter Schauer [Sat, 25 Jan 1997 08:09:53 +0000 (08:09 +0000)]
* dwarf2read.c: Replace integral tag, name and form fields in
internal structure definitions with the corresponding enumeration
types from dwarf2.h. Add default cases to switches on enumerations
where appropriate.
Make quoting of string arguments in complaint messages consistent.
Check for NULL returns from DW_STRING.
(struct partial_die_info): Add sibling and has_type fields, remove
unused value field.
(DW_*): Move access macro definitions near the definition of the
attribute structure.
(struct field_info): New structure to pass information about fields
and member functions between die processing routines.
(dwarf2_build_psymtabs_hard): Set cu_header_offset.
(scan_partial_symbols): Do not enter DW_TAG_subprogram dies into
the partial symbol table if the DW_AT_*_pc attributes are missing.
Add file scope base type definitions to the partial symbol table.
Skip over child dies if the die has a sibling attribute.
(add_partial_symbol): Enter global variables with type attributes
and without location descriptors into the partial symbol table.
Store value of DW_TAG_variable dies in the partial symbol table.
Do not enter global variables into the minimal symbol table.
Add base type definitions to the partial symbol table.
(psymtab_to_symtab_1): Use dwarf2_get_pc_bounds to determine highpc.
(process_die): Move check for DW_AT_low_pc to read_func_scope.
Add a typedef symbol for base type definitions to the symbol table.
Ignore DW_TAG_inlined_subroutine tags for now.
(read_file_scope): Use dwarf2_get_pc_bounds to determine pc bounds.
(read_func_scope, read_lexical_block_scope): Use dwarf2_get_pc_bounds
to determine pc bounds, ignore dies with invalid bounds.
(dwarf2_get_pc_bounds): New routine to extract and validate the
DW_AT_*_pc attributes of a die.
(dwarf2_add_field, dwarf2_attach_fields_to_type, skip_member_fn_name,
dwarf2_add_member_fn, dwarf2_attach_fn_fields_to_type):
New functions to handle fields and member functions.
(read_structure_scope): Rewritten to use them.
(read_array_type): Renamed from dwarf_read_array_type.
Default upper array bound to describe an array with unspecified
length.
Create array types in backwards order, as dwarf2 puts out the array
dimensions from left to right.
(read_subroutine_type): Handle DW_TAG_unspecified_parameters,
DW_AT_artificial and DW_AT_prototyped.
(read_base_type): Make an unsigned type for DW_ATE_boolean.
Pass objfile to dwarf_base_type.
(read_partial_die): Use read_attribute to read in the attributes.
Handle DW_AT_sibling and DW_AT_type.
Follow references when determining DW_AT_name and DW_AT_external
attributes of the die.
Validate DW_AT_*_pc attributes.
(read_full_die): Use read_attribute to read in the attributes.
(read_attribute): New function to read an attribute described
by an abbreviated attribute.
(new_symbol): Relocate symbol value for DW_TAG_label with baseaddr.
Do not set SYMBOL_VALUE_ADDRESS for DW_TAG_subprogram,
SYMBOL_BLOCK_VALUE for the symbol will be set later by finish_block.
Change symbol class for global variables with a zero valued location
descriptor to LOC_UNRESOLVED.
Handle DW_AT_const_value attributes for DW_TAG_variable,
DW_TAG_formal_parameter and DW_TAG_enumerator.
Build a typedef symbol for DW_TAG_base_type.
(dwarf2_const_value): New routine to copy a constant value from an
attribute to a symbol.
(dwarf_base_type): Use passed in objfile, not current_objfile
when calling dwarf2_fundamental_type.
(dump_die): Use DW_* accessor macros to access values of attributes.
(decode_locdesc): Handle DW_OP_plus_uconst.
J.T. Conklin [Fri, 24 Jan 1997 20:14:26 +0000 (20:14 +0000)]
* m68k-opc.c (m68k_opcodes): Changed operand specifier for the
coldfire moveb instruction to not allow an address register as
destination. Although the documentation does not indicate that
this is invalid, experiments uncovered unexpected behavior.
Added a comment explaining the situation. Thanks to Andreas
Schwab for pointing this out to me.
Jeff Law [Fri, 24 Jan 1997 17:46:48 +0000 (17:46 +0000)]
* emulparms/mn10200.sh (OTHER_RELOCATING_SECTIONS): Move the
stack up to 0x80000.
* emulparms/mn10300.sh (OTHER_RELOCATING_SECTIONS): Likewise.
Because we're seeing .text for some of the plumhall tests which exceeds
0x40000 bytes on these machines.
Stu Grossman [Thu, 23 Jan 1997 22:09:52 +0000 (22:09 +0000)]
* configure configure.in Makefile.in: Update to new configure
scheme which is more compatible with WinGDB builds.
* configure.in: Improve comment on how to run autoconf.
* configure: Re-run autoconf to get new ../common/aclocal.m4.
* Makefile.in: Use autoconf substitution to install common
makefile fragment.
Stu Grossman [Thu, 23 Jan 1997 22:08:21 +0000 (22:08 +0000)]
* aclocal.m4 (SIM_AC_COMMON): Move contents of Make-common.in
into here. Makes insertion into makefiles easier. Also, change
the way that callback.o, gentmap, targ-vals.h, targ-map.c,
targ-map.o, and run are built. They are now built in the
individual simulator directories, taking sources from ../common as
necessary. This replaces the merging of libcommon.a into
linsim.a, which was problematic for the WinGDB build process.
* run.c: Include config.h from . instead of ../common.
* Make-common.in: Remove. It's no longer necessary.
Stu Grossman [Thu, 23 Jan 1997 22:07:08 +0000 (22:07 +0000)]
* configure configure.in: Don't configure common anymore. Files
from common are now built in the individual simualtor directories.
This fixes problems with the WinGDB build procedure.