This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, This patch simplifies code that deals with similar relocations in Target_arm::Relocate::relocate. For group relocations, the group number is no longer hard-coded in Target_arm::Relocate::relocate. We now look up the property table for that information. That same applies to overflow checking. This way we can share code between relocate codes that are similar but have different group index and overflow checking flag. The patch also simplifies similar relocation code that have different address bases. It also removes two function Target_arm::reloc_uses_thumb_bit and Target_arm::Relocate::reloc_needs_sym_origin and fixes a few mistake in arm-reloc.def. -Doug 2010-02-03 Doug Kwan <dougkwan@google.com> * arm-reloc-property.cc (Arm_reloc_property_table::reloc_name_in_error_message): New method definition. * arm-reloc-property.h (Arm_reloc_property_table::get_implemented_static_reloc_property): New method definition. (Arm_reloc_property_table::reloc_name_in_error_message): New method declaration. * arm-reloc.def (THM_MOVT_ABS, THM_MOVT_PREL, THM_MOVT_BREL): Change overflow to N. (GOT_PREL): Change implemented to Y. * arm.cc (Target_arm::reloc_uses_thumb_bit): Remove method. (Target_arm::Relocate::reloc_needs_sym_origin): Remove method. (Arm_relocate_functions::movw_abs_nc): Remove method. (Arm_relocate_functions::movt_abs): Ditto. (Arm_relocate_functions::thm_movw_abs_nc): Ditto. (Arm_relocate_functions::thm_movt_abs): Ditto. (Arm_relocate_functions::movw_rel_nc): Ditto. (Arm_relocate_functions::movw_rel): Ditto. (Arm_relocate_functions::movt_rel): Ditto. (Arm_relocate_functions:thm_movw_rel_nc): Ditto. (Arm_relocate_functions:thm_movw_rel): Ditto. (Arm_relocate_functions:thm_movt_rel): Ditto. (Arm_relocate_functions::movw, Arm_relocate_functions::movt, (Arm_relocate_functions::thm_movw, Arm_relocate_functions::thm_movt): New method definitions. (Arm_relocation_functions::arm_grp_alu): Add assertion for group index. (Arm_relocation_functions::arm_grp_ldr): Ditto. (Arm_relocation_functions::arm_grp_ldrs): Ditto. (Arm_relocation_functions::arm_grp_ldc): Ditto. (Target_arm::Relocate::relocate): Check for non-static or unimplemented relocation code and exit early. Change calls to Target_arm::reloc_uses_thumb_bit and Target_arm::Reloc::reloc_needs_sym_origin to use relocation property instead. Refactor code to handle similar relocations to increase code sharing. Remove check for unsupported relocation code in switch statement. (Target_arm::Relocatable_size_for_reloc::get_size_for_reloc): Use relocation property table to find out size. Change error message to print out the name of a relocation code instead of the numeric value. (Target_arm::scan_reloc_for_stub): Use relocation property table instead of calling Target_arm::reloc_uses_thumb_bit().
Attachment:
patch-refactor.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |