Commit Graph

9 Commits

Author SHA1 Message Date
Stu Grossman
733a94e887 * findvar.c (read_var_value): If REG_STRUCT_HAS_ADDR, then set
VALUE_LVAL to be lval_memory so that we don't try to modify wild
	register numbers when user tries to modify elements in structs
	passed as arguments.
	* inflow.c (child_terminal_info):  Move banner outside of system
	specific #ifdefs.
	* tm-hppa.h (REG_STRUCT_HAS_ADDR):  Define this for HPPA, which
	passes struct/union arguments by address.
1993-02-11 02:38:19 +00:00
Stu Grossman
fa9265e55d * hppa-pinsn.c (print_insn): Use read_memory_integer, instead of
read_memory to get byte order right.
	* hppah-tdep.c (find_unwind_info):  Don't read in unwind info
	anymore.  This is done in paread.c now.  We expect unwind info
	to hang off of objfiles, and search all of the objfiles when until
	we find a match.
	* (skip_trampoline_code):  Cast arg to target_read_memory.
	* objfiles.h (struct objfile):  Add new field obj_private to hold
	per object file private data (unwind info in this case).
	* paread.c (read_unwind_info):  New routine to read unwind info
	for the objfile.  This data is hung off of obj_private.
	* tm-hppa.h:  Define struct obj_unwind_info, to hold pointers to
	the unwind info for this objfile.  Also define OBJ_UNWIND_INFO to
	make this easier to access.
1993-01-15 00:06:50 +00:00
Stu Grossman
0213d96f60 * blockframe.c (frameless_look_for_prologue): Correct the
comment.
	* gdbtypes.h, gdbtypes.c:  Use const in decl of
	cplus_struct_default, now that pa-gas assembler has been fixed.
	* hppah-nat.c:  Formatting.
	* hppah-tdep.c:  Remove lots of useless externs for variables we
	don't use.
	* (find_unwind_entry):  Speed up by using binary search, and a one
	entry cache.
	* (rp_saved):  New routine to see what unwind info says about RP
	being saved on the stack frame.
	* (frame_saved_pc):  Look for prologue to see if we need to
	examine the stack for the saved RP or not.
	* (init_extra_frame_info):  Check for prologue, instead of
	framesize to determine if we are frameless or not.
	* (frame_chain_valid):  Stop backtraces when we run into _start.
	* (push_dummy_frame):  Reformat to make more readable.
	* (find_dummy_frame_regs):  ditto.
	* (hp_pop_frame):  ditto.
	* (hp_restore_pc_queue):  small cleanup.
	* (hp_push_arguments):  ditto.
	* (pa_do_registers_info):  ditto.
	* (skip_prologue):  New routine created from SKIP_PROLOGUE macro.
	* tm-hppa.h:  Move contents of SKIP_PROLOGUE into hppah-tdep.c.
	* Define FRAME_CHAIN_VALID.
	* Turn on BELIEVE_PCC_PROMOTION so that we can access char args
	passed to functions.

	* paread.c (pa_symtab_read):  Use new bfd conventions for
	accessing linker symbol table.
	* (pa_symfile_init):  Access embedded STAB info via BFD section
	mechanism and related macros.
1993-01-10 04:23:06 +00:00
Stu Grossman
b8ef816335 * hppah-tdep.c (skip_trampoline_code): Use new macros for
accessing minimal symbol data.
	* infcmd.c (read_pc):  Use #ifdef, not #if.
	* symfile.c (syms_from_objfile):  Add CONST to decl for targets.
	* tm-hppa.h (FIX_CALL_DUMMY):  Use new macros for accessing
	minimal symbol data.
1992-12-29 00:27:18 +00:00
Stu Grossman
b5c10493e9 * hppah-tdep.c (frame_saved_pc): Use better test for outermost
frame.  Use find_return_regnum to find the caller.
	* (find_unwind_entry):  New routine to locate stack frame info
	associated with a procedure.  This looks in the $UNWIND_START$
	section in the SOM file.
	* (find_return_regnum):  New routine.  Uses find_unwind_entry() to
	figure out where the caller's return address is stored.
	* (find_proc_framesize):  New routine.  Uses find_unwind_entry()
	to figure out the frame size for a procedure.
	* (saved_pc_after_call):  New routine, moved from tm-hppa.h.
	* (init_extra_frame_info):  New routine.  Corrects PC and FP for
	outermost frame if necessary.
	* (frame_chain):  New routine, moved from tm-hppa.h.
	* (skip_trampoline_code):  Handle computed function calls (ie:
	calls from $$dyncall).
	* (unwind_command):  Temporary support function to allow user
	to control/observe aspects of the unwind (stack frame) info.
	* infcmd.c (read_pc):  (Temporary), put a hack in to see if the PC
	was in a system call, if so, then read the PC from r31.
	* tm-hppah.h (SKIP_TRAMPOLINE_CODE, IN_SOLIB_TRAMPOLINE):  Deal
	with extra arg for skip_trampoline_code().
	* (INIT_EXTRA_FRAME_INFO):  Define to point at subr (see above).
	* (FRAME_CHAIN, FRAME_CHAIN_VALID):  Turn into real subroutines.
	* tm-hppa.h (SAVED_PC_AFTER_CALL):  Turn into real subroutine.
1992-12-28 23:19:51 +00:00
Stu Grossman
9f739abdac * hppa-pinsn.c (print_insn): Improve handling of be and ble
branch targets to compute target address using const from previous
	instruction if necessary.
	* Add `Q' operator to print out bit position field various
	instructions.
	* hppah-nat.c:  #include sys/param.h, and sys/user.h.  General
	cleanups, use new code from Utah.
	* (store_inferior_registers):  Update to new code from Utah.
	* (initialize_kernel_u_addr):  Re-enable decl of struct user u.
	* (fetch_register):  Clear out priv level when reading PCs.
	* hppah-tdep.c:  Get rid of gobs of KERNELDEBUG stuff.
	* Remove decl of errno, #include wait.h and target.h.
	* (frame_saved_pc):  Check `flags' pseudo-register to see if we
	were inside of a kernel call.  If so, then PC is in a different
	register.  Also, mask out bottom two bits of all PCs so as not to
	confuse higher level code.
	* (push_dummy_frame):  Create from #define in tm-hppa.h.
	* (find_dummy_frame_regs):  Update from Utah.
	* (hp_pop_frame):  Create from #define in tm-hppa.h.
	* (hp_restore_pc_queue):  New, from Utah.
	* (hp_push_arguments):  Big fixes from Utah.
	* (pa_do_registers_info, pa_print_registers):  Only print out fp
	regs upon request.
	* (skip_trampoline_code):  New routine to deal with stubs that
	live in nowhereland between callers and callees.
	* i860-tdep.c:  Remove decl of attach_flag.
	* infrun.c (wait_for_inferior):  Add new macro
	INSTRUCTION_NULLIFIED, which can tell if the instruction pointed
	at by PC will be nullified.  If so, then step the target once more
	so as to avoid confusing the user.
	* (just before step_over_function:):  Use stop_func_start, not
	stop_pc when checking for the existance of line number info.
	stop_func_start will reflect the proper address of the target
	routine, not of the stub that we may be traversing to get there.
	* tm-hppa.h:  define SKIP_TRAMPOLINE_CODE and IN_SOLIB_TRAMPOLINE
	to deal with the stubs that PA compilers sometimes stick between
	callers and callees.  Also, define FLAGS_REGNUM for access to the
	`flags' pseudo-reg.
	* (REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW):  Use
	memcpy, not bcopy.
	* (CANNOT_STORE_REGISTER):  New from Utah.  Says that we can't
	write gr0, PC regs, and PSW!
	* (FRAME_FIND_SAVED_REGS):  Bug fixes from Utah.
	* (PUSH_DUMMY_FRAME, POP_FRAME):  Make into real routines in
	hppah-nat.c.
	* (CALL_DUMMY, FIX_CALL_DUMMY):  Fixes from Utah.
	* Define struct unwind_table_entry.
	* valops.c (call_function_by_hand):  Add another arg to
	FIX_CALL_DUMMY (under #ifdef GDB_TARGET_IS_HPPA).  Why is this
	necessary?
1992-12-22 03:18:46 +00:00
Stu Grossman
01d1590bab * convex-xdep.c, hppab-nat.c, i860-tdep.c, infptrace.c: Remove
decl for attach_flag, it now lives in inferior.h.
* hppa-pinsn.c:  Reformat opcode tables.  Add function prototypes.
Make most functions static.
* hppah-nat.c:  General cleanups, remove BSD specific code (since
that all lives in hppab-nat.c).
* hppah-tdep.c (frame_chain_valid), tm-hppa.h (FRAME_CHAIN):
Change sense of test against inside_entry_file().  This fix is
from U. of Utah.
* tm-hppa.h (PUSH_DUMMY_FRAME, POP_FRAME):  Use char * for 2nd arg
to read/write_register_bytes().
1992-12-15 01:45:15 +00:00
John Gilmore
e0ba1d1427 * findvar.c (supply_register): Add CLEAN_UP_REGISTER_VALUE hook.
* tm-hppa.h (CLEAN_UP_REGISTER_VALUE):  Use it.
* hppa-coredep.c:  Remove, now that we use the hook.
* config/hppab.mh, config/hppah.mh:  Use standard coredep.o.
* hppab-xdep.c, hppah-xdep.c:  Remove custom code, use hook.

* dbxread.c, partial-stab.h:  Replace all #ifdef hp9000s800's with
GDB_TARGET_IS_HPPA's.  This is a SERIOUS KLUDGE.  The code needs to all
be ripped out and reimplemented right (see elfread.c).
* tm-hppa.h (GDB_TARGET_IS_HPPA):  Define.
1992-09-26 10:24:26 +00:00
John Gilmore
5140562f37 * tm-hppa.h: New file, architectural definition of HP PA.
* tm-hppabsd.h, tm-hppahpux.h:  Shrink to deltas from tm-hppa.h.

* am29k-pinsn.c, am29k-tdep.c, copying.awk, copying.c,
hppa-coredep.c, hppa-pinsn.c, hppabsd-core.c, hppabsd-tdep.c,
hppabsd-xdep.c, hppahpux-tdep.c, hppahpux-xdep.c, remote-udi.c,
ser-go32.c, xcoffsolib.c:  Remove <stdio.h> which is already in
"defs.h".

* hppa-coredep.c, hppa-pinsn.c, hppabsd-core.c, hppabsd-tdep.c,
hppabsd-xdep.c, hppahpux-tdep.c, hppahpux-xdep.c, xcoffsolib.c,
xcoffsolib.h, xm-go32.h, xm-hppabsd.h, xm-hppahpux.h:  Copyrights.
1992-06-25 11:15:47 +00:00