* alpha-tdep.c (alpha_sigcontext_addr): New function.
(alpha_find_saved_regs): Use alpha_sigcontext_addr.
(alpha_gdbarch_init): Initialize tdep->sigcontext_addr.
* alpha-linux-tdep.c: Include frame.h.
(alpha_linux_sigcontext_addr): New function.
(alpha_linux_init_abi): Set tdep->sigcontext_addr to
alpha_linux_sigcontext_addr.
* alpha-osf1-tdep.c: Include gdbcore.h.
(alpha_osf1_sigcontext_addr): New function.
(alpha_osf1_init_abi): Set tdep->sigcontext_addr to
alpha_osf1_sigcontext_addr.
* config/alpha/tm-alpha.h (SIGCONTEXT_ADDR): Remove.
* config/alpha/tm-alphalinux.h (SIGCONTEXT_ADDR): Remove.
(alpha_gdbarch_init): Set gdbarch_breakpoint_from_pc to
alpha_breakpoint_from_pc. Set gdbarch_function_start_offset
to 0.
* config/alpha/tm-alpha.h: Remove forward decls of struct type
and struct value.
(FUNCTION_START_OFFSET): Remove.
(BREAKPOINT): Ditto.
(alpha_linux_init_abi): Set gdbarch_pc_in_sigtramp to
alpha_linux_pc_in_sigtramp.
* alpha-osf1-tdep.c (alpha_osf1_pc_in_sigtramp): New function.
(alpha_osf1_init_abi): Set gdbarch_pc_in_sigtramp to
alpha_osf1_pc_in_sigtramp.
* alpha-tdep.c (alpha_osf_in_sigtramp): Remove.
* alphafbsd-tdep.c (alphafbsd_pc_in_sigtramp): New function.
(alphafbsd_init_abi): Set gdbarch_pc_in_sigtramp to
alphafbsd_pc_in_sigtramp.
* alphanbsd-tdep.c (alphanbsd_pc_in_sigtramp): New function.
(alphanbsd_init_abi): Set gdbarch_pc_in_sigtramp to
alphanbsd_pc_in_sigtramp.
* config/alpha/tm-alpha.h (IN_SIGTRAMP): Remove.
* config/alpha/tm-alphalinux.h (IN_SIGTRAMP): Remove.
* alpha-tdep.c (heuristic_proc_start): Use vm_min_address
from gdbarch_tdep rather than a constant.
(alpha_gdbarch_init): Initialize tdep->vm_min_address to
the default text address for all Alpha Unix ABIs.
(alpha_dump_tdep): Report the value of tdep->vm_min_address.
* config/alpha/tm-alpha.h (VM_MIN_ADDRESS): Delete.
taken from...
* config/alpha/tm-alpha.h: ...here. Remove macros that we now
let gdbarch deal with.
(GDB_MULTI_ARCH): Define as GDB_MULTI_ARCH_PARTIAL.
* Makefile.in (alpha-nat.o): Add alpha-tdep.h and $(BFD_SRC)/elf-bfd
to dependency list.
* alpha-nat.c: Include alpha-tdep.h. Update for adjusted
Alpha target register names.
* alphabsd-nat.c: Likewise.
* alpha-tdep.c: Include alpha-tdep.h. Update for adjusted
Alpha target register names. Make serveral routines static.
(alpha_get_saved_register): New function.
(alpha_abi_names): New.
(process_note_abi_tag_sections): New function.
(get_elfosabi): New function.
(alpha_gdbarch_init): New function.
(alpha_dump_tdep): New function.
(_initialize_alpha_tdep): Register alpha_gdbarch_init.
(alpha_register_raw_size): Ditto.
(alpha_register_virtual_size): Ditto.
(alpha_skip_prologue_internal): Renamed from
alpha_skip_prologue.
(alpha_skip_prologue): New version that calls
alpha_skip_prologue_internal.
(alpha_in_lenient_prologue): Use alpha_skip_prologue_internal.
* config/alpha/tm-alpha.h (SKIP_PROLOGUE): Remove
second argument from alpha_skip_prologue.
(REGISTER_BYTE): Use alpha_register_byte.
(REGISTER_RAW_SIZE): Use alpha_register_raw_size.
(REGISTER_VIRTUAL_SIZE): Use alpha_register_virtual_size.
(FRAMELESS_FUNCTION_INVOCATION): Use
generic_frameless_function_invocation_not.
(FRAME_NUM_ARGS): Use frame_num_args_unknown.
(COERCE_FLOAT_TO_DOUBLE): Use standard_coerce_float_to_double.
(alpha_init_frame_pc_first): Ditto.
(alpha_fix_call_dummy): Ditto.
(alpha_store_struct_return): Ditto.
(alpha_extract_struct_value_address): Ditto.
* config/alpha/tm-alpha.h (REGISTER_VIRTUAL_TYPE): Use
alpha_register_virtual_type.
(STORE_STRUCT_RETURN): Use alpha_store_struct_return.
(EXTRACT_STRUCT_VALUE_ADDRESS): Use
alpha_extract_struct_value_address.
(FIX_CALL_DUMMY): Use alpha_fix_call_dummy.
(INIT_FRAME_PC): Use init_frame_pc_noop.
(INIT_FRAME_PC_FIRST): Use alpha_init_frame_pc_first.
(alpha_find_saved_regs): Make static. Use
frame->extra_info.
(alpha_frame_init_saved_regs): New function.
(alpha_frame_saved_pc): Use frame->extra_info.
(temp_saved_regs): Don't declare as struct frame_saved_regs.
(heuristic_proc_desc): Adjust for temp_saved_regs changes.
(init_extra_frame_info): Rename to...
(alpha_init_extra_frame_info): ...this. Use frame->extra_info.
(alpha_print_extra_frame_info): New function.
(alpha_frame_locals_address): Ditto.
(alpha_frame_args_address): Ditto.
(alpha_pop_frame): Use frame->extra_info.
* config/alpha/tm-alpha.h (FRAME_ARGS_ADDRESS): Use
alpha_frame_args_address.
(FRAME_LOCALS_ADDRESS): Use alpha_frame_locals_address.
(alpha_find_saved_regs): Remove prototype.
(FRAME_INIT_SAVED_REGS): Use alpha_frame_init_saved_regs.
(EXTRA_FRAME_INFO): Remove.
(INIT_EXTRA_FRAME_INFO): Use alpha_init_extra_frame_info.
(PRINT_EXTRA_FRAME_INFO): Use alpha_print_extra_frame_info.
(alpha_cannot_fetch_register): Ditto.
(alpha_cannot_store_register): Ditto.
(alpha_register_convertible): Ditto.
(alpha_use_struct_convention): Ditto.
* config/alpha/tm-alpha.h: Update copyright years.
(IN_SIGTRAMP): Use alpha_osf_in_sigtramp.
(INNER_THAN): Use core_addr_lessthan.
(CANNOT_FETCH_REGISTER): Use alpha_cannot_fetch_register.
(CANNOT_STORE_REGISTER): Use alpha_cannot_store_register.
(REGISTER_CONVERTIBLE): Use alpha_register_convertible.
(USE_STRUCT_CONVENTION): Use alpha_use_struct_convention.
(FRAME_CHAIN): Remove unnecessary cast.
* gdbarch.sh (IEEE_FLOAT): New entry.
* gdbarch.c, gdbarch.h: Regenerated.
* valprint.c (IEEE_FLOAT): Provide a default #definition for this.
(print_floating): Use IEEE_FLOAT as if it were an expression; use
the code specific to IEEE-format numbers whenever the value of
IEEE_FLOAT is non-zero.
* config/a29k/tm-a29k.h, config/alpha/tm-alpha.h,
config/arc/tm-arc.h, config/arm/tm-arm.h, config/fr30/tm-fr30.h,
config/h8300/tm-h8300.h, config/i386/tm-i386.h,
config/i960/tm-i960.h, config/m88k/tm-m88k.h,
config/mips/tm-mips.h, config/pa/tm-hppa.h,
config/sparc/tm-sparc.h, config/delta/tm-delta.h,
config/frv/tm-frv.h (IEEE_FLOAT): For all ports that #define
IEEE_FLOAT, make sure they give it the value (1).
* valops.c (COERCE_FLOAT_TO_DOUBLE): Rework definition to be
more function-like.
(default_coerce_float_to_double, standard_coerce_float_to_double):
New functions.
(value_arg_coerce): Adjust for new definition.
* value.h (default_coerce_float_to_double,
standard_coerce_float_to_double): New declarations for the above.
* gdbarch.sh (coerce_float_to_double): New entry, replacing macro.
* gdbarch.c, gdbarch.h: Regenerated.
* tm-alpha.h, tm-fr30.h, tm-m32r.h, tm-mips.h, tm-hppa.h,
tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change
definitions.
* mips-tdep.c (mips_coerce_float_to_double): Supply our own custom
function here.
(mips_gdbarch_init): Install that as our coerce_float_to_double
function.
Thu Jul 25 19:41:31 1996 Fred Fish <fnf@cygnus.com>
for details about these changes. I was going to include the complete
entry in the checkin message but it was apparently so large it caused
cvs to dump core.
The old way (using #undef in tm.h) was ugly and asking for
trouble, because it makes it possible for some file to use the
wrong definition. Move definition of HOST_CHAR_BIT after definition
of TARGET_CHAR_BIT.
* config/alpha/tm-alpha.h, config/h8300/tm-h8300.h,
config/h8500/tm-h8500.h, config/z8k/tm-z8k.h: Don't undef TARGET_*_BIT
before defining them.