Commit Graph

146 Commits

Author SHA1 Message Date
Jeff Law c5152d4234 * paread.c (compare_unwind_entries): Delete function. It's been
moved into hppa-tdep.c.
        (read_unwind_info): Likewise.
        (pa_symfile_read): No longer call read_unwind_info.  The unwind
        tables will be read in as they are needed.

        * hppa-tdep.c (compare_unwind_entries): New function.
        (read_unwind_info, internalize_unwinds): Likewise.
        (find_unwind_entry): Read in unwind information on demand.
1994-04-17 05:22:39 +00:00
Jeff Law 4f91591410 * hppa-tdep.c (hppa_fix_call_dummy): If FUN is a procedure label,
then gets its real address into FUN and its GOT/DP value into %r19.

        * tm-hppa.h (CALL_DUMMY): Use %r20, not %r19 as a temporary.
1994-04-06 00:56:36 +00:00
Jeff Law 7f43b9b70d * hppa-tdep.c (frameless_function_invocation): If no unwind
descriptor was found, then assume this was not a frameless
        function invocation.
        (frame_saved_pc): If the saved PC is in a linker stub, then
        return the return address which the linker stub will return to.
1994-04-06 00:51:50 +00:00
Jeff Law 19cd0c1f75 * hppa-tdep.c (hppa_fix_call_dummy): Use an alternate method for
calling import stubs for functions in shared libraries.
1994-03-30 07:03:01 +00:00
Jeff Law de48213858 * hppa-tdep.c (skip_prologue): Do nothing if not at the beginning
of a function.
        (skip_trampoline_code): Rewrite and add support for argument
        relocation stubs stubs, import/export stubs, calls through
        "_sr4export" and cascaded trampolines.
1994-03-26 01:07:36 +00:00
Jeff Law fdafbfad9e * hppa-tdep.c (skip_prologue): Return "pc" not zero
if no unwind descriptor is found.
1994-03-25 18:48:24 +00:00
Jeff Law eb1167c65c * tm-hppa.h (NUM_REGS): Bump to 128 registers.
(REGISTER_NAMES): Add entries for "right-half" of FP registers.
        (REGISTER_RAW_SIZE, MAX_REGISTER_RAW_SIZE): Do not treat FP regs
        differently.  All registers are four bytes.
        (REGISTER_BYTES, REGISTER_BYTE): Simplify now that all registers are
        the same size.
        (REGISTER_VIRTUAL_TYPE): Use builtin_type_float for all FP regs.

        * hppa-tdep.c (pa_print_fp_reg): Update to print even numbered FP
        registers as both single and double values (fetching 2nd 32bit half
        as necessary).  Annotate each register printed with its precision.
1994-03-25 18:21:49 +00:00
Jeff Law 0a64709eb4 * config/pa/tm-hppao.h (NO_PC_SPACE_QUEUE_RESTORE): Define.
* hppa-tdep.c (hppa_pop_frame): Do not restore the PC space
        queue if NO_PC_SPACE_QUEUE_RESTORE is defined.
1994-03-23 04:16:32 +00:00
Jeff Law 4fd5eed484 * hppa-tdep.c (hppa_fix_call_dummy): Use value_ptr.
(hppa_push_arguments): Likewise.
1994-03-21 19:53:36 +00:00
Jeff Law 70e43abe7c * hppa-tdep.c (pc_in_linker_stub): Move decl to beginning of file.
(pc_in_interrupt_handler): New function.  Also add PARAM decl.
        (find_proc_framesize): Deal with HPUX setting SAVE_SP bit for
        signal trampoline and interrupt routines.
        (frame_saved_pc): Handle signal trampolines and interrupt routines.
        (frame_chain, frame_chain_valid): Likewise.
        (hppa_frame_find_saved_regs): Likewise.  Also deal with special
        saved regs convention for SP.

        * tm-hppa[bho].h: FRAME_FIND_SAVED_PC_IN_SIGTRAMP): Define.
        (FRAME_BASE_BEFORE_SIGTRAMP): Define.
        (FRAME_FIND_SAVED_REGS_IN_SIGTRAMP): Define.

        * tm-hppah.h (IN_SIGTRAMP): Define.
1994-03-04 17:54:41 +00:00
Jeff Law c7f3b703a3 * config/pa/tm-hppa.h (unwind_table_entry): Use one of the
reserved fields to hold a stub unwind entry type.  Fix typo.
        (stub_unwind_entry): New structure for raw stub unwind entries.
        (stub_unwind_types): The types of stubs we may encounter.
        (UNWIND_ENTRY_SIZE, STUB_UNWIND_ENTRY_SIZE): New defines.
        * hppa-tdep.c (rp_saved): Use additional information provided
        by linker stub unwind descriptors.
        (frameless_function_invocation): Likewise.
        (frame_chain_valid): Likewise.
        * paread.c (compare_unwind_entries): New function for sorting
        unwind table entries.
        (read_unwind_info): Rewrite to remove dependency on host endianness.
        Read in data from the $UNWIND_END$ subspace which contains linker
        stub unwind descriptors.  Merge that data into the basic unwind
        table.
1994-01-18 04:04:36 +00:00
Jeff Law c598654a5b * config/pa/tm-hppa.h (FRAME_FIND_SAVED_REGS): Call
hppa_frame_find_saved_regs.
        * hppa-tdep.c (dig_fp_from_stack): Delete function.
        (prologue_inst_adjust_sp): New function.
        (is_branch, inst_saves_gr, inst_saves_fr): New functions.
        (skip_prologue): Completely rewrite to use unwind information.
        (hppa_frame_find_saved_regs): Likewise.
1994-01-11 19:14:11 +00:00
Jim Kingdon 67ac975911 * target.h: Add enum target_waitkind, enum target_signal, and
struct target_waitstatus.  Change status argument to target_wait to
	be struct target_waitstatus * instead of int *.
	* target.h, infrun.c, all targets: Change type of signal arguments
	to resume(), proceed(), and target_resume() from int to enum
	target_signal.
	* All targets (*_wait, *_resume): Change accordingly.
	* infcmd.c (program_info, signal_command), throughout infrun.c,
	* fork-child.c, solib.c, hppa-tdep.c, osfsolib.c: Use this stuff.
	* convex-xdep.c, convex-tdep.c: Add FIXME's (getting the Convex
	signal code stuff right with the new signals would be non-trivial).
	* inferior.h (stop_signal): Make it enum target_signal not int.
	* target.c, target.h (target_signal_to_string, target_signal_to_name,
	target_signal_from_name): New functions.
	* inftarg.c, target.h (target_signal_to_host, target_signal_from_host,
	store_waitstatus): New functions.
	* procfs.c (procfs_notice_signals): Use them.
	* i960-tdep.c (i960_fault_to_signal): New function, to replace
	print_fault.
	* config/i960/tm-i960.h: Don't define PRINT_RANDOM_SIGNAL.
1994-01-04 21:53:53 +00:00
Jeff Law 2f8c3639fa * dbxread.c (process_one_symbol): Handle stabs-in-som just like
stabs-in-elf.
        (pastab_build_psymtabs): Likewise.

        * hppa-tdep.c: Change all comments to reference %r3 or frame pointer
        rather than %r4.
        (frame_chain, skip_prologue, dig_rp_from_stack): Handle %r3 as the
        frame pointer.

        * config/pa/tm-hppa.h (FP_REGNUM): Define as %r3.
        (FIND_FRAME_SAVED_REGS): Handle %r3 as frame pointer.
        (CALL_DUMMY): Likewise.
1993-12-27 04:46:05 +00:00
Jim Kingdon f4f0d17487 * valops.c (call_function_by_hand, push_word), defs.h (push_word),
convex-xdep.c, m88k-nat.c, i386m3-nat.c, mips-tdep.c, mipsm3-nat.c,
	ns32km3-nat.c, remote-bug.c, m88k-tdep.c, remote-hms.c, remote-mips.c,
	config/gould/tm-np1.h, hppa-tdep.c (hppa_fix_call_dummy), remote-vx.c:
	Use REGISTER_SIZE, unsigned LONGEST, and
	{store,extract}_unsigned_integer, instead of sizeof
	(REGISTER_TYPE) and REGISTER_TYPE.
	* All tm.h files: Change REGISTER_TYPE to REGISTER_SIZE.
	* hppa-tdep.c (pa_print_fp_reg): Remove unused variable val.

	* Makefile.in (ALLDEPFILES): Remove i386ly-nat.c and m68kly-nat.c.
	Add lynx-nat.c.
1993-12-26 18:10:22 +00:00
Jeff Law 192c3eeb94 * hppa-tdep.c (init_extra_frame_info): Correctly adjust the base
of the current frame when "fromleaf" is true.  Do not adjust the
        frame base of the innermost frame if it is a leaf function.
1993-12-26 04:06:32 +00:00
Peter Schauer ad09cb2bd3 * findvar.c (value_of_register, value_from_register),
hppa-tdep.c (pa_print_fp_reg), infcmd.c (do_registers_info),
	valops.c (value_assign):   Use REGISTER_CONVERT_TO_* only if
	REGISTER_CONVERTIBLE is defined, otherwise just copy the content.
	Pass desired type to REGISTER_CONVERT_TO_*.

	* config/m68k/tm-m68k.h, config/i960/tm-i960.h (REGISTER_CONVERT_*):
	Pass length of desired type to store/extract_floating.
	* config/i386/tm-arm.h, config/i386/tm-i386aix.h,
	config/i386/tm-sun386.h, config/i386/tm-symmetry.h,
	config/m88k/tm-m88k.h config/rs6000/tm-rs6000.h (REGISTER_CONVERT_*):
	Use extract_floating and store_floating with length of desired type.
	* config/m68k/tm-news.h (STORE,EXTRACT_RETURN_VALUE):  Add type
	parameter to REGISTER_CONVERT_*.

	* config/a29k/tm-a29k.h, config/convex/tm-convex.h,
	config/gould/tm-np1.h, config/gould/tm-pn.h, config/h8300/tm-h8300.h,
	config/h8500/tm-h8500.h, config/i386/tm-i386v.h,
	config/mips/tm-mips.h, config/ns32k/tm-merlin.h,
	config/ns32k/tm-umax.h, config/pa/tm-hppa.h, config/pyr/tm-pyr.h,
	config/sh/tm-sh.h, config/sparc/tm-sparc.h, config/tahoe/tm-tahoe.h,
	config/vax/tm-vax.h, config/z8k/tm-z8k.h (REGISTER_CONVERTIBLE,
	REGISTER_CONVERT_TO_RAW, REGISTER_CONVERT_TO_VIRTUAL):  Remove
	versions for which REGISTER_CONVERTIBLE is always false.
	* z8k-tdep.c (register_convert_to_virtual, register_convert_to_raw):
	Remove, no longer used.

	* alpha-tdep.c (alpha_register_convert_to_raw,
	alpha_register_convert_to_virtual):  New routines to handle
	the different raw formats in alpha floating point registers.
	* config/alpha/tm-alpha.h (REGISTER_CONVERTIBLE,
	REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW):  Use them.
1993-11-02 21:51:10 +00:00
Thomas Lord 199b2450f6 Change the stream argument to _filtered to GDB_FILE *.
Change all references to stdout/stderr to gdb_stdout/gdb_stderr.

Replace all calls to stdio output functions with calls to
corresponding _unfiltered functions (`fprintf_unfiltered')

Replaced calls to fopen for output to gdb_fopen.

Added sufficient goo to utils.c and defs.h to make the above work.

The net effect is that stdio output functions are only directly used
in utils.c.  Elsewhere, the _unfiltered and _filtered functions and
GDB_FILE type are used.

In the near future, GDB_FILE will stop being equivalant to FILE.

The semantics of some commands has changed in a very subtle way:
called in the right context, they may cause new occurences of
prompt_for_continue() behavior.  The testsuite doesn't notice anything
like this, though.

Please respect this change by not reintroducing stdio output
dependencies in the main body of gdb code.  All output from commands
should go to a GDB_FILE.

Target-specific code can still use stdio directly to communicate with
targets.
1993-11-01 22:25:23 +00:00
Jim Kingdon 976bb0be03 * Makefile.in (init.c): Generate using the source, not munch. This
cleans up all kinds of hassles (which nm to use in munch, etc).  The
	new formatting conventions (mostly already followed) are that
	the name of the _initialize_* routines must start in column zero,
	and must not be inside #if.
	* munch: Removed.
	* Makefile.in: Remove references to munch.
	* serial.c, remote.c, infptrace.c, maint.c, convex-tdep.c,
	alpha-tdep.c, hp300ux-nat.c, hppab-nat.c, osfsolib.c, remote-es.c,
	procfs.c, remote-udi.c, ser-go32.c, ultra3-xdep.c, sh-tdep.c,
	i960-tdep.c, hppa-tdep.c, h8500-tdep.c, dpx2-nat.c, delta68-nat.c,
	z8k-tdep.c: Make sure the above conventions are followed.  Make
	sure they are all declared as returning void.  Clean up
	miscellaneous comments and such.
1993-10-22 05:55:58 +00:00
Jim Kingdon 8c5e002153 * hppa-tdep.c (restore_pc_queue): Call target_terminal_ours after
done stepping the inferior.
1993-10-18 23:06:19 +00:00
Stu Grossman de43d7d005 * breakpoint.c (breakpoint_thread_match break_command_1):
Thread-specific breakpoint support.
* breakpoint.h (struct breakpoint):  Add thread id field.
* fork-child.c (fork_inferior):  Move call to init_thread_list()
back a bit so that init_trace_fun can do thread functions.
* hppa-tdep.c (restore_pc_queue):  Add pid to call to target_wait.
* hppab-nat.c (child_resume):  Handle default pid.
* hppah-nat.c (child_resume):  Handle default pid.
* i386lynx-nat.c (child_wait):  New arg pid.
* inflow.c (kill_command):  Reset thread list.
* infptrace.c (child_resume):  Handle default pid.
* infrun.c:  Thread-specific breakpoint support.
* inftarg.c (child_wait):  Add pid arg.
* osfsolib.c (solib_create_inferior_hook):  Add pid to call to
target_resume.
* procfs.c:  Multi-thread support.
* remote-bug.c (bug_wait):  Add pid arg.
* remote-hms.c (hms_wait):  Add pid arg.
* remote-mips.c (mips_wait):  Add pid arg.
* remote-mon.c (monitor_wait):  Add pid arg.
* remote-nindy.c (nindy_wait):  Add pid arg.
* remote-sim.c (gdbsim_wait):  Add pid arg.
* remote-udi.c (udi_wait):  Add pid arg.
* remote-vx.c (vx_wait):  Add pid arg.
* remote-z8k.c (sim_wait):  Add pid arg.
* remote.c (remote_wait):  Add pid arg.
* solib.c (solib_create_inferior_hook):  Add pid to call to
target_resume.
* target.h (struct target_ops):  Add pid arg to to_wait and
to_notice_signals.
* thread.c (valid_thread_id):  New func to validate thread #s.
* (pid_to_thread_id):  New func to do the obvious.
* thread.h:  Prototypes for above.

* coff-solib.c (coff_solib_add):  Use nameoffset field to locate
filename.
1993-10-16 06:42:02 +00:00
Jim Kingdon 01a0354571 * hppa-tdep.c (frame_chain): Rework so that it correctly
handles boundaries where code with a frame pointer calls code
	without a frame pointer.
	(dig_fp_from_stack): New function.
1993-10-06 21:48:39 +00:00
Jim Kingdon 8966221d52 * hppa-tdep.c (frame_chain): Rework so that it correctly
handles boundaries where code with a frame pointer calls code
	without a frame pointer.
	(dig_fp_from_stack): New function.
1993-10-06 20:17:56 +00:00
Jim Kingdon ed1a07ad1f * config/pa/tm-hppa.h: Declare target_read_pc and target_write_pc.
(STORE_RETURN_VAULE): Pass the correct offset of the return
	register to write_register_bytes.
	* hppa-tdep.c: Use target_write_pc if PCOQ_TAIL_REGNUM was not saved.
1993-09-07 19:57:45 +00:00
Jim Kingdon 6cfec92912 From Jeffrey Law:
* tm-hppa.h (TARGET_WRITE_PC): Define.
	* hppa-tdep.c (hppa_fix_call_dummy): If in a syscall,
	then return the address of the dummy itself rather than
	the address of $$dyncall.
	(target_write_pc): New function to store a new PC.
1993-07-30 20:49:52 +00:00
Jim Kingdon d3862cae59 From J. Law:
* infcmd.c (read_pc): Remove PA specific code.
	* tm-hppa.h (TARGET_READ_PC): Define.
	* hppa-tdep.c (target_read_pc): New function.
1993-07-30 17:01:26 +00:00
Jim Kingdon 247145e6f0 * paread.c (pa_symtab_read): Put file-local symbols in minimal symbols.
* hppa-tdep.c (frame_chain_valid): Check that our function has the
	same address as _start, not that it must be the same symbol.
1993-07-30 15:52:26 +00:00
Jim Kingdon 63757ecd89 * hppa-tdep.c: Make "maintenance print unwind" command from old
"unwind" command.
1993-07-29 21:42:31 +00:00
Jim Kingdon 4432b9f9ff * hppa-tdep.c: Remove all uses of use_unwind and `set use_unwind'
command.  Now we use unwind info by default if we can find it.
1993-07-29 18:41:26 +00:00
Jim Kingdon 6e35b037df * hppa-tdep.c (pc_in_linker_stub): Fix unclosed comments. 1993-07-29 17:14:38 +00:00
Jim Kingdon b8ec9a798f * hppa-tdep.c: Remove all uses of use_unwind and `set use_unwind'
command.  Now we use unwind info by default if we can find it.

	* config/sparc: Move VARIABLES_INSIDE_BLOCK and SUN_FIXED_LBRAC_BUG
	to tm-sparc.h so they are shared between Solaris and SunOS4.
	* dbxread.c (process_one_symbol): Deal with SunOS4 acc N_STSYM and
	N_GSYM functions.
1993-07-26 22:16:09 +00:00
Jim Kingdon 08ecd8f3d8 * hppa-tdep.c (pc_in_linker_stub): Return 0 if can't read memory. 1993-07-26 19:19:39 +00:00
Jim Kingdon 28403b8ee7 * hppa-tdep.c (pc_in_linker_stub): New function.
(find_proc_framesize): Return 0 for linker stubs.
	(rp_saved): Tell the caller where rp is saved.
	(frame_chain_valid): Return 1 for linker stubs.
	(frame_saved_pc): Use return value from rp_saved.
1993-07-19 17:36:18 +00:00
Jim Kingdon d08c6f4c11 * hppa-tdep.c (pc_in_linker_stub): New function. 1993-07-15 17:49:41 +00:00
Jim Kingdon 5ac7f56ee8 * hppa-tdep.c (pc_in_linker_stub): New function.
(find_proc_framesize): Return 0 for linker stubs.
	(rp_saved): Tell the caller where rp is saved.
	(frame_chain_valid): Return 1 for linker stubs.
	(frame_saved_pc): Use return value from rp_saved.
1993-07-15 17:38:59 +00:00
Jim Kingdon eabbe766c0 * hppa-tdep.c (find_proc_framesize): If there is a frame pointer,
use it.
1993-07-12 16:34:23 +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 558f4183fb * hppa-tdep.c (hppa_push_arguments): Allocate enough space for
arguments.
1993-07-08 20:06:19 +00:00
Jim Kingdon 47976ba770 * hppa-tdep.c: Change _initialize_hppab_tdep to _initialize_hppa_tdep. 1993-07-08 19:53:05 +00:00
Ian Lance Taylor 1edc5cd26d * hppa-tdep.c (hppa_push_arguments): Allocate correct amount of
memory.
1993-05-10 22:30:34 +00:00
Stu Grossman 8fa7488059 * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c: Declare frame_saved_pc.
	(frameless_function_invocation): New function.
	(frame_saved_pc, init_extra_frame_info): Use
	frameless_function_invocation.
	* gdb/config/tm-hppa.h (SAVED_PC_AFTER_CALL): Use saved_pc_after
	call instead of just grabbing the value currently in %r2.
	(FRAMELESS_FUNCTION_INVOCATION): Use frameless_function_invocation.
	* gdb/config/tm-hppah.h (SAVED_PC_AFTER_CALL): Delete private
	definition and use the common one in tm-hppa.h.
1993-05-05 23:52:10 +00:00
Stu Grossman 4b01383bcd * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c (frame_chain_valid): If "use_unwind" is true, then
	use unwind descriptors to determine if the frame chain is valid.
1993-05-05 22:39:23 +00:00
Stu Grossman b227992a76 * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c (find_dummy_frame_regs):  Rework so that
	it does not assume %r4 is the frame pointer.
1993-05-05 22:35:32 +00:00
Stu Grossman 68c8d698d4 * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-pinsn.c (print_insn): Handle 'r' and 'R' for break, rsm,
	and ssm instructions.
	* gdb/hppa-tdep.c (extract_5r_store, extract_5R_store): New
	helper functions for print_insn.
1993-05-05 22:26:57 +00:00
Stu Grossman a34d4bc178 * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c (gcc_p, hpux_cc_p): Delete unused functions.
1993-05-05 22:23:07 +00:00
Stu Grossman 66a1aa071e * Merge in HPPA/BSD patches from Utah:
* defs.h:  Add const to 2nd arg of psignal prototype.
	* hppah-tdep.c:  Renamed to hppa-tdep.c 'cuz it's common code with
	BSD now.
	* hppab-core.c:  Deleted.  No longer useful.
	* hppab-nat.c:  #include more files.  Use PT_WUREGS, not
	PT_WRITE_U.
	* hppab-tdep.c:  Deleted.  Supplanted by hppa-tdep.c.
	* config/pa/hppabsd.mh (NATDEPFILES):  Remove hppab-core.o.
	* config/pa/hppabsd.mt (TDEPFILES):  hppab-tdep.o => hppa-tdep.o
	* config/pa/hppahpux.mt (TDEPFILES):  hppab-tdep.o => hppa-tdep.o
	* config/pa/xm-hppab.h:  #define SET_STACK_LIMIT_HUGE.
1993-04-23 23:43:18 +00:00