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.
Fred Fish [Thu, 23 Jan 1997 03:17:45 +0000 (03:17 +0000)]
* tic80-opc.c (tic80_opcodes): Expand comment to note that the
entries are presorted so that entries with the same mnemonic are
adjacent to each other in the table. Sort the entries for each
instruction so that this is true.
Fred Fish [Thu, 23 Jan 1997 03:09:05 +0000 (03:09 +0000)]
* coff-tic80.c (tic80coff_vec): Use correct data put/get
routines for little endian data.
* coffcode.h (coff_write_object_contents): Set magic to
TIC80_ARCH_MAGIC for TIc80.
David Edelsohn [Wed, 22 Jan 1997 18:41:50 +0000 (18:41 +0000)]
Patch presumed to have been checked in awhile ago but wasn't.
Mon Nov 25 10:45:14 1996 Doug Evans <dje@seba.cygnus.com>
* 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.
Geoffrey Noer [Wed, 22 Jan 1997 10:38:01 +0000 (10:38 +0000)]
Wed Jan 22 01:31:16 1997 Geoffrey Noer <noer@cygnus.com>
Start mn10200 gdb port by adding copies of mn10300
target-specific files with all instances of mn10300 changed
to mn10200 to start with.
* mn10200-tdep.c: new
* config/mn10200/tm-mn10200.h: new, REGISTER_SIZE is 24 bits not 32,
SP_REGNUM and FP_REGNUM are different, also no lar or lir.
* config/mn10200/mn10200.mt: new
* configure.tgt: add mn10200 entry
Geoffrey Noer [Wed, 22 Jan 1997 09:41:02 +0000 (09:41 +0000)]
Wed Jan 22 01:31:16 1997 Geoffrey Noer <noer@cygnus.com>
Start mn10200 gdb port by adding copies of mn10300
target-specific files with all instances of mn10300 changed
to mn10200 to start with.
* mn10200-tdep.c: new
* config/mn10200/tm-mn10200.h: new, REGISTER_SIZE is 24 bits not 32,
SP_REGNUM and FP_REGNUM are different, also no lar or lir.
* config/mn10200/mn10200.mt: new
Geoffrey Noer [Wed, 22 Jan 1997 01:33:58 +0000 (01:33 +0000)]
Tue Jan 21 17:03:26 1997 Geoffrey Noer <noer@cygnus.com>
* mn10300-tdep.c: wrote/fixed implementations of
mn10300_frame_chain, mn10300_init_extra_frame_info,
mn10300_frame_saved_pc
* config/mn10300/tm-mn10300.h: redefine INIT_EXTRA_FRAME_INFO
and INIT_FRAME_PC macros
Backtracing starting to work correctly.
Stu Grossman [Wed, 22 Jan 1997 01:12:19 +0000 (01:12 +0000)]
* configure.in configure: Check if host has libm. Make sure we
are using gcc when using the -export-dynamic option. Fixes a
problem with building under Solaris/SunPro cc.
J.T. Conklin [Mon, 20 Jan 1997 18:47:48 +0000 (18:47 +0000)]
* config/tc-m68k.c (HAVE_LONG_BRANCH): New macro, returns true for
m68k family cpus which support long branch addressing modes.
(m68k_ip, md_convert_frag_1, md_estimate_size_before_relax,
md_create_long_jump): Use it.
Fred Fish [Sun, 19 Jan 1997 18:33:10 +0000 (18:33 +0000)]
* tic80-dis.c (print_insn_tic80): Broke excessively long
function up into several smaller ones and arranged for
the instruction printing function to be callable recursively
to print vector instructions that have both a load and a
math instruction packed into a single opcode.
* tic80-opc.c (tic80_opcodes): Expand comment for vld opcode
to explain why it comes after the other vector opcodes.
Peter Schauer [Sat, 18 Jan 1997 10:33:06 +0000 (10:33 +0000)]
* blockframe.c (frameless_look_for_prologue): Mark frames
with a zero PC as frameless to improve backtraces from core dumps
caused by dereferencing a NULL function pointer.
Fred Fish [Fri, 17 Jan 1997 04:00:56 +0000 (04:00 +0000)]
* tic80-opc.c (V_a, V_m, V_S, V_Z, V_p, OP_V, MASK_V):
New macros for building vector instruction opcodes.
(tic80_opcodes): Remove all uses of FMT_SI, FMT_REG, and
FMT_LI, which were unused. The field is now a flags field.
Remove some opcodes that are possible, but illegal, such
as long immediate instructions with doubles for immediate
values. Add "vadd" and "vld" instructions.
Fred Fish [Fri, 17 Jan 1997 03:53:46 +0000 (03:53 +0000)]
* tic80.h (struct tic80_opcode): Change "format" field to "flags".
(FMT_UNUSED, FMT_SI, FMT_LI, FMT_REG): Delete.
(TIC80_VECTOR): Define a flag bit for the flags. This one means
that the opcode can have two vector instructions in a single
32 bit word and we have to encode/decode both.
Ian Lance Taylor [Thu, 16 Jan 1997 22:52:05 +0000 (22:52 +0000)]
* ld.h (args_type): Rename auxiliary_filter_shlib to
auxiliary_filters, and make it char **.
* lexsup.c (parse_args): Handle -f by setting up an array.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Use
new name of auxiliary_filters.
Fred Fish [Thu, 16 Jan 1997 02:10:17 +0000 (02:10 +0000)]
* tic80-opc.c (tic80_operands): Reorder some table entries to make
the order more logical. Move the shift alias instructions ("rotl",
"shl", "ins", "rotr", "extu", "exts", "srl", and "sra" to be
interspersed with the regular sr.x and sl.x instructions. Add
and test new instruction opcodes for "sl", "sli", "sr", "sri", "st",
"sub", "subu", "swcr", and "trap".
Geoffrey Noer [Wed, 15 Jan 1997 00:06:41 +0000 (00:06 +0000)]
Tue Jan 14 16:01:06 1997 Geoffrey Noer <noer@cygnus.com>
* mn10300-tdep.c: made a lot more generic, ripping out code
from copied target (no more mn10300_scan_prologue,
init_extra_frame_info, and mn10300_fix_call_dummy calls)
* config/mn10300/tm-mn10300.h: undefine INIT_EXTRA_FRAME_INFO
and INIT_FRAME_PC macros
Ian Lance Taylor [Tue, 14 Jan 1997 20:08:43 +0000 (20:08 +0000)]
* config/tc-i386.c (sco_id): Moved from here...
* config/obj-elf.c (sco_id): ...to here. Adding the identifier
really is an SCO ELF specific thing, not just a SCO x86 specific
thing.
Fred Fish [Mon, 13 Jan 1997 23:05:49 +0000 (23:05 +0000)]
* tic80-dis.c (print_insn_tic80): Print floating point operands
as floats.
* tic80-opc.c (SPFI): Add single precision floating point
immediate operand type.
(ROTATE): Add rotate operand type for shifts.
(ENDMASK): Add for shifts.
(n): Macro for the 'n' bit.
(i): Macro for the 'i' bit.
(PD): Macro for the 'PD' field.
(P2): Macro for the 'P2' field.
(P1): Macro for the 'P1' field.
(tic80_operands): Add entries for "exts", "extu", "fadd",
"fcmp", and "fdiv".
Michael Snyder [Thu, 9 Jan 1997 19:48:27 +0000 (19:48 +0000)]
* sparc-tdep.c (sparc_frame_find_saved_regs): Don't use
FP_REGISTER_BYTES to compute offsets into the saved frame,
since it fails for SPARC targets configured without any
FP regs. Instead, use DUMMY_STACK_REG_BUF_SIZE.
--------------------------------------------------------------------
* config/tc-m68k.c (struct label_line): Define.
(labels, current_label): New static variables.
(md_assemble): Mark current_label as text, and clear it.
(m68k_frob_label): New function.
(m68k_flush_pending_output): New function.
(m68k_frob_symbol): New function.
* config/tc-m68k.h (tc_frob_label): Define.
(md_flush_pending_output): Define.
(tc_frob_symbol): Don't warn, just call m68k_frob_symbol.
(tc_frob_coff_symbol): Likewise.
PR 11417.