From 5c57f1be7b46ac95e44467c234e034e9e0389589 Mon Sep 17 00:00:00 2001 From: Doug Kwan Date: Thu, 4 Feb 2010 03:32:18 +0000 Subject: 2010-02-03 Doug Kwan * 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(). --- gold/arm-reloc.def | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gold/arm-reloc.def') diff --git a/gold/arm-reloc.def b/gold/arm-reloc.def index 6228839..39ec3d6 100644 --- a/gold/arm-reloc.def +++ b/gold/arm-reloc.def @@ -109,9 +109,9 @@ RD(MOVT_ABS , STATIC , N, ARM , S + A , Y, -1, Y) RD(MOVW_PREL_NC , STATIC , N, ARM , ((S + A) | T) - P , Y, -1, N) RD(MOVT_PREL , STATIC , N, ARM , (S + A) - P , Y, -1, Y) RD(THM_MOVW_ABS_NC , STATIC , N, THM32, (S + A) | T , Y, -1, N) -RD(THM_MOVT_ABS , STATIC , N, THM32, S + A , Y, -1, Y) +RD(THM_MOVT_ABS , STATIC , N, THM32, S + A , Y, -1, N) RD(THM_MOVW_PREL_NC , STATIC , N, THM32, ((S + A) | T) - P , Y, -1, N) -RD(THM_MOVT_PREL , STATIC , N, THM32, S + A - P , Y, -1, Y) +RD(THM_MOVT_PREL , STATIC , N, THM32, S + A - P , Y, -1, N) RD(THM_JUMP19 , STATIC , N, THM32, ((S + A) | T) - P , Y, -1, Y) RD(THM_JUMP6 , STATIC , N, THM16, S + A - P , Y, -1, Y) RD(THM_ALU_PREL_11_0 , STATIC , N, THM32, ((S + A) | T) - Pa , Y, -1, Y) @@ -149,7 +149,7 @@ RD(MOVW_BREL_NC , STATIC , N, ARM , ((S + A) | T) - B(S) , Y, -1, N) RD(MOVT_BREL , STATIC , N, ARM , S + A - B(S) , Y, -1, Y) RD(MOVW_BREL , STATIC , N, ARM , ((S + A) | T) - B(S) , Y, -1, Y) RD(THM_MOVW_BREL_NC , STATIC , N, THM32, ((S + A) | T) - B(S) , Y, -1, N) -RD(THM_MOVT_BREL , STATIC , N, THM32, S + A - B(S) , Y, -1, Y) +RD(THM_MOVT_BREL , STATIC , N, THM32, S + A - B(S) , Y, -1, N) RD(THM_MOVW_BREL , STATIC , N, THM32, ((S + A) | T) - B(S) , Y, -1, Y) RD(TLS_GOTDESC , STATIC , N, DATA , NONE , Y, -1, N) RD(TLS_CALL , STATIC , N, ARM , NONE , N, -1, Y) @@ -157,7 +157,7 @@ RD(TLS_DESCSEQ , STATIC , N, ARM , NONE , N, -1, Y) RD(THM_TLS_CALL , STATIC , N, THM32, NONE , N, -1, Y) RD(PLT32_ABS , STATIC , N, DATA , PLT(S) + A , N, -1, N) RD(GOT_ABS , STATIC , N, DATA , GOT(S) + A , N, -1, N) -RD(GOT_PREL , STATIC , N, DATA , GOT(S) + A - P , N, -1, N) +RD(GOT_PREL , STATIC , N, DATA , GOT(S) + A - P , Y, -1, N) RD(GOT_BREL12 , STATIC , N, ARM , GOT(S) + A - GOT_ORG , N, -1, Y) RD(GOTOFF12 , STATIC , N, ARM , S + A - GOT_ORG , N, -1, Y) RD(GOTRELAX , STATIC , N, MISC , NONE , N, -1, N) -- cgit v1.1