Andrew Cagney [Wed, 13 Nov 2002 17:59:40 +0000 (17:59 +0000)]
2002-11-13 Andrew Cagney <cagney@redhat.com>
* regcache.c (struct regcache): Replace passthough_p with
readonly_p.
(regcache_xmalloc): Initialize readonly_p.
(build_regcache): Initialize readonly_p.
(regcache_save): New function.
(regcache_restore): New function.
(regcache_cpy): Re-implement using regcache_save and
regcache_restore.
(regcache_raw_read): Update.
(regcache_cooked_read): When a read-only cache, checked for cached
pseudo register values.
(regcache_raw_write): Assert that the cache is not read-only.
Remove code handling a non-passthrough cache.
* regcache.h (regcache_save): Declare.
(regcache_restore): Declare.
Andrew Cagney [Wed, 13 Nov 2002 16:57:36 +0000 (16:57 +0000)]
2002-11-13 Andrew Cagney <cagney@redhat.com>
* regcache.c (struct regcache_descr): Add fields
sizeof_cooked_registers and sizeof_cooked_register_valid_p.
(init_legacy_regcache_descr): Compute the size of a cooked
register cache and then assign that to sizeof_raw_registers. Set
sizeof_raw_register_valid_p to sizeof_cooked_register_valid_p
(init_legacy_regcache_descr): Ditto.
* utils.c (gdb_realpath): Rewrite. Try, in order: realpath() with
a constant buffer; cannonicalize_file_name(); realpath() with a
pathconf() defined buffer, xstrdup().
Alan Modra [Tue, 12 Nov 2002 07:55:43 +0000 (07:55 +0000)]
* elflink.h (elf_link_add_object_symbols): Optimize stabs for
relocatable link too.
(elf_link_input_bfd): When emitting relocs, adjust offsets for
eh_frame and stab sections. Zap deleted relocs.
(elf_reloc_symbol_deleted_p): Return true for zero r_symndx.
(elf_bfd_discard_info): Run for relocatable link too.
* elf64-ppc.c (ppc64_elf_edit_opd): Rename from edit_opd. Make global.
Handle ld -r case.
(ppc64_elf_size_dynamic_sections): Don't call edit_opd from here.
* elf64-ppc.h (ppc64_elf_edit_opd): Declare.
* gdbtypes.h (struct main_type): Move artificial flag out of
loc. New member of ``struct field'' named static_kind. Reduce
overloaded meaning of bitsize.
(FIELD_ARTIFICIAL, SET_FIELD_PHYSNAME, SET_FIELD_PHYSADDR)
(TYPE_FIELD_STATIC, TYPE_FIELD_STATIC_HAS_ADDR): Likewise.
(FIELD_STATIC_KIND, TYPE_FIELD_STATIC_KIND): New macros.
Mark Kettenis [Sat, 9 Nov 2002 21:31:12 +0000 (21:31 +0000)]
* i386-linux-nat.c (ORIG_EAX): Define to -1 if not already
defined.
(regmap): Extend to cover all registers.
(PT_READ_U, PT_WRITE_U, PTRACE_XFER_TYPE,
OLD_CANNOT_FETCH_REGISTERS, OLD_CANNOT_STORE_REGISTERS): Remove
definitions.
(fetch_register, sore_register): Simplify.
(old_fetch_inferior_registers, old_store_inferior_registers):
Remove functions.
(cannot_fetch_register, cannot_store_register): Change
implementation to use regmap array to decide which registers
cannot be fetched/stored. This removes $orig_eax from the
registers that cannot be fetched/stored.
(fetch_inferior_registers): Call fetch_register directly instead
of calling old_fetch_inferior_registers.
(store_inferior_registers): Call store_register directly instead
of calling old_store_inferior_registers.
(i386_linux_dr_get): Replace PT_READ_U with PTRACE_PEEKUSER.
(i386_linux_dr_set): Replace PT_WRITE_U with PTRACE_POKEUSER.
* config/i386/nm-linux.h (U_REGS_OFFSET): Remove definition.
Klee Dienes [Sat, 9 Nov 2002 19:34:35 +0000 (19:34 +0000)]
2002-11-09 Klee Dienes <kdienes@apple.com>
* i387-tdep.c (i387_supply_register): When called with NULL as a
buffer, mark the register as not provided (to mirror the behavior
of supply_register).
(i387_supply_fxsave): Ditto.
(i387_supply_fsave): Ditto (inherits the behavior from
i387_supply_register).
Klee Dienes [Sat, 9 Nov 2002 19:28:22 +0000 (19:28 +0000)]
2002-11-09 Klee Dienes <kdienes@apple.com>
* blockframe.c (sigtramp_saved_pc): Use
builtin_type_void_code_ptr, not builtin_type_void_data_ptr (we are
extracting the PC). Use TYPE_LENGTH (builtin_type_void_code_ptr)
instead of (TARGET_PTR_BIT / TARGET_CHAR_BIT).
* frame.c (get_prev_frame): Cleanups. Eliminate redundant tests
for a NULL NEXT_FRAME. Simplify fromleaf initialization. Add
more comments. Zap dead code.
Mark Kettenis [Sat, 9 Nov 2002 12:44:23 +0000 (12:44 +0000)]
* infcmd.c (print_vector_info, print_float_info): Move code that
checks whether the target has any registers and whether there is a
selected frame up, such that it is also used if a target provides
multi-arch definitions of these functions.
* i386-linux-tdep.c: Include "reggroups.h".
(i386_linux_register_reggroup_p): New function.
(i386_linux_init_abi): Set register_reggroup_p to
i386_linux_register_reggroup_p.
* i386-tdep.h (i386_register_reggroup_p): Declare.
* i386-tdep.c: Include "reggroups.h".
(i386_init_reggroups): New function.
(i386_add_reggroups): New function.
(i386_register_reggroup_p): New function.
(i386_sse_reggroup, i386_mmx_reggroup): New variables.
(_initialize_i386_tdep): Call i386_init_reggroups.
(i386_gdbarch_init): Set register_reggroup_p and add in the i386
specific reggroups.
* frame.c (set_unwind_by_pc): Use dummy_frame_register_unwind.
* dummy-frame.c (find_dummy_frame): Rename
generic_find_dummy_frame, make static. Return the dummy frame
instead of the regcache.
(generic_find_dummy_frame): Re-implement using find_dummy_frame,
(cached_find_dummy_frame): New function. Use find_dummy_frame.
(dummy_frame_register_unwind): Rename
generic_call_dummy_register_unwind. Use cached_find_dummy_frame.
* dummy-frame.h (dummy_frame_register_unwind): Rename
generic_call_dummy_register_unwind.
Mark Kettenis [Fri, 8 Nov 2002 21:00:47 +0000 (21:00 +0000)]
* config/i386/tm-i386v42mp.h: Remove file. Move its contents,
except the inclusion of "i386/tm-i386.h", to...
* config/i386/nm-i386v42mp.h: ...here.
* config/i386/i386v42mp.mt (TM_FILE): Set to tm-i386.h.
Jeff Johnston [Fri, 8 Nov 2002 20:39:06 +0000 (20:39 +0000)]
2002-11-08 Jeff Johnston <jjohnstn@redhat.com>
* mi-main.c (mi_command_loop): Initialize raw_stdout and gdb_stdout
only if mi version is <= 1.
(mi_init_ui): Initialize raw_stdout and gdb_stdout if mi version
is > 1 so startup message is treated as console output. This is
part of fix for PR gdb/604.
Jeff Johnston [Fri, 8 Nov 2002 20:37:50 +0000 (20:37 +0000)]
2002-11-08 Jeff Johnston <jjohnstn@redhat.com>
* lib/mi-support.exp (mi_gdb_start): Verify the startup message
for mi1 and current mi is in correct format. New mi startup message
should be in mi console format. This is part of fix for PR gdb/604.
Jim Blandy [Fri, 8 Nov 2002 20:05:10 +0000 (20:05 +0000)]
* dwarf2read.c (read_func_scope): Restore list_in_scope properly
when we finish a function a context.
* buildsym.h (outermost_context_p): New macro.
(Bug analyzed by David Edelsohn.)
Jim Blandy [Fri, 8 Nov 2002 19:33:37 +0000 (19:33 +0000)]
* dwarf2read.c (read_func_scope): Restore local_symbols and
param_symbols after we finish the function context. (Based on a
patch from David Edelsohn.)
Joel Brobecker [Fri, 8 Nov 2002 03:35:47 +0000 (03:35 +0000)]
Preparation work to convert the hppa targets to multiarch partial.
* hppa-tdep.c: Add new functions replacing macro bodies from
config/pa/tm-hppa.h. These function will be used to initialize
the gdbarch structure. Import some comments from tm-hppa.h,
and place them where appropriate, to avoid loosing them when
we cleanup this file.
(hppa_reg_struct_has_addr): New function.
(hppa_inner_than): New function.
(hppa_stack_align): New function.
(hppa_pc_requires_run_before_use): New function.
(hppa_instruction_nullified): New function.
(hppa_register_byte): New function.
(hppa_register_virtual_type): New function.
(hppa_store_struct_return): New function.
(hppa_cannot_store_register): New function.
(hppa_frame_args_address): New function.
(hppa_frame_locals_address): New function.
(hppa_smash_text_address): New function.
(hppa_coerce_float_to_double): New function. Requires the inclusion
of "language.h".
* Makefile.in (hppa-tdep.o): Add dependency on language.h.
* tm-hppa.h (REG_STRUCT_HAS_ADDR): Change the definition of this
gdbarch-eligible macro to a call to the new associated function
created in hppa-tdep.c.
(INNER_THAN): Likewise.
(STACK_ALIGN): Likewise.
(PC_REQUIRES_RUN_BEFORE_USE): Likewise.
(INSTRUCTION_NULLIFIED): Likewise.
(REGISTER_BYTE): Likewise.
(REGISTER_VIRTUAL_TYPE): Likewise.
(STORE_STRUCT_RETURN): Likewise.
(CANNOT_STORE_REGISTER): Likewise.
(FRAME_ARGS_ADDRESS): Likewise.
(FRAME_LOCALS_ADDRESS): Likewise.
(SMASH_TEXT_ADDRESS): Likewise.
(COERCE_FLOAT_TO_DOUBLE): Likewise.
(ABOUT_TO_RETURN): Delete, as no longer used.