From 5c57f1be7b46ac95e44467c234e034e9e0389589 Mon Sep 17 00:00:00 2001
From: Doug Kwan <dougkwan@google.com>
Date: Thu, 4 Feb 2010 03:32:18 +0000
Subject: 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().
---
 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

