and Kevin Buettner <kevinb@redhat.com>
Convert arm targets to new FRAME interface.
* arm-tdep.c (struct frame_extra_info): Remove fsr.
(arm_frame_find_save_regs): Delete.
(arm_frame_init_saved_regs): New.
(arm_init_extra_frame_info): Alloacte saved_regs as required.
Allocate extra_info as required. Convert all uses of fsr.regs
to use saved_regs, similarly all uses of EXTRA_FRAME_INFO fields
to use extra_info.
(thumb_scan_prologue, arm_scan_prologue, arm_find_callers_reg)
(arm_frame_chain, arm_frame_saved_pc, arm_pop_frame): Likewise.
(check_prologue_cache, save_prologue_cache): Likewise.
(_initialize_arm_tdep): Ensure prologue_cache is correctly set up.
* config/arm/tm-arm.h (EXTRA_FRAME_INFO): Delete.
(FRAME_FIND_SAVED_REGS): Delete.
(arm_frame_find_saved_regs): Delete prototype.
(arm_frame_init_saved_regs): New prototype.
(FRAME_INIT_SAVED_REGS): Define.
is_func_descriptor fields.
(link_hash_newfunc): Init them.
(ppc64_elf_check_relocs): Only R_PPC24_REL24 syms starting with a
dot are candidates for plt entries. When processing .opd relocs,
set function descriptor strings to point inside function code
string, and set new ppc_link_hash_entry fields.
(ppc64_elf_gc_sweep_hook): Don't sweep R_PPC64_REL24 relocs.
(ppc64_elf_adjust_dynamic_symbol): Remove most code dealing with
function descriptors. It's now done in..
(func_desc_adjust): New.
(ppc64_elf_func_desc_adjust): New.
(define elf_backend_always_size_sections): Define.
(ppc64_elf_hide_symbol): New.
(define elf_backend_hide_symbol): Define.
(allocate_dynrelocs): Remove code looking up function descriptors
as that has been done earlier.
(ppc64_elf_size_dynamic_sections): Use htab shortcut to elf hash
table.
(ppc64_elf_finish_dynamic_symbol): Likewise. Remove code looking
up function descriptor.
(build_one_stub): Look up the function code sym. Check for
invalid plt offsets.
(ppc64_elf_relocate_section): Tweak calls to undefined weak syms.
Convert R_PPC64_TOC relocs to R_PPC64_RELATIVE in shared libs.
(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.
do_mia, do_mar and do_mra respectively.
(do_mav_*): Renamed from do_c_*.
(mav_reg_required_here, mav_parse_offset): Renamed from
cirrus_reg_required_here and cirrus_parse_offset respectively.
(MAV_MODE?): Renamed from CIRRUS_MODE?.
(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.