Commit graph

6454 commits

Author SHA1 Message Date
Peter Schauer
5499537344 * 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.
1997-01-25 08:09:53 +00:00
Geoffrey Noer
b0d8afed60 Committing tiny change -- pretend regs are 32 bits 1997-01-23 10:01:20 +00:00
Geoffrey Noer
d9ecb24ce8 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
1997-01-22 10:38:01 +00:00
Geoffrey Noer
879b939859 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
1997-01-22 09:41:02 +00:00
Stu Grossman
95b475477e * configure.in configure: Check if host has libdl if doing
Solaris threads.
1997-01-22 02:33:50 +00:00
Geoffrey Noer
95efddf268 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.
1997-01-22 01:33:58 +00:00
Stu Grossman
ef6c51d13f * 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.
1997-01-22 01:12:19 +00:00
Mark Alexander
f1536ab577 * config/mips/{embed,embed64,embedl,embedl64}.mt:
Link in simulator on MIPS embedded targets.
1997-01-20 22:59:46 +00:00
Peter Schauer
15cb042bc1 * 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.
1997-01-18 10:33:06 +00:00
Geoffrey Noer
1bb1df85cb Thu Jan 16 14:10:41 1997 Geoffrey Noer <noer@cygnus.com>
* config/mn10300/tm-mn10300.h: fix BREAKPOINT definition
1997-01-16 22:14:19 +00:00
Angela Marie Thomas
6b01dc653b fix bugs 1997-01-16 10:50:58 +00:00
Geoffrey Noer
6c009684d9 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
1997-01-15 00:06:41 +00:00
Michael Snyder
afe56235ac * 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.
--------------------------------------------------------------------
1997-01-09 19:48:27 +00:00
Stu Grossman
34b22c5cc8 * symtab.c (fixup_symbol_section): Handle NULL symbols without
crashing.
1997-01-06 19:17:39 +00:00
Stu Grossman
4c681116af * Makefile.in configure configure.in: Remove ENABLE_CLIBS,
ENABLE_OBS, and THREAD_DB_OBS.  These are consolidated into LIBS
	and CONFIG_OBS.
	* configure configure.in:  Clean up test cases around thread support.
start-sanitize-v850
	* configure.tgt (v850-*-*):  Include v850ice.o and v850.lib if
	host is Windows.
end-sanitize-v850
	* c-valprint.c ch-valprint.c cp-valprint.c eval.c expprint.c
	printcmd.c valops.c value.h values.c:  Add bfd_section arg to
	value_at and value_at_lazy.
	* coffread.c dbxread.c elfread.c mdebugread.c minsyms.c symtab.h:
	Add bfd_section arg to prim_record_minimal_symbol_and_info.
	* corefile.c gdbcore.h printcmd.c valops.c:  Use read_memory_section
	instead of read_memory.  It takes a bfd_section arg.
	* coffread.c dbxread.c elfread.c gdb-stabs.h objfiles.h:  Remove
	unnecessary cast for assignment of struct dbx_symfile_info.
	Struct objfile now uses a real pointer instead of PTR for this
	element.
	* dbxread.c (dbx_symfile_init): Stash bfd section pointers for
	text, data and bss into dbx_symfile_info.
	* exec.c (xfer_memory):  Handle transfers for user-specified
	sections.
	* findvar.c (read_var_value locate_var_value):  Copy bfd section
	from the symbol to the value.
	* gdb-stabs.h:  Add section pointers for text, data and bss
	sections.
	* maint.c (translate address command):  Add test code for overlay
	address translation.
	* printcmd.c (do_examine do_one_display):  Now takes a bfd section
	arg.
	* (print_formatted x_command):  Record current section along with
	current address for repeated commands.
	* sparc-nat.c (fetch_inferior_registers):  Change
	target_xfer_memory to target_{read write}_memory to allow changes
	to target_xfer_memory interface for section info.
	* symmisc.c (dump_msymbols print_symbol):  Print section
	assocaited with symbol.
	* symtab.c (fixup_symbol_section):  New routine to
	add section info to symbols returned by lookup_symbol.
	* symtab.h (struct general_symbol_info):  Add bfd section to
	symbols.
	* target.c target.h (target_xfer_memory):  Add bfd section to
	args.
	* (target_read_memory_section):  New routine to read data from a
	specific section.
	* (target_memory_bfd_section):  New global variable to pass bfd
	section in to targets.
	* valarith.c (value_add value_addr value_array):  Preserve bfd
	section when computing new value.
	* value.h (struct value):  Add bfd section to values.
	* values.c (allocate_value value_copy):  Initialize/preserve bfd
	section.
	* (unpack_double):  Clean up _MSC_VER conditionals to remove
	duplicate code.
start-sanitize-v850
	* v850ice.c:  New module to support communication with NEC's
	PC-based ICE.
	* config/v850/tm-v850.h (REGISTER_NAMES):  Replace sp, gp, fp, and
	ep names with rxx names.  sp and fp are renamed via a different
	mechanism.
end-sanitize-v850
1997-01-04 00:33:01 +00:00
Stu Grossman
6c310da826 * Makefile.in configure configure.in: Remove ENABLE_CLIBS,
ENABLE_OBS, and THREAD_DB_OBS.  These are consolidated into LIBS
	and CONFIG_OBS.
	* configure configure.in:  Clean up test cases around thread support.
start-sanitize-v850
	* configure.tgt (v850-*-*):  Include v850ice.o and v850.lib if
	host is Windows.
end-sanitize-v850
	* c-valprint.c ch-valprint.c cp-valprint.c eval.c expprint.c
	printcmd.c valops.c value.h values.c:  Add bfd_section arg to
	value_at and value_at_lazy.
	* coffread.c dbxread.c elfread.c mdebugread.c minsyms.c symtab.h:
	Add bfd_section arg to prim_record_minimal_symbol_and_info.
	* corefile.c gdbcore.h printcmd.c valops.c:  Use read_memory_section
	instead of read_memory.  It takes a bfd_section arg.
	* coffread.c dbxread.c elfread.c gdb-stabs.h objfiles.h:  Remove
	unnecessary cast for assignment of struct dbx_symfile_info.
	Struct objfile now uses a real pointer instead of PTR for this
	element.
	* dbxread.c (dbx_symfile_init): Stash bfd section pointers for
	text, data and bss into dbx_symfile_info.
	* exec.c (xfer_memory):  Handle transfers for user-specified
	sections.
	* findvar.c (read_var_value locate_var_value):  Copy bfd section
	from the symbol to the value.
	* gdb-stabs.h:  Add section pointers for text, data and bss
	sections.
	* maint.c (translate address command):  Add test code for overlay
	address translation.
	* printcmd.c (do_examine do_one_display):  Now takes a bfd section
	arg.
	* (print_formatted x_command):  Record current section along with
	current address for repeated commands.
	* sparc-nat.c (fetch_inferior_registers):  Change
	target_xfer_memory to target_{read write}_memory to allow changes
	to target_xfer_memory interface for section info.
	* symmisc.c (dump_msymbols print_symbol):  Print section
	assocaited with symbol.
	* symtab.c (fixup_symbol_section):  New routine to
	add section info to symbols returned by lookup_symbol.
	* symtab.h (struct general_symbol_info):  Add bfd section to
	symbols.
	* target.c target.h (target_xfer_memory):  Add bfd section to
	args.
	* (target_read_memory_section):  New routine to read data from a
	specific section.
	* (target_memory_bfd_section):  New global variable to pass bfd
	section in to targets.
	* valarith.c (value_add value_addr value_array):  Preserve bfd
	section when computing new value.
	* value.h (struct value):  Add bfd section to values.
	* values.c (allocate_value value_copy):  Initialize/preserve bfd
	section.
	* (unpack_double):  Clean up _MSC_VER conditionals to remove
	duplicate code.
start-sanitize-v850
	* v850ice.c:  New module to support communication with NEC's
	PC-based ICE.
	* config/v850/tm-v850.h (REGISTER_NAMES):  Replace sp, gp, fp, and
	ep names with rxx names.  sp and fp are renamed via a different
	mechanism.
end-sanitize-v850
1997-01-04 00:25:53 +00:00
Geoffrey Noer
4efc404588 Fri Jan 3 14:20:05 1997 Geoffrey Noer <noer@cygnus.com>
* mn10300-tdep.c (mn10300_push_arguments): rewrote
        also removed code elsewhere that made use of RP_REGNUM
        * config/mn10300/tm-mn10300.h: ripped out RP_REGNUM, V0_REGNUM,
        ARG0_REGNUM, ARGLAST_REGNUM (all not appropriate for mn10300
        arch.), redefined SAVED_PC_AFTER_CALL, EXTRACT_RETURN_VALUE,
        EXTRACT_STRUCT_VALUE_ADDRESS, STORE_RETURN_VALUE
1997-01-03 22:34:52 +00:00
Geoffrey Noer
3de7693865 Fri Jan 3 14:20:05 1997 Geoffrey Noer <noer@cygnus.com>
* mn10300-tdep.c (mn10300_push_arguments): rewrote
        also removed code elsewhere that made use of RP_REGNUM
1997-01-03 22:23:08 +00:00
Geoffrey Noer
fb0b06b0cf small fix 1996-12-31 23:30:48 +00:00
Geoffrey Noer
a2bfe134c1 Tue Dec 31 15:19:32 1996 Geoffrey Noer <noer@cygnus.com>
* config/mn10300/tm-mn10300.h: more small register fixes
1996-12-31 23:21:34 +00:00
Mark Alexander
133b13c022 * config/mips/tm-mips.h: Undefine BREAKPOINT, replace
with separate LITTLE_BREAKPOINT and BIG_BREAKPOINT definitions;
	this fixes problem with setting breakpoints in little-endian
	programs in the simulator.
1996-12-31 15:02:30 +00:00
Mark Alexander
04624a8582 * config/i386/xm-windows.h: Undo previous change to SIGTRAP
and SIGQUIT values; it messed up non-MIPS targets.
1996-12-31 15:01:55 +00:00
Mark Alexander
c82844f78e * config/i386/xm-windows.h: Undo previous change to SIGTRAP
and SIGQUIT values; it messed up non-MIPS targets.
	* config/mips/tm-mips.h: Undefine BREAKPOINT, replace
	with separate LITTLE_BREAKPOINT and BIG_BREAKPOINT definitions;
	this fixes problem with setting breakpoints in little-endian
	programs in the simulator.
1996-12-31 15:01:12 +00:00
David Edelsohn
d9ad8adf03 * remote-sim.c (gdbsim_open_p): New static local.
(gdbsim_open): Call unpush_target if sim open.  Set gdbsim_open_p.
	(gdbsim_close): Only call sim_close if sim open.  Reset gdbsim_open_p.
1996-12-30 08:34:35 +00:00
Mark Alexander
62487cdb30 * config/i386/xm-windows.h: Make SIGTRAP and SIGQUIT consistent
with sim/mips/support.h.
1996-12-29 17:18:12 +00:00
Michael Meissner
0b019fa141 Add large frame support 1996-12-27 20:59:46 +00:00
Michael Meissner
a490f8c130 Work with new compiler frame layout 1996-12-27 19:58:59 +00:00
Mark Alexander
25012f0e71 * valprint.c (print_longest): Don't lose upper bits
of 64-bit values on Windows.
	* config/i386/xm-windows.h: Leave CC_HAS_LONG_LONG defined,
	undefine PRINTF_HAS_LONG_LONG, so that 64-bit values will
	be printed without loss of upper bits.
1996-12-27 04:04:44 +00:00
Michael Snyder
5a1ed5f71d Thu Dec 26 15:56:09 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* sparclet-stub.c: a few clean-ups, removing dead code
        * config/sparc/tm-sparclet.h: make registers ASR15, ASR19 invisible
          (they're not useful, you can't change, write or even read them)
1996-12-27 00:03:41 +00:00
Fred Fish
34191e5205 * config/pa/hppahpux.mh (TERMCAP): Always link to libc before
libcurses, to avoid picking up broken select() from libcurses
	on some versions of HPUX.
1996-12-26 23:29:26 +00:00
Michael Snyder
a7f6f9ed4d Thu Dec 26 15:15:21 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* sparclet-rom.c: Remove includes of Unix system files.
          Add function "sparclet_supply_register" so that parse_register_dump
          will not seg-fault by calling a null function pointer.
          Remove XMODEM support (unfinished work?).
          Remove flag "MO_HANDLE_NL", so monitor's output can be read by humans.
          Add fill command.
          Remove colon from getreg.resp_delim so PSR register will work.
          Remove pointer to sparclet_load (downloading SREC's doesn't work).
          Null out local register names for %g0, all %cc and all %asr regs,
          since the monitor can't report them.  Will return zero instead.
        * sparclet-stub.c: New -- remote protocol support for sparclet CPU.
        * config/sparc/tm-sparclet.h: Re-arrange REGISTER_NAMES:
          Add back %g0 and %psr, add %cc coprocessor regs, add %asr regs.
          Adjust NUM_REGS and REGISTER_BYTES accordingly
1996-12-26 23:16:27 +00:00
Jeff Law
7282d6111c * remote-e7000.c (want_h8300h, want_nopc_h8300h): Renamed
from want and want_nopc.
        (want_h8300s, want_nopc_h8300s): New variables for H8/S register
        lists.
        (e7000_fetch_registers): Use H8/300H or H8/S register list string
        as needed.
        (e7000_wait): Likewise.
Bringing over a change from hmse-h8s-beta branch.
1996-12-24 17:34:41 +00:00
Peter Schauer
a09f340401 * mips-tdep.c (mips_find_saved_regs): If a frame has been
interrupted by a signal, figure out whether the registers that
	the proc_desc claims are saved have been saved yet.
	(mips_push_dummy_frame):  Write dummy frame register after all
	registers have been saved in the dummy frame. Update comments
	to reflect the fact that we are now using an AT_ENTRY_POINT
	call dummy.
1996-12-23 10:30:51 +00:00
Martin Hunt
294f72b25b Sun Dec 22 15:52:25 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* d10v-tdep.c (d10v_skip_prologue): PR11287.  Fix problem where
	some breakpoints weren't being set.
1996-12-22 23:56:01 +00:00
Peter Schauer
988eafc044 * config/mips/tm-mips.h (PC_IN_CALL_DUMMY): Removed, the default
definition in inferior.h is sufficient.
1996-12-21 21:01:19 +00:00
Peter Schauer
61d2d19a17 * config/mips/tm-mips.h (PC_IN_CALL_DUMMY): Removed, the default
definition in inferior.h is sufficient.
	* mips-tdep.c (mips_pc_in_call_dummy):  Ditto.
	(mips_push_arguments):  Make sure that the stack is aligned to a
	multiple of 8 after the arguments are pushed.
	Structures are always passed by value in the old ABI.
	Adjust argument register value on big endian targets when passing
	a value whose length is less than the register size.
	Write stack arguments with a single write_memory call.
	(mips_pop_frame):  Use frame_saved_regs instead of proc_desc to
	decide which registers have to be restored.
1996-12-21 21:01:01 +00:00
Peter Schauer
bb4569b9f6 * irix5-nat.c (fill_gregset): Sign extend registers before
filling in the gregset structure.
1996-12-21 10:10:43 +00:00
Stu Grossman
334162c138 * mswin/genmakes: Don't define _DEBUG. This breaks wingdb. 1996-12-20 19:08:13 +00:00
Michael Meissner
b71f8719a0 Recognize -mep mode when used to store the stack frame 1996-12-20 00:44:15 +00:00
David Edelsohn
f8dfe411d2 * m32r-tdep.c (m32r_frame_find_saved_regs): Fix thinko in arg def. 1996-12-20 00:00:53 +00:00
Stan Shebs
7885e8b3c9 * mpw-make.sed: Use NewFolderRecursive for installation. 1996-12-19 19:46:32 +00:00
Mark Alexander
214e969267 * values.c (unpack_double): Make it compile with MSVC++ 2.x.
* remote-mips.c (S_IROTH): Define if not defined by stat.h, e.g.
	when using MSVC++.
	(common_open): Fix help string.
1996-12-19 17:45:57 +00:00
Geoffrey Noer
4c7be7baf5 fixed .Sanitize 1996-12-17 20:59:13 +00:00
Angela Marie Thomas
72e83496c1 add missing Do-last: 1996-12-17 19:45:09 +00:00
Mark Alexander
d31b72a314 * config/mips/tm-mips.h (FIX_CALL_DUMMY): Define to set up $25
correctly for PIC on Irix 5.
1996-12-15 04:59:33 +00:00
Mark Alexander
97e091b20f * mips-tdep.c (mips_push_arguments): Handle floating point args.
* config/mips/tm-mips.h (FIX_CALL_DUMMY): Define to set up $25
	correctly for PIC on Irix 5.
1996-12-15 04:59:14 +00:00
Peter Schauer
958866c5ca * i386-tdep.c (i386_frame_find_saved_regs): Handle zero return
from get_pc_function_start gracefully.
1996-12-14 17:54:53 +00:00
Peter Schauer
a46d92a736 * c-exp.y (qualified_name): Replace explicit check for valid
destructor name with call to destructor_name_p.

	* c-lang.h, c-typeprint.c (cp_type_print_method_args):  Removed,
	no longer needed.

	* c-typeprint.c (c_type_print_varspec_prefix, c_type_print_base):
	Replace remaining fprintf_unfiltered calls with their filtered variant.
	(c_type_print_base):  Do not print return type for destructors from
	template classes.
	Replace cp_type_print_method_args with cplus_demangle call to get
	consistent type output for stubbed and unstubbed methods.

	* cp-valprint.c (cp_print_class_method):  Replace
	cp_type_print_method_args with cplus_demangle call to get consistent
	type output for stubbed and unstubbed methods.

	* gdbtypes.c, gdbtypes.h (get_destructor_fn_field):  New function
	to find the destructor field indices for a type.

	* gdbtypes.h (struct type):  Clarify comments for vptr_basetype
	and arg_types fields.
	(struct fn_field):  Remove args field, no longer used.

	* symtab.c (decode_line_1), valops.c (value_struct_elt,
	check_field_in):  Use get_destructor_fn_field to find the destructor
	field indices instead of assuming that the compiler passes the member
	function fields in a specific order.

	* symtab.c (find_methods):  Pass NULL instead of SYMBOL_BLOCK_VALUE
	to lookup_symbol.
	(list_symbol):  Replace cp_type_print_method_args with cplus_demangle
	call in zapped out code and explain why this code is zapped out.
1996-12-14 09:17:22 +00:00
Michael Meissner
1e4a0d020f Add ../sim/common/libcommon.a 1996-12-12 18:30:50 +00:00
Mark Alexander
78b9b17039 * gdbtk.c (gdb_loc): Correct truncation of PC on 64-bit MIPS. 1996-12-12 02:54:55 +00:00