X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gold%2Faarch64-reloc.def;h=0e2749437bc76277eb81fea85425cce8a043e437;hb=efb763a5ea351f9d865cbe491909f03472ebf2d6;hp=321e6796a70787d6efb86c40fefcdff53b3b3ac9;hpb=6b0ad2ebf6024419c84f35552f4eb55aa0b23195;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/aarch64-reloc.def b/gold/aarch64-reloc.def index 321e6796a7..0e2749437b 100644 --- a/gold/aarch64-reloc.def +++ b/gold/aarch64-reloc.def @@ -1,6 +1,6 @@ // aarch64-reloc.def -- AArch64 relocation definitions. -// Copyright (C) 2014-2015 Free Software Foundation, Inc. +// Copyright (C) 2014-2020 Free Software Foundation, Inc. // Written by Han Shen and Jing Yu . // This file is part of gold. @@ -32,6 +32,9 @@ // Type----------------------------+ | | | | | | | // Name | | | | | | | | // | | | | | | | | | +ARD(NONE , STATIC , NONE , Y, -1, 0,0 , 0,0 , 0 , DATA ) +// Above is from Table 4-5, Null relocation codes + ARD(ABS64 , STATIC , DATA , Y, -1, 0,0 , 0,0 , Symbol::ABSOLUTE_REF , DATA ) ARD(ABS32 , STATIC , DATA , Y, -1, 31,32 , 0,0 , Symbol::ABSOLUTE_REF , DATA ) ARD(ABS16 , STATIC , DATA , Y, -1, 15,16 , 0,0 , Symbol::ABSOLUTE_REF , DATA ) @@ -40,6 +43,20 @@ ARD(PREL32 , STATIC , DATA , Y, -1, 31,32 ARD(PREL16 , STATIC , DATA , Y, -1, 15,16 , 0,0 , Symbol::RELATIVE_REF , DATA ) // Above is from Table 4-6, Data relocations, 257-262. +ARD(MOVW_UABS_G0 , STATIC , AARCH64 , Y, 0, 0,16 , 0,15 , Symbol::ABSOLUTE_REF , MOVW ) +ARD(MOVW_UABS_G0_NC , STATIC , AARCH64 , Y, 0, 0,0 , 0,15 , Symbol::ABSOLUTE_REF , MOVW ) +ARD(MOVW_UABS_G1 , STATIC , AARCH64 , Y, 0, 0,32 , 16,31 , Symbol::ABSOLUTE_REF , MOVW ) +ARD(MOVW_UABS_G1_NC , STATIC , AARCH64 , Y, 0, 0,0 , 16,31 , Symbol::ABSOLUTE_REF , MOVW ) +ARD(MOVW_UABS_G2 , STATIC , AARCH64 , Y, 0, 0,48 , 32,47 , Symbol::ABSOLUTE_REF , MOVW ) +ARD(MOVW_UABS_G2_NC , STATIC , AARCH64 , Y, 0, 0,0 , 32,47 , Symbol::ABSOLUTE_REF , MOVW ) +ARD(MOVW_UABS_G3 , STATIC , AARCH64 , Y, 0, 0,0 , 48,63 , Symbol::ABSOLUTE_REF , MOVW ) +// Above is from Table 4-7, Group relocations to create a 16-, 32-, 48-, or 64-bit unsigned data value or address inline. + +ARD(MOVW_SABS_G0 , STATIC , AARCH64 , Y, 0, 16,16 , 0,15 , Symbol::ABSOLUTE_REF , MOVW ) +ARD(MOVW_SABS_G1 , STATIC , AARCH64 , Y, 0, 32,32 , 16,31 , Symbol::ABSOLUTE_REF , MOVW ) +ARD(MOVW_SABS_G2 , STATIC , AARCH64 , Y, 0, 48,48 , 32,47 , Symbol::ABSOLUTE_REF , MOVW ) +// Above is from Table 4-8, Group relocations to create a 16, 32, 48, or 64 bit signed data or offset value inline. + ARD(LD_PREL_LO19 , STATIC , AARCH64 , Y, -1, 20,20 , 2,20 , Symbol::RELATIVE_REF , LDST ) ARD(ADR_PREL_LO21 , STATIC , AARCH64 , Y, -1, 20,20 , 0,20 , Symbol::RELATIVE_REF , ADR ) ARD(ADR_PREL_PG_HI21 , STATIC , AARCH64 , Y, -1, 32,32 , 12,32 , Symbol::RELATIVE_REF , ADRP ) @@ -54,6 +71,7 @@ ARD(LDST128_ABS_LO12_NC , STATIC , AARCH64 , Y, -1, 0,RL_CHEC ARD(ADR_GOT_PAGE , STATIC , AARCH64 , Y, -1, 32,32 , 12,32 , Symbol::RELATIVE_REF , ADRP ) ARD(LD64_GOT_LO12_NC , STATIC , AARCH64 , Y, -1, 0,RL_CHECK_ALIGN8 , 3,11 , Symbol::ABSOLUTE_REF , LDST ) +ARD(LD64_GOTPAGE_LO15 , STATIC , AARCH64 , Y, -1, 0,15 , 3,14 , Symbol::RELATIVE_REF , LDST ) // Above 2 relocs are from Table 4-14, GOT-relative instruction relocations. (Some relocs in the table are not implemented yet.) ARD(TSTBR14 , STATIC , CFLOW , N, -1, 15,15 , 2,15 , (Symbol::FUNCTION_CALL|Symbol::ABSOLUTE_REF) , TBZNZ ) @@ -90,6 +108,14 @@ ARD(TLSLE_MOVW_TPREL_G0_NC , STATIC , AARCH64 , Y, 0, 0,0 ARD(TLSLE_ADD_TPREL_HI12 , STATIC , AARCH64 , Y, -1, 0,24 , 12,23 , Symbol::TLS_REF , ADD ) ARD(TLSLE_ADD_TPREL_LO12 , STATIC , AARCH64 , Y, -1, 0,12 , 0,11 , Symbol::TLS_REF , ADD ) ARD(TLSLE_ADD_TPREL_LO12_NC , STATIC , AARCH64 , Y, -1, 0,0 , 0,11 , Symbol::TLS_REF , ADD ) +ARD(TLSLE_LDST8_TPREL_LO12 , STATIC , AARCH64 , Y, -1, 0,12 , 0,11 , Symbol::TLS_REF , LDST ) +ARD(TLSLE_LDST8_TPREL_LO12_NC , STATIC , AARCH64 , Y, -1, 0,0 , 0,11 , Symbol::TLS_REF , LDST ) +ARD(TLSLE_LDST16_TPREL_LO12 , STATIC , AARCH64 , Y, -1, 0,12 , 1,11 , Symbol::TLS_REF , LDST ) +ARD(TLSLE_LDST16_TPREL_LO12_NC , STATIC , AARCH64 , Y, -1, 0,0 , 1,11 , Symbol::TLS_REF , LDST ) +ARD(TLSLE_LDST32_TPREL_LO12 , STATIC , AARCH64 , Y, -1, 0,12 , 2,11 , Symbol::TLS_REF , LDST ) +ARD(TLSLE_LDST32_TPREL_LO12_NC , STATIC , AARCH64 , Y, -1, 0,0 , 2,11 , Symbol::TLS_REF , LDST ) +ARD(TLSLE_LDST64_TPREL_LO12 , STATIC , AARCH64 , Y, -1, 0,12 , 3,11 , Symbol::TLS_REF , LDST ) +ARD(TLSLE_LDST64_TPREL_LO12_NC , STATIC , AARCH64 , Y, -1, 0,0 , 3,11 , Symbol::TLS_REF , LDST ) // Above is from Table 4-18, Local Exec TLS relocations, 544-571. ARD(TLSDESC_ADR_PAGE21 , STATIC , AARCH64 , Y, -1, 32,32 , 12,32 , Symbol::TLS_REF , ADRP ) @@ -100,5 +126,5 @@ ARD(TLSDESC_CALL , STATIC , CFLOW , Y, -1, 0,0 // Note - // A - Checking X, (L,U), if L == 0 && U == 0, no check. Otherwise, L!=0, -// check that -2^L<=X<2^U. Also an extra alignment check could be embeded +// check that -2^L<=X<2^U. Also an extra alignment check could be embedded // into U.