Commit graph

274 commits

Author SHA1 Message Date
David S. Miller
f510d44e69 2002-04-24 David S. Miller <davem@redhat.com>
* sparc-tdep.c (sparc_gdbarch_skip_prologue): Kill, duplicates
	sparc_skip_prologue.
	(sparc_skip_prologue): Kill frameless_p arg, and use line number
	information to find prologue when possible.
	(sparc_prologue_frameless_p): Call examine_prologue directly.
	(sparc_gdbarch_init): Update set_gdbarch_skip_prologue call.
	* config/sparc/tm-sparc.h (sparc_skip_prologue): Update for killed
	second argument.
	(SKIP_PROLOGUE): Likewise.
2002-04-26 01:56:04 +00:00
David S. Miller
69cdf6a234 2002-04-20 David S. Miller <davem@redhat.com>
* sparc-tdep.c (sparc_pop_frame): Only need to allocate
	SPARC_INTREG_SIZE * 16 bytes for reg_temp.
2002-04-24 07:12:27 +00:00
David S. Miller
4eb8c7fc85 Revert Sparc OS abi changes. 2002-04-22 03:51:34 +00:00
David S. Miller
99633aa4f8 2002-04-20 David S. Miller <davem@redhat.com>
* sparc-tdep.h: New file.
	* sparc-tdep.c (elf-bfd.h): Include.
	(SPARC_HAS_FPU, FP_REGISTER_BYTES, FP_MAX_REGNUM,
	SPARC_INTREG_SIZE, DUMMY_REG_SAVE_OFFSET, gdbarch_tdep,
	CALL_DUMMY_CALL_OFFSET): Move out to sparc-tdep.h
	(sparc_dump_tdep): New function.
	(_initialize_sparc_tdep): Use gdbarch_register instead of
	register_gdbarch_init which is deprecated.
	(process_note_abi_tag_sections, sparc_abi_handler,
	sparc_abi_handler_list, sparc_gdbarch_register_os_abi): New.
	(sparc_gdbarch_init): Determine elf os ident key based upon
	either the elf header or by using process_note_abi_tag_sections.
	Fix 'gdbarch already exists' test by comparing os_ident as well.
	As the last action, invoke OS abi_handler if installed.
2002-04-22 01:02:02 +00:00
David S. Miller
9319a2feca 2002-04-21 David S. Miller <davem@redhat.com>
* arch-utils.c (generic_prologue_frameless_p): Kill
	SKIP_PROLOGUE_FRAMELESS_P code.
	* config/arc/tm-arc.h (SKIP_PROLOGUE_FRAMELESS_P): Delete
	references.
	(PROLOGUE_FRAMELESS_P, arc_prologue_frameless_p): New.
	* arc-tdep.c (arc_prologue_frameless_p): Implement.
	* config/arc/tm-sparc.h (SKIP_PROLOGUE_FRAMELESS_P): Delete
	references.
	(PROLOGUE_FRAMELESS_P, sparc_prologue_frameless_p): New.
	* sparc-tdep.c (sparc_prologue_frameless_p): Implement.
	(sparc_gdbarch_init): Pass it to
	set_gdbarch_prologue_frameless_p.
2002-04-22 00:27:39 +00:00
Andrew Cagney
bf75c8c166 * sparc-tdep.c (sparc_get_saved_register): Use get_prev_frame
instead of ->prev.
* z8k-tdep.c (z8k_frame_chain): Do not use ->prev.
* s390-tdep.c (s390_frame_chain): Do not use ->prev.
* rs6000-tdep.c (frame_get_saved_regs): Use rs6000_frame_chain()
instead of ->prev.
2002-04-20 03:09:28 +00:00
Andrew Cagney
cda5a58a3e * defs.h (read_relative_register_raw_bytes): Delete declaration.
* frame.c (frame_register_read): New function.  Return non-zero on
success.
(read_relative_register_raw_bytes_for_frame): Delete.
(read_relative_register_raw_bytes): Delete.
* frame.h (frame_register_read): Declare.
* d30v-tdep.c: Update Copyright.  Use frame_register_read.
* sh-tdep.c: Ditto.
* infcmd.c (do_registers_info): Ditto.
* hppa-tdep.c: Ditto.
* rs6000-tdep.c: Ditto.
* h8500-tdep.c: Ditto.
* mips-tdep.c: Ditto.
* h8300-tdep.c: Ditto.
* z8k-tdep.c: Ditto.
2002-04-12 18:18:59 +00:00
Andrew Cagney
f32e7a74f7 * sparc-tdep.c (sparc_push_dummy_frame): Use GDB_TARGET_IS_SPARC64
as test for 64 bit target.
2002-04-06 00:19:44 +00:00
Andrew Cagney
2757dd8645 * sparc-tdep.c (sparc64_write_fp): Delete.
(sparc_push_dummy_frame): Replace write_fp call with code to store
the FP directly.
(sparc_gdbarch_init): Do not initialize write_fp.
2002-04-05 23:38:07 +00:00
Richard Earnshaw
a48442a050 * arc-tdep.c (get_longjmp_target): Only compile this function if JB_PC
is defined.
* sparc-tdep.c (get_longjmp_target): Likewise.
2002-02-20 10:42:59 +00:00
Andrew Cagney
3fd3d7d29c Assume TARGET_BYTE_ORDER_SELECTABLE{,_P} is always true. 2002-01-20 19:26:50 +00:00
Andrew Cagney
c2f05ac92e Eliminate IEEE_FLOAT. 2002-01-20 18:05:54 +00:00
Michael Snyder
902d0061c7 2001-12-30 Michael Snyder <msnyder@redhat.com>
* sparc-tdep.c (sparc-store-return-value): Whitespace fix-up.
2001-12-30 17:00:43 +00:00
Andrew Cagney
778eb05eac LITTLE_ENDIAN -> BFD_ENDIAN_LITTLE 2001-12-15 16:53:24 +00:00
Andrew Cagney
ea7c478fe2 s/value_ptr/struct value */ 2001-07-15 20:10:02 +00:00
Mark Kettenis
aca21d9a80 * sparc-tdep.c (sparc_gdbarch_init): Get the architecture from
info.bfd_arch_info.
2001-05-15 11:38:26 +00:00
Andrew Cagney
93d56215df Gag -Wuninitialized warnings.
Add -Wuninitialized to default warning list.
2001-03-28 21:42:32 +00:00
Kevin Buettner
b6ba6518e9 Update/correct copyright notices. 2001-03-06 08:22:02 +00:00
Andrew Cagney
4e052eda91 Create new file regcache.h. Update all uses. 2001-03-01 01:39:22 +00:00
Andrew Cagney
8e65ff28b0 Add __FILE__ and __LINE__ parameter to internal_error() /
internal_verror().
2001-02-08 06:03:54 +00:00
Michael Snyder
72e22353b1 * sparc-tdep.c: update copyright notice. 2001-01-02 20:37:11 +00:00
Michael Snyder
8140e7acd1 2001-01-02 Michael Snyder <msnyder@cleaver.cygnus.com>
* sparc-tdep.c (sparc-frame-chain): Fix typo in comment.
2001-01-02 20:32:50 +00:00
Michael Snyder
c347ee3e51 2000-12-20 Michael Snyder <msnyder@mvstp600e.cygnus.com>
* arch-utils.c (default_frame_address): New function.  Default
        implementation of frame_args_address and frame_locals_address.
        * arch-utils.h (default_frame_address): Export.
        * d10v-tdep.c (d10v_gdbarch_init): Use default_frame_address.
        (d10v_frame_args_address, d10v_frame_locals_address): Delete.
        * sh-tdep.c (sh_gdbarch_init): Use default_frame_address.
        (sh_frame_args_address, sh_frame_locals_address): Delete.
        * sparc-tdep.c (sparc_gdbarch_init): Use default_frame_address.
        (sparc_frame_address): Delete.
2001-01-02 20:21:53 +00:00
Kevin Buettner
13437d4b4b Reorganize solib.c. 2000-10-24 20:05:36 +00:00
Peter Schauer
9e36d949c4 * sparc-tdep.c (sparc_fix_call_dummy): Improve comments.
Adjust call_dummy_breakpoint_offset, so that `finish' after a stop
	in a call dummy works.
	(sparc_gdbarch_init):  Fix setting of pc_in_call_dummy, it depends
	on SPARC32/64_CALL_DUMMY_ON_STACK, not DO_CALL_DUMMY_ON_STACK.
2000-10-16 17:19:47 +00:00
Andrew Cagney
d0901120f6 * sparc-tdep.c (sparc_init_extra_frame_info): Fix number of
arguments to fetch_instruction.
2000-08-10 23:53:45 +00:00
Kevin Buettner
fba45db2fa Protoization. 2000-07-30 01:48:28 +00:00
Michael Snyder
c60c0f5f88 2000-05-26 Michael Snyder <msnyder@seadog.cygnus.com>
* gregset.h: New file.  Typedefs for gdb_gregset_t and
        gdb_fpregset_t, prototypes for supply_gregset and friends.
        * procfs.c: Include gregset.h.  Delete local prototypes for
        supply_gregset etc., and local typedef gdb_gregset_t etc.
        * sol-thread.c: Include gregset.h, delete local prototypes,
        add appropriate casts to gdb_gregset_t.
        * uw-thread.c, lin-thread.c, core-sol2.c, core-regset.c,
        sparc-tdep.c, ptx4-nat.c, ppc-linux-nat.c, mipsv4-nat.c,
        m88k-nat.c, m68klinux-nat.c, m68k-tdep.c, irix5-nat.c,
        irix4-nat.c, ia64-linux-nat.c, i386v4-nat.c, cxux-nat.c,
        arm-linux-nat.c, alpha-nat.c: Include gregset.h.
        * config/nm-linux.h: Define GDB_GREGSET_T, GDB_FPREGET_T.
        * config/sparc/tm-sun4sol2.h: Ditto.
2000-05-26 23:22:41 +00:00
Michael Snyder
ab9d50c7a8 2000-05-17 Michael Snyder <msnyder@seadog.cygnus.com>
* config/sparc/tm-sun4sol2.h: Turn on multi-arch.
        * sparc-tdep.c (gdb_print_insn_sparc): Remove temp. multi-arch hack.
2000-05-24 17:17:46 +00:00
Michael Snyder
5af923b0f0 2000-05-10 Michael Snyder <msnyder@seadog.cygnus.com>
Make Sparc a Multi-Arch target.  Discard PARAMS macro (require ANSI).
	* sparc-tdep.c: include arch-utils.h.
	(SPARC_HAS_FPU, FP_REGISTER_BYTES, FP_MAX_REG NUM, SPARC_INTREG_SIZE,
	DUMMY_REG_SAVE_OFFSET): provide multi-arch-compatible definitions.
	(GDB_TARGET_IS_SPARC64): make into a runtime test.
	(struct frame_extra_info): Define, use instead of the macro.
	(Many places): Use alloca instead of statically allocated buffers
	that depend on a multi-arch variable such as MAX_REGISTER_RAW_SIZE.
	(sparc_extract_struct_value_address): Accept a pointer arg instead
	of an array sized by REGISTER_BYTES.
	(examine_prologue): Accept a pointer to an array of CORE_ADDR,
	instead of the defunct struct frame_saved_regs.  Recognize new
	Sparc64 store instructions as part of the prologue.  Ignore the
	destination of a frame store when parsing the prologue (so long
	as it's on the stack).
	(sparc_push_dummy_frame): Fix incorrect buffer offset for PSTATE.
	(sparc_frame_find_saved_regs): Accept a ptr to an array of CORE_ADDR
	instead of the defunct struct frame_saved_regs.
	(supply_gregset): Discard unnecessary 'zerobuf': just send NULL to
	supply_register.  Provide 4-byte offset to compensate for diff
	between size of the prgreg_t elements on a 64-bit host and size
	of the registers for a 32-bit target.  Fill all inaccessible regs
	with zero so they won't keep being requested again and again.
	(fill_gregset): Handle 32/64 size difference between registers
	and prgreg_t.  Handle as many new 64-bit regs as possible.
	(supply_fpregset, fill_fpregset): Attempt to handle 64-bit world.
	(sparc_push_arguments): Rename to sparc32_push_arguments.
	Copy arguments into registers as well as onto stack, so that the
	CALL_DUMMY (code pushed onto the target stack) is not required.
	(sparc_extract_return_value): Rename to sparc32_extract_return_value.
	(sparc_store_return_value): Use memset instead of bzero.
	Use write_register_gen instead of write_register_bytes.
	(sparclet_store_return_value): New function.
	(_initialize_sparc_tdep): Call register_gdbarch_init to activate
	the gdbarch multi-architecture system.
	(sp64_push_arguments): Rename to sparc64_push_arguments.
	Extend to store arguments in general registers as well as on stack.
	(sparc64_extract_return_value): Rename to sp64_extract_return_value.
	Use as a private function, to be called by the new external function
	sparc64_extract_return_value.
	(sparclet_extract_return_value): New function.
	(sparc32_stack_align, sparc64_stack_align, sparc32_register_name,
	sparc64_register_name, sparc_print_extra_frame_info,
	sparclite_register_name, sparclet_register_name,
	sparc_push_return_address, sparc64_use_struct_convention,
	sparc32_store_struct_return, sparc64_store_struct_return,
	sparc32_register_virtual_type, sparc64_register_virtual_type,
	sparc32_register_size, sparc64_register_size,
	sparc32_register_byte, sparc64_register_byte,
	sparc_gdbarch_skip_prologue, sparc_convert_to_virtual,
	sparc_convert_to_raw, sparc_frame_init_saved_regs,
	sparc_frame_address, sparc_gdbarch_fix_call_dummy,
	sparc_coerce_float_to_double, sparc_call_dummy_address,
	sparc_y_regnum, sparc_reg_struct_has_addr, sparc_intreg_size,
	sparc_return_value_on_stack): New functions supporting multi-arch.
	(sparc_gdbarch_init): New function; initialize multi-arch.
	(struct gdbarch_tdep): Define, use for private multi-arch data.
	* config/sparc/tm-sparc.h: Move definitions around, enclose with
	#ifdef GDB_MULTI_ARCH tests, provide some multi-arch alternate
	definitions.  Add enums for register names, to help debugging gdb.
	This header file must work for non-multi-arch and for multi-arch.
	* config/sparc/tm-sp64.h: Add GDB_MULTI_ARCH configuration.  Also add
	AT_ENTRY_POINT definitions for CALL_DUMMY, for non-multi-arch case.
	Define GDB_MULTI_ARCH.
	* config/sparc/tm-sparclet.h: Add GDB_MULTI_ARCH configuration.
	Do not define GDB_MULTI_ARCH (bfd does not correctly identify target).
	* config/sparc/tm-sparclite.h: Ditto.
	* config/sparc/tm-sun4sol2.h: Define GDB_MULTI_ARCH.
	* sparclet-rom.c (sparclet_regnames): Initialize explicitly, to
	avoid using deprecated REGISTER_NAMES macro.
	* Makefile.in: Let sparc-tdep.c depend on arch-utils.h.
2000-05-10 20:07:25 +00:00
Michael Snyder
6005439332 2000-05-08 Michael Snyder <msnyder@seadog.cygnus.com>
* gdbarch.sh: Add FP0_REGNUM to list of multi-arched register numbers.
        * gdbarch.c, gdbarch.h: Regenerate.
        * core-regset.c: Change FP0_REGNUM to a runtime test.
        * procfs.c: Ditto.
        * sun3-nat.c: Ditto.
        * sparc-tdep.c: Ditto.

        * i386mach-nat.c: Remove unnecessary ifdef for FP0_REGNUM.
        * ptx4-nat.c: Ditto.

        * sol-thread.c (sol_thread_create_inferior): only add the thread
        to the thread list if it is not already in there.
        (prototypes for thread_db func ptrs): pretty up formatting.
2000-05-10 17:38:16 +00:00
Jason Molenda
2acceee218 import gdb-1999-10-04 snapshot 1999-10-05 23:13:56 +00:00
Jason Molenda
96baa820df import gdb-1999-08-09 snapshot 1999-08-09 21:36:23 +00:00
Jason Molenda
c5aa993b1f import gdb-1999-07-07 post reformat 1999-07-07 20:19:36 +00:00
Jason Molenda
9846de1bb5 import gdb-1999-07-07 pre reformat 1999-07-07 17:31:57 +00:00
Stan Shebs
b83266a0e1 import gdb-19990504 snapshot 1999-05-05 14:45:51 +00:00
Stan Shebs
7a292a7adf import gdb-19990422 snapshot 1999-04-26 18:34:20 +00:00
Stan Shebs
c906108c21 Initial creation of sourceware repository 1999-04-16 01:35:26 +00:00
Stan Shebs
071ea11e85 Initial creation of sourceware repository 1999-04-16 01:34:07 +00:00
Mark Alexander
cda8a2bb4f * sparc-tdep.c (sparc_target_architecture_hook): Set target
byte order only when it's selectable.
1998-06-03 02:08:06 +00:00
Mark Alexander
33c65ba3b3 * sparc-tdep.c (sparc_target_architecture_hook): New function to
set endianness based on machine type.
	(_initialize_sparc_tdep): Initialize target_architecture_hook.
	(sparc_print_register_hook): Print PSR and FPSR in fancy format
	on 32-bit machines.
	* config/sparc/tm-sparc.h (PRINT_REGISTER_HOOK): Redefine to
	call sparc_print_register_hook instead of using inline code.
	* config/sparc/tm-sp64.h (PRINT_REGISTER_HOOK): Remove.
1998-06-02 09:19:54 +00:00
Mark Alexander
e50f526e68 * sparc-tdep.c (sparc_extract_struct_value_address): Make it
work correctly on little-endian hosts.
	(sparc_push_arguments): New function.
	(gdb_print_insn_sparc): New function.
	(_initialize_sparc_tdep): Make gdb_print_insn_sparc the default
	disassembler, so that SPARClite-specific instructions will
	be recognized.
	* sparcl-tdep.c (readchar): Print debugging information.
	(debug_serial_write): New function, a replacement for SERIAL_WRITE
	that prints debugging information.
	* config/sparc/tm-sparc.h (PUSH_ARGUMENTS): Define.
	(sparc_push_arguments): Declare.
1998-04-15 00:25:58 +00:00
Stu Grossman
91550191be * defs.h printcmd.c: Create global disassemble_info structure
tm_print_insn_info.
	* gdbtk.c (gdb_disassemble):  Setup di.mach from
	tm_print_insn_info.mach, and set endian from TARGET_BYTE_ORDER.
	* i386-tdep.c (set_assembly_language_command):  set
	tm_print_insn_info.mach to the appropriate value for 386 or 8086
	disassembly.
	* printcmd.c (print_insn):  Move init of disassembler_info to
	_initialize_printcmd.  Set endian for disassembler here.
	* sparc-tdep.c:  Set tm_print_insn_info.mach as appropriate to
	select sparc/sparclite.
	* config/sparc/{tm-sparc.h tm-sparclite.h}:  Get rid of
	TM_PRINT_INSN.  Set TM_PRINT_INSN_MACH to
	bfd_mach_sparc/bfd_mach_sparc_sparclite.
1996-07-15 23:54:39 +00:00
Stu Grossman
89e673a481 * sparcl-tdep.c (_initialize_sparc_tdep) config/sparc/tm-sparc.h,
config/sparc/tm-sparclite.h:  Initialize tm_print_insn from
	TM_PRINT_INSN, which comes from the tm file.

	* Makefile.in (INTERNAL_LDFLAGS):  Add in flags from configure.
	* configure configure.in:  Only make sol-thread.o for native.
	Also, switch to dlopened libthread_db.so.1.
	* sol-thread.c:  Switch to using dlopen to get the thread_db
	library.

	* configure, configure.in:  Change test for libthread_db to only
	work for configs where build/host/target are the same.
1996-07-04 00:49:25 +00:00
Dawn Perchik
012be3cec3 * configure,configure.in: Add target sparclet.
* monitor.h,monitor.c:
    Added monitor flags MO_NO_ECHO_ON_SETMEM (don't expect echo on
    setmem command), MO_RUN_FIRST_TIME (if command to start process
    running on target is different from one to continue execution),
    MO_HEX_PREFIX (if addresses from monitor have a "0x" prefix).
    * monitor.c,parse.c,sparc-tdep.c:
    Don't require strings in the registers array.  This is to allow
    NULLs to be place holders in the tm-*.h file so that only minor
    changes are needed when a new processor is introduced (eg, one
    without floating point).
    * sparc-tdep.c: Conditionally remove dependancies on floating point.
    * sparclet-rom.c,config/sparc/sparclet.mt,config/sparc/tm-sparclet.h:
    New files for target sparclet.
    * symfile.c: Add option for 2nd parameter on load command : a load
    offset added to the vma of each section.
1996-06-28 14:03:13 +00:00
Peter Schauer
673e1bab44 * sparc-tdep.c (isbranch): Fix typo which caused wrong
target addresses for annulled branches.
1995-08-18 13:27:21 +00:00
Peter Schauer
e4dbd248df * alpha-tdep.c: Move sigtramp handling of saved registers from
read_next_frame_reg to alpha_find_saved_regs, handle saved
	floating point registers.
	* mips-tdep.c:  Move sigtramp handling of saved registers from
	read_next_frame_reg to mips_find_saved_regs, handle saved
	floating point registers.
	* config/mips/tm-irix3.h, config/mips/tm-irix5.h,
	config/mips/tm-mipsv4.h (SIGFRAME_FPREGSAVE_OFF):  Define.

	* sparc-tdep.c (sparc_pc_adjust):  Fix check for `unimp'
	instruction to handle functions returning structures with
	large sizes properly.
1995-07-29 08:50:00 +00:00
Peter Schauer
b9e585030c * buildsym.c (patch_subfile_name): Update last_source_file
with the real source file name.
	* dbxread.c (end_psymtab):  Handle static functions in the
	SOFUN_ADDRESS_MAYBE_MISSING case by passing pst->filename
	to lookup_minimal_symbol.
	(process_one_symbol):  Ignore extra outermost context from
	SunPRO cc and acc.
	* stabsread.c (define_symbol):  Do not complain for SunPRO
	static variable encoding if STATIC_TRANSFORM_NAME is defined.
	* sparc-tdep.c, config/sparc/tm-sun4sol2.h
	(sunpro_static_transform_name):  Renamed from
	solaris_static_transform_name.
	* config/sparc/tm-sun4os4.h (STATIC_TRANSFORM_NAME):
	Define to sunpro_static_transform_name for acc 3.0 compiled
	executables.
	* procfs.c, config/alpha/nm-osf2.h (PROCFS_DONT_TRACE_FAULTS):
	Renamed from PROCFS_DONT_TRACE_IFAULT, don't trace any faults
	if defined.
	* procfs.c (info_proc_siginfo):  Cast sip->si_addr to
	`unsigned long' and use `lx' format for printing it.
1995-03-25 09:23:10 +00:00
David Edelsohn
8b0f5a9df9 * sparc-tdep.c (decode_asi): New function.
(sparc_print_register_hook): Pretty print more v9 registers.
1995-03-03 09:06:51 +00:00
Jim Kingdon
888a18ee77 * sparc-tdep.c, a29k-tdep.c, findvar.c (get_saved_register):
if !target_has_registers, call error().
1994-12-20 21:06:13 +00:00
Peter Schauer
6cb4e9e036 * sparc-tdep.c (sparc_pop_frame): Remove erroneous extra argument
to write_register.
1994-12-18 19:55:28 +00:00
Jim Kingdon
ee7b9e92f6 * tm-sparc.c (EXTRA_FRAME_INFO): New field sp_offset.
* sparc-tdep.c (sparc_init_extra_frame_info): Set it.
	(examine_prologue, sparc_init_extra_frame_info): Use ->frame plus
	->sp_offset to compute the address something is saved at, not
	->bottom.

	* sparc-tdep.c (get_saved_register): New function.
	* tm-sparc.h: Define GET_SAVED_REGISTER; don't define
	FRAME_FIND_SAVED_REGS, HAVE_REGISTER_WINDOWS or REGISTER_IN_WINDOW_P.
	* stack.c (frame_info): Add comment about what to do if
	FRAME_FIND_SAVED_REGS is not defined.

	* sparc-tdep.c (sparc_init_extra_frame_info): Set ->frame field
	here.  Get it right for flat frames.
	* sparc-tdep.c (sparc_frame_chain): Instead of returning
	meaningful value for ->frame field, just return dummy value.
	This change is needed because the old code didn't deal with mixed
	flat and non-flat frames.

	* sparc-tdep.c (sparc_pop_frame): Write SP_REGNUM from
	frame->frame, don't go through saved regs for this.

	* sparc-tdep.c: Move guts of skip_prologue to new function
	examine_prologue.  Check for flat prologue and set is_flat.
	Provide the caller with the information about what is saved where
	if desired.
	(skip_prologue, sparc_frame_find_saved_regs): Call examine_prologue.

	* sparc-tdep.c: Replace union sparc_insn_layout and anonymous
	union in isannulled, which won't work on a little-endian host,
	with X_* macros.

	* sparc-tdep.c (sparc_frame_saved_pc): If addr == 0, the saved PC
	is still in %o7.

	* config/sparc/tm-sparc.h: Define INIT_FRAME_PC and
	INIT_FRAME_PC_FIRST.
	* blockframe.c (get_prev_frame_info): Modify comments regarding
	INIT_FRAME_PC_FIRST and the sparc.

	* sparc-tdep.c (single_step): Use 4 not sizeof (long) for size of
	instruction.
1994-12-18 06:59:12 +00:00
Peter Schauer
84bdfea6aa * c-typeprint.c (c_type_print_base): Use `show' of -1 to print
the return type of methods to avoid infinite loops with anonymous
	types.
	* valops.c (search_struct_field):  Handle anonymous unions.

	* sparc-tdep.c (sunos4_skip_trampoline_code):  New function
	to correctly handle steps into -g compiled PIC objects in the
	main executable.
	* config/sparc/tm-sun4os4.h (SKIP_TRAMPOLINE_CODE):
	Redefine to use sunos4_skip_trampoline_code.

	* dwarfread.c (DWARF_REG_TO_REGNUM):  Provide a default mapping
	from DWARF to GDB register numbering.
	* dwarfread.c (locval):  Use DWARF_REG_TO_REGNUM to map the
	register value.
	* config/mips/tm-mipsv4.h (DWARF_REG_TO_REGNUM):  Define.
1994-12-17 10:46:32 +00:00
Peter Schauer
7621229598 Speed up GDB startup time by not demangling partial symbols.
* symfile.h (ADD_PSYMBOL_VT_TO_LIST),
	symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list):
	No longer demangle partial symbols.
	* symtab.c (lookup_symbol, list_symbols): Handle mangled
	variables, e.g. C++ static members, via the minimal symbols.

	Handle reordered functions in an objfile, for Irix 5.2 shared
	libraries.
	* objfiles.h (OBJF_REORDERED):  New bit in the objfile flags,
	set if the functions in an objfile are reordered.
	* mdebugread.c (parse_partial_symbols):  Detect reordered
	functions in an objfile.
	* symtab.c (find_pc_psymtab, find_pc_symtab):  Use expensive
	lookup algorithm if the functions in the objfile are reordered.

	* xcoffexec.c (exec_close):  If the current target has a copy
	of the exec_ops sections, reflect the freeing of the sections
	in current_target.

	* valops.c (call_function_by_hand):  Use `sizeof dummy1', not
	`sizeof dummy', for constructing the call dummy code.

	* config/sparc/tm-sparc.h:  Add PARAMS declarations to all
	function declarations.
	* sparc-tdep.c (sparc_pop_frame):  Cast result of
	read_memory_integer to CORE_ADDR when passing it to PC_ADJUST.

	* irix5-nat.c (enable_break):  Set breakpoint at the entry point
	of the executable, to handle the case where main resides in a
	shared library.
	* irix5-nat.c (solib_create_inferior_hook):  Reset stop_soon_quietly
	after shared library symbol reading, to get rid of a warning from
	heuristic_proc_start if the startup code has no symbolic debug info.

	* breakpoint.h (struct breakpoint):  Add new fields language
	and input_radix, to enable breakpoint resetting with the
	proper language and radix.
	* breakpoint.c (set_raw_breakpoint):  Initialize them.
	(breakpoint_re_set_one):  Use them when resetting the breakpoint.
	(breakpoint_re_set):  Preserve current language and input_radix
	across breakpoint_re_set_one calls.

	* symtab.c (decode_line_1):  Do not build a canonical line
	specification for `*expr' line specifications.

	* breakpoint.h (bpstat_stop_status):  Fix prototype declaration.
1994-10-08 11:54:29 +00:00
Jim Kingdon
16726dd15b The point of these changes is to avoid reading the frame pointer
and stack pointer during stepping, to speed things up.
	A.  Changes to not select a frame until we need a selected frame:
	    * blockframe.c (flush_cached_frames): Call select_frame (NULL, -1).
	    * infrun.c (wait_for_inferior): Move call to select_frame back to
	    normal_stop.  This reverts a change of 13 Apr 94 (it says Jeff
	    Law, but the change was my idea); the only reason for that change
	    was so we could save and restore the selected frame in
	    wait_for_inferior, and now that flush_cached frames clears the
	    selected frame, that should work OK now.
	B.  Changes to not create a current_frame until we need one:
	    * blockframe.c (get_current_frame): If current_frame is NULL, try
	    to create an innermost frame.
	    * sparc-tdep.c (sparc_pop_frame), infcmd.c (run-stack_dummy),
	    infrun.c (wait_for_inferior), thread.c (thread_switch),
	    convex-tdep.c (set_thread_command), a29k-tdep.c (pop_frame),
	    alpha-tdep.c (alpha_pop_frame), convex-xdep.c (core_file_command),
	    h8300-tdep.c (h8300_pop_frame), h8500-tdep.c (h8300_pop_frame),
	    hppa-tdep.c (hppa_pop_frame), i386-tdep.c (i386_pop_frame),
	    i960-tdep.c (pop_frame), m68k-tdep.c
	    (m68k_pop_frame), mips-tdep.c (mips_pop_frame), rs6000-tdep.c
	    (push_dummy_frame, pop_dummy_frame, pop_frame), sh-tdep.c
	    (pop_frame), config/arm/tm-arm.h (POP_FRAME),
	    config/convex/tm-convex.h (POP_FRAME), config/gould/tm-pn.h
	    (POP_FRAME), config/ns32k/tm-merlin.h (POP_FRAME),
	    config/ns32k/tm-umax.h (POP_FRAME), config/tahoe/tm-tahoe.h
	    (POP_FRAME), config/vax/tm-vax.h (POP_FRAME): Don't
	    call create_new_frame.
	    * corelow.c (core_open), altos-xdep.c (core_file_command),
	    arm-xdep.c (core_file_command), gould-xdep.c (core_file_command),
	    m3-nat.c (select_thread), sun386-nat.c (core_file_command),
	    umax-xdep.c (core_file_command): Don't call create_new_frame; do
	    call flush_cached_frames.
	    * blockframe.c (reinit_frame_cache): Don't call create_new_frame
	    or select_frame.
	C.  Changes to get rid of stop_frame_address and instead only
	fetch the frame pointer when we need it.
	    * breakpoint.c (bpstat_stop_status): Remove argument
	    frame_address; use FRAME_FP (get_current_frame ()).
	    * infrun.c (wait_for_inferior): Don't pass frame pointer to
	    bpstat_stop_status.
	    * infrun.c (wait_for_inferior): Use FRAME_FP (get_current_frame
	    ()) instead of stop_frame_address.
	    * infrun.c (save_inferior_status, restore_inferior_status),
	    inferior.h (struct inferior_status): Don't save and restore
	    stop_frame_address.
	    * inferior.h, infcmd.c, thread.c (thread_switch), m3-nat.c
	    (select_thread): Remove stop_frame_address and uses thereof.
	D.  Same thing for the stack pointer.
	    * infrun.c (wait_for_inferior): Remove stop_sp and replace
	    uses thereof with read_sp ().
	E.  Change to eliminate one nasty little spot where we were
	wanting to know the frame pointer from before the current step
	(idea from GDB 3.5, which saved my ass, because my other ideas of
	how to fix it were very baroque).
	    * infrun.c: Remove prev_frame_address.
	    * infrun.c (wait_for_inferior, step_over_function): Use
	    step_frame_address instead of prev_frame_address.
	F.  Same basic idea for the stack pointer.
	    * inferior.h, infcmd.c: New variable step_sp.
	    * infcmd.c (step_1, until_next_command): Set it.
	    * infrun.c: Remove prev_sp and replace uses by step_sp.
	    * infrun.c (wait_for_inferior): If we get out of the step
	    range, then set step_sp to the current stack pointer before we
	    start going again.
1994-10-08 03:41:21 +00:00
Jim Kingdon
94d4b71373 * Makefile.in (TAGS): Use variables directly, rather than using
find, to locate TM_FILE, XM_FILE, and NAT_FILE.  This is faster
	and means that these filenames no longer need be unique across all
	the config/* directories.
	* configure.in: Put the config/*/ into TM_FILE, etc.

	* m68k-stub.c (computeSignal): Return SIGFPE, not SIGURG, for chk
	and trapv exceptions.

	* target.h (struct section_table), objfiles.h (struct obj_section):
	Change name of field sec_ptr to the_bfd_section.  More mnemonic
	and avoids the (sort of, for the ptx compiler) name clash with
	the name of the typedef.
	* exec.c, xcoffexec.c, sparc-tdep.c, rs6000-nat.c, osfsolib.c,
	solib.c, irix5-nat.c, objfiles.c, remote.c: Change users.

	* utils.c: Include readline.h.
	* Makefile.in (utils.o): Add dependency.

	* remote.c (getpkt): Add support for run-length encoding.
1994-03-19 18:49:50 +00:00
Jim Kingdon
4879254531 * i387-tdep.c, i386-tdep.c i386v-nat.c, i386aix-nat.c,
i386m3-nat.c, config/m68k/tm-m68k.h, i960-tdep.c
	config/i960/tm-i960.h, remote-nindy.c, config/m88k/tm-m88k.h,
	m88k-tdep.c: Use floatformat.h instead of ieee-float.h.
	* sparc-tdep.c: Remove now-obsolete ieee-float.h stuff
	* findvar.c: Update comment regarding ieee-float.h.
1994-02-28 06:06:05 +00:00
Stu Grossman
8bf94f44bc * sparc-tdep.c, lynx-nat.c, config/sparc/tm-sparc.h,
config/sparc/tm-sparclynx.h:  Move defs of FRAME_SAVED_I0/L0 to
	tm-sparc.h so they can be overridden if necessary.
1994-01-22 08:42:14 +00:00
Peter Schauer
f1de67d323 * infrun.c (normal_stop): Set stop_pc after popping the dummy frame
in case execution was stopped in the called function.
	* stack.c (print_frame_info, frame_info):  If backtracing through
	a call dummy, handle the starting source line number on a line
	boundary like backtracing through sigtramp.
	* sparc-tdep.c (sparc_frame_find_saved_regs):  Get frame address
	for call dummy frame right.  Remove old test for dummy frame,
	it has been unused at least since gdb-3.5.
	* sparc-tdep.c (sparc_push_dummy_frame):  Set return address register
	of the dummy frame.
1994-01-19 20:45:30 +00:00
Jim Kingdon
34df79fc9d * findvar.c, defs.h
({extract,store}_{signed_integer,unsigned_integer,address}):
	New routines to replace SWAP_TARGET_AND_HOST.
	All over: All uses of SWAP_TARGET_AND_HOST on integers replaced.
1993-07-10 01:35:53 +00:00
Jim Kingdon
dd99f8e4b2 * sparc-tdep.c (sparc_push_dummy_frame): Skip all the do_save_insn
stuff, just write the sp and fp.
	(sparc_pop_frame): Skip the do_restore_insn; we already restore
	the sp with the other out registers.
1993-07-09 03:53:46 +00:00
David Edelsohn
6ac063909f (sparc_frame_chain): Handle sizeof (CORE_ADDR) != sizeof (REGISTER_TYPE).
(frame_saved_pc): Ditto.
1993-07-08 15:47:41 +00:00
Jim Kingdon
4365c36c9b * objfiles.h (obj_section), objfiles.c (build_objfile_section_table):
Add objfile field.
	* objfiles.c (find_pc_section): Return a struct obj_section *.
	* sparc-tdep.c (in_solib_trampoline): Deal with find_pc_section return.
	* symfile.c (syms_from_objfile) [IBM6000_TARGET]:
	Don't use obj_section hack.
	* xcoffexec (vmap_symtab): Relocate obj_sections.
	* printcmd.c (containing_function_bounds): Use find_pc_section.
1993-04-22 20:42:37 +00:00
K. Richard Pixley
2093fe6840 Teach sparc solaris to next over shared library functions.
* solib.[hc] (find_pc_section_from_so_list): new function and
  prototype.
* sparc-tdep.c (in_solib_trampoline): new function.
* symfile.[hc] (find_pc_section): new function and prototypes.
* target.[hc] (find_pc_section_from_targets): new function and
  prototypes.
* config/sparc/tm-sun4sol2.h (IN_SOLIB_TRAMPOLINE): redefine to
  in_solib_trampoline.
1993-03-31 00:29:22 +00:00
John Gilmore
b38f304c4f * putenv.c: index -> strchr.
* regex.c:  Always rename bcopy to memcpy, etc.
FIXME:  Eventually do the renames rather than use #define's.
* sparc-tdep.c (deferred_stores):  Moved from sparc-xdep.c.
Fix bcopy->memcpy.
* sparc-xdep.c:  Move deferred_stores to target dependent.
1992-09-26 09:04:24 +00:00
Fred Fish
51b57ded88 * dbxread.c, i386-pinsn.c, i386-tdep.c, regex.c, solib.c, symmisc.c,
symtab.h, tm-i386v4.h, valprint.c, values.c:  Lint.
	* breakpoint.c, c-exp.y, coffread.c, command.c, environ.c, eval.c,
	findvar.c, infcmd.c, infptrace.c, infrun.c, m2-exp.y, parse.c,
	putenv.c, solib.c, sparc-xdep.c, symtab.c, tm-i386v.h, tm-sparc.h,
	utils.c, valarith.c, valops.c, valprint.c, values.c:
	Replace bcopy() use with memcpy(), which is more standard and can
	take advantage of gcc's builtin functions for increased performance.
	* breakpoint.c, buildsym.c, coffread.c, dbxread.c, i386-tdep.c,
	ieee-float.c, infcmd.c, sparc-tdep.c, stack.c, symtab.c, symtab.h,
	target.c, values.c:
	Replace bzero() use with memset(), which is more standard and can
	take advantage of gcc's builtin functions for increased performance.
	* i386-tdep.c, main.c, valprint.c:
	Replace bcmp() use with memcmp(), which is more standard and can
	take advantage of gcc's builtin functions for increased performance.
1992-06-29 23:34:38 +00:00
John Gilmore
8f86a4e465 * remote.c (getpkt): Error if input exceeds buffer size.
(_initialize_remote):  `set remotedebug' enables packet trace.

* dbxread.c (process_one_symbol:N_FUN):  GCC now produces relative
N_SLINE's, etc, just like Sun cc on Solaris2.

* am29k-tdep.c (read_register_stack, write_register_stack):
Change RSTACK_HIGH_ADDR to rstack_high_address, a user-settable
variable.  Add `set' and `show' commands for it.
* doc/gdb.texinfo:  Document it.

* eval.c:  Avoid residue-by-zero when evaluating without side effects.
(Bug and fix found by Pierre Willard.)

* sparc-tdep.c:  Clean up slightly for Solaris2.
1992-06-19 21:09:54 +00:00
John Gilmore
f9e3b3ccc2 * target.c (nomemory): Now that higher levels examine errno, give EIO.
* tm-sparc.h:  Don't #include <sun4/reg.h>.
* sparc-tdep.c (sparc_frame_chain, frame_saved_pc):  Remove
dependency on <sun4/reg.h>.  Start to handle cross-byte-order.
* language.h:  Avoid forward enum declaration.
* configure.in, tm-sun4os5.h, xm-sun4os5.h, config/sun4os5.mh,
config/sun4os5.mt:  New host and target.
* defs.h (errno): #include <errno.h> rather than assuming int.
From Pierre Willard.
1992-03-29 23:14:34 +00:00
John Gilmore
5e5215eba7 * mcheck.c: Avoid warning about undeclared abort fn.
* tm-sparc.h (PC_ADJUST):  Avoid calling error() from this;
it causes recursive calls to error() when used in cleanups.
To do so requires that we make it a function, so we do.
* sparc-tdep.c (sparc_pc_adjust):  New implem of PC_ADJUST.
* utils.c (do_cleanups):  Remove the current cleanup from the
chain *before* calling it, in case error() is called from it.
The result won't be pretty, but won't be an infinite loop either.
1991-08-20 03:02:39 +00:00
John Gilmore
5259796be2 * blockframe.c (frameless_look_for_prologue): Speed up by
calling SKIP_PROLOGUE_FRAMELESS_P if it's defined.
        * tm-sparc.h (SKIP_PROLOGUE, SKIP_PROLOGUE_FRAMELESS_P):
        Define two variants, one faster.
        * sparc-tdep.c (sparc_frame_chain):  Use target_read_memory
        and return zero, rather than giving an error.
        (setup_arbitrary_frame):  Initialize the PC in the new frame.
        (skip_prologue):  Add a second arg saying whether we're just
        checking for a frameless function or not.
1991-08-14 00:00:25 +00:00
John Gilmore
d11c44f1ee Roll in Tiemann changes for gcc -ansi. Fix assorted bugs. See ChangeLog. 1991-05-30 08:52:52 +00:00
Jim Kingdon
9a822037b1 *** empty log message *** 1991-04-23 01:11:11 +00:00
Jim Kingdon
192cbba944 * sparc-tdep.c (skip_prologue): Don't skip anything unless there
is a "save" instruction in there somewhere.
1991-04-22 21:40:42 +00:00
K. Richard Pixley
bd5635a1e2 Initial revision 1991-03-28 16:26:26 +00:00