Commit Graph

22 Commits

Author SHA1 Message Date
Per Bothner
940d596798 * alpha-tdep.c, c-exp.y, h8500-tdep.c, f-exp.y, f-valprint.c,
findvar.c, hppa-tdep.c, infcmd.c, language.c, printcmd.c,
 	rs6000-tdep.c, symmisc.c, symtab.c:
	Add check_typedef/CHECK_TYPEDEF as needed.
1995-11-30 01:43:37 +00:00
Fred Fish
6c9638b444 Update FSF address. 1995-08-02 03:41:12 +00:00
Stan Shebs
ec7b6fcf7f * h8500-tdep.c: General linting and cleanup.
(opcodes/h8500-opc.h): Don't include.
	(code_size, data_size): Make static.
	(frame_locals_address, frame_args_address): Remove.
	(h8300_pop_frame): Rename to h8500_pop_frame.
	(big_command, medium_command, compact_command, small_command):
	Define as regular functions rather than with macro trickery.
	(tm_print_insn): Set to correct disassembler function.
	* config/h8500/tm-h8500.h: Minor cleanup, add prototypes.
	(ABOUT_TO_RETURN): #if 0 out.
	(FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS): Use usual define.
	(GDB_TARGET_IS_H8500): Remove duplicate	definition.
	(regoff): Remove, never used.
	* config/h8500/h8500.mt (TDEPFILES): Add monitor.o.
1995-08-01 02:37:02 +00:00
Stan Shebs
18b46e7c53 General cleanup and simplication of disassembler interface.
* a29k-pinsn.c, arm-pinsn.c, convex-pinsn.c, gould-pinsn.c,
        hppa-pinsn.c, i386-pinsn.c, i960-pinsn.c, m68k-pinsn.c,
        m88k-pinsn.c, mips-pinsn.c, ns32k-pinsn.c, pyr-pinsn.c,
        rs6000-pinsn.c, sparc-pinsn.c, tahoe-pinsn.c, vax-pinsn.c: Remove.
	* gould-tdep.c, ns32k-tdep.c, tahoe-tdep.c, vax-tdep.c: New files,
	had been -pinsn.c files.
	* Makefile.in (ALLDEPFILES): Remove removed files.
	(a29k-pinsn.o, arm-pinsn.o, convex-pinsn.o, gould-pinsn.o,
        hppa-pinsn.o, i386-pinsn.o, i960-pinsn.o, m68k-pinsn.o,
        m88k-pinsn.o, mips-pinsn.o, ns32k-pinsn.o, pyr-pinsn.o,
        rs6000-pinsn.o, sparc-pinsn.o, tahoe-pinsn.o, vax-pinsn.o):
        Remove compile actions.
	* arm-tdep.o, gould-tdep.o, ns32k-tdep.o, tahoe-tdep.o,
	vax-tdep.o: Add compile actions.
	* defs.h (tm_print_insn): New global.
	* a29k-tdep.c (gdb_print_insn_a29k): New function.
	(_initialize_a29k_tdep): Rename from _initialize_29k,
	set tm_print_insn.
	* alpha-tdep.c (print_insn): Remove.
	(_initialize_alpha_tdep): Set tm_print_insn.
	* arm-tdep.c (arm_print_insn): New function, was print_insn
	in arm-pinsn.c.
	* convex-tdep.c (convex_print_insn): New function, was print_insn
	in convex-pinsn.c.
	* h8300-tdep.c (print_insn): Remove.
	(gdb_print_insn_h8300): New function.
	(_initialize_h8300_tdep): New function.
	* h8500-tdep.c (print_insn): Remove.
	(_initialize_h8500_tdep): New function.
	* hppa-tdep.c (_initialize_hppa_tdep): Set tm_print_insn.
	* i386-tdep.c (_initialize_i386_tdep): New function.
	* i960-tdep.c (mem, next_insn): New functions, were in
	i960-pinsn.c.
	(_initialize_i960_tdep): Set tm_print_insn.
	* m68k-tdep.c (_initialize_m68k_tdep): New function.
	* m88k-tdep.c (_initialize_m88k_tdep): New function.
	* mips-tdep.c (gdb_print_insn_mips): New function.
	(_initialize_mips_tdep): Set tm_print_insn.
	* pyr-tdep.c (pyr_print_insn): New function, was print_insn
	in pyr-pinsn.c.
	* rs6000-tdep.c (_initialize_rs6000_tdep): New function.
	* sh-tdep.c (print_insn): Remove.
	(gdb_print_insn_sh): New function.
	(_initialize_sh_tdep): Set tm_print_insn.
	* sparc-tdep.c (_initialize_sparc_tdep): New function.
	* w65-tdep.c (print_insn): Remove.
	(_initialize_w65_tdep): New function.
	* z8k-tdep.c (print_insn): Remove.
	(gdb_print_insn_z8k): New function.
	(_initialize_z8k_tdep): Set tm_print_insn.
	* printcmd.c (print_insn): New function, generic disassembler.
	* config/*/*.mt (TDEPFILES): Remove refs to *-pinsn.o.

	* defs.h (query_hook, error_hook): Fix prototypes.
1995-01-17 04:36:51 +00:00
Stan Shebs
669caa9c19 Replace useless FRAME, FRAME_ADDR types with struct frame_info *
and CORE_ADDR, respectively.
	* frame.h (FRAME, FRAME_INFO_ID, FRAME_ADDR): Remove.
	* blockframe.c (get_frame_info): Remove.
	* a29k-tdep.c, alpha-tdep.c, blockframe.c, breakpoint.c,
	breakpoint.h, energize.c, findvar.c, gdbtk.c, gould-pinsn.c,
	h8300-tdep.c, h8500-tdep.c, hppa-tdep.c, i386-tdep.c, i960-tdep.c,
	infcmd.c, inferior.h, infrun.c, m68k-tdep.c, m88k-tdep.c,
	mips-tdep.c, nindy-tdep.c, printcmd.c, pyr-tdep.c, rs6000-tdep.c,
	sh-tdep.c, sparc-tdep.c, stack.c, valops.c, z8k-tdep.c,
	config/a29k/tm-a29k.h, config/alpha/tm-alpha.h,
	config/gould/tm-pn.h, config/h8300/tm-h8300.h,
	config/h8500/tm-h8500.h, config/mips/tm-mips.h,
	config/ns32k/tm-merlin.h, config/ns32k/tm-umax.h,
	config/pyr/tm-pyr.h, config/sparc/tm-sparc.h): Replace FRAME with
	struct frame_info * everywhere, replace FRAME_ADDR with CORE_ADDR,
	rename variables consistently (using `frame' or `fi'), remove
	calls to get_frame_info and FRAME_INFO_ID, remove comments about
	FRAME and FRAME_ADDR cruftiness.
1994-11-04 01:19:29 +00:00
Stan Shebs
f4eb99683b * h8500-tdep.c (target_read_sp, target_write_sp, target_read_pc,
target_write_pc, target_read_fp, target_write_fp): Rename to
	h8500_read_sp, etc.
	(h8500_read_pc, h8500_write_pc): Add pid argument.
	* config/h8500/tm-h8500.h (TARGET_READ_SP, TARGET_WRITE_SP,
	TARGET_READ_PC, TARGET_WRITE_PC, TARGET_READ_FP, TARGET_WRITE_FP):
	Change to match functions above.
1994-10-14 22:05:54 +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
Steve Chamberlain
63eef03aba * h8500-tdep.c (initialize_h8500_tdep, large_command):
All references to value changed to value_ptrlage_command is now
	called big_command.
	All references to value changed to value_ptr.
	* remote-z8k.c (e7000_wait): Use target_waitstatus and SETSTOP
	* remote-hms.c (hms_wait): Timeout after five seconds.
	* ser-go32.c (dosasync_read): Poll if timeout < 0.
	* config/tm/tm-h8500.h (BEFORE_MAIN_LOOP_HOOK): Deleted.
	* config/sh/tm-sh.h (BREAKPOINT): Is now sleep opcode.
1994-04-15 18:43:07 +00:00
Steve Chamberlain
edd01519b9 Fri Feb 4 15:53:18 1994 Steve Chamberlain (sac@cygnus.com)
* h8500-tdep.c (saved_pc_after_call): The size of the
	pc is memory model dependent. (segmented_command,
	unsegmented_command, _initialize_h8500_tdep): New commands to
	change memory model.
	* remote-7000.c (initialize_remote_e7000): Change name of snoop
	command.
	* remote-hms.c (hms_load): Remove breakpoints when loaded.
	(hms_wait): Use new status structure
	(hms_open): Push the target here. (hms_before_main_loop): Not
	here.  (supply_val, hms_fetch_register, hms_store_register):  Cope
	with H8/500 names too.
	* sh-tdep.c (show_regs, initialize_sh_tdep): New command to print
	all registers in a compact way.
1994-02-05 00:22:08 +00:00
Steve Chamberlain
08c0d7b84f * ser-go32.c: Lint. (strncasecmp): Removed, now in libiberty.
(go32_readchar): Special handling for faster polling. (async
	structure): Volatile.
	* h8300-tdep.c (print_register_hook): Allocate and use the right
	number bytes for the raw register.
	* h8500-tdep.c (regoff, frame_find_saved_reg, examine_prologue):
	deleted. (h8500_register_size, h8500_register_virtual_type, ):
	Use new way of counting registers.
	* remote-e7000.c (echo_index): deleted. (expect): Better handling
	of user interrupts. (expect_prompt): Remove never used log file
	support. (want, want_nopc): Add support for H8/300H.
	(fetch_regs_from_dump): Treat \r and \n as whitespace.
	(e7000_drain): Send an "end" command before waiting for output to
	stop.  (e7000_wait): Cope with H8/300H, better handling of user
	interrupts.  (why_stop, expect_n, sub2_from_pc): New function.
	* remote-utils.c (gr_load_image): call fflush and QUIT more regularly.
	* utils.c (notice_quit): New function for polling for user interrupts.
1993-12-12 00:00:53 +00:00
Steve Chamberlain
863099f41e * remote-e7000.c: New file to cope with the Hitachi E7000 ICE.
* remote-utils.c, remote-utils.h (gr_load_image): New function to
	download to target.
	* h8300-tdep.c, h8500-tdep.c, remote-z8k.c, sh-tdep.c z8k-tdep.c
	(sim_load): delete.
	* remote-sim.c (sim_load): Use gr_load_image.
	* config/sh/sh.mt: Add remote-e7000
1993-11-15 23:26:56 +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
1468bec92b * h8300-tdep.c, h8500-tdep.c: Define sim_load only, but not
sim_kill, sim_open, or sim_set_args.
1993-10-16 04:59:47 +00:00
K. Richard Pixley
4ed97c9a83 bzero -> memset 1993-09-01 21:56:42 +00:00
Fred Fish
d144532707 * h8500-tdep.c: Add parens around a few macro args. 1993-08-01 16:43:32 +00:00
Steve Chamberlain
85e07872b6 New target macros for getting at the pc, sp and fp.
* infcmd.c (read_pc, write_pc):  Modify to use new macros.
	(read_sp, write_sp, read_fp, write_fp): New functions.
	* blockframe.c (reinit_frame_cache, get_prev_frame_info):  Use new functions.
	* breakpoint.c (bpstat_alloc): ditto.
	* infrun.c (wait_for_inferior): ditto.
	* stack.c (print_frame_info): ditto.
	* valops (call_function_by_hand): ditto.
	* corelow.c (core_open): ditto.
	* h8500-tdep.c: (target_read_sp, target_write_sp, target_read_pc,
	target_write_pc, target_read_fp, target_write_fp): New functions.
	* inferior.h (read_sp, write_sp, read_fp, write_fp): Prototypes.
1993-07-02 21:25:04 +00:00
Steve Chamberlain
a493d9a667 Try again. Cvs core dumped. 1993-05-01 00:51:23 +00:00
Stu Grossman
ccced87a0b * findvar.c (value_from_register): H8500 specific, check to see
if we are looking at short pointer.  If so, skip crock.
	* h8500-tdep.c (h8500_frame_chain):  Mask down value from
	read_memory_integer() to avoid getting messed up by sign extension.
1993-04-02 02:47:05 +00:00
Jim Kingdon
5d0734a7d7 provide a new interface (using read_memory_func) to call the disassemblers
which copes with errors in a plausible way
1993-03-31 21:43:25 +00:00
Stu Grossman
ccf1e898d7 * findvar.c (read_register, write_register): Make these capable
of reading/writing registers that are shorter than REGISTER_TYPE.
	* (value_from_register):  Install H8500 specific code to return
	proper value when register is being used as a pointer.
	* h8500-tdep.c:  Remove extra defines of NUM_REGS.
	(h8500_skip_prologue):  Use correct lengths for LINK instructions.
	(FRAME_CHAIN):  Change name to h8500_frame_chain.  Rewrite code to
	chain frames properly by combining frame pointer with T reg.
	(init_extra_frame_info):  Delete.  It's now a macro.
	(frame_args_address):  Don't add PTR_SIZE.  Stack args are already
	offset by the correct amount off of the frame pointer.
	(register_byte):  Delete.  It's now a macro.
	(register_raw_size, register_virtual_size):  Delete.  Replaced by
	common routine h8500_register_size, cuz there's no difference
	between the raw & virtual sizes on this machine.
	(register_convert_to_raw, register_convert_to_virtual):  Delete,
	cuz there's no difference between the raw & virtual forms.
	Replaced by memcpy in tm file.
	(register_virtual_type):  Rename to h8500_register_virtual_type.
	Get rid of pointer pseudo-regs, use _REGNUM with all reg names.
	(_initialize_h8500_tdep):  Get rid of crock to ensure that GDB &
	emulator have same reg offsets.  This is all handled in the
	simulator code now.
	(h8500_trapped_internalvar):  New routine to detect references to
	convenience vars acting as pointer pseudo-regs.
	(h8500_value_trapped_internalvar):  Conjure up value of pointer
	pseudo-regs.
	(h8500_set_trapped_internalvar):  Convert set value in real
	register references.
	infcmd.c (read_pc, write_pc):  Add h8500 specific code to handle
	code segment register.
	infrun.c (proceed):  Simplify.  Call write_pc instead of doing it
	by hand.
	(wait_for_inferior):  Add h8500 specific code to add stack segment
	when reading SP register.
	remote-sim.c (fetch_register):  Spacing.
	tm-h8500.h:  #define GDB_TARGET_IS_H8500 to make it easier to
	detect cruft.  Redo all register manipulation stuff.  Get rid of
	pointer pseudo-regs.  (INIT_EXTRA_FRAME_INFO):  Adds stack segment
	to frame pointer.  (IS_TRAPPED_INTERNALVAL,
	VALUE_OF_TRAPPED_INTERNALVAR, SET_TRAPPED_INTERNALVAR):  Use these
	to create internal vars for pointer pseudo-regs.
1993-03-25 22:34:26 +00:00
Steve Chamberlain
195e46ea0b Checkpoint for Stu 1993-03-19 23:05:34 +00:00