@@ -75,6 +75,8 @@ static bool isSupportedAArch64(uint64_t Type) {
7575 case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
7676 case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
7777 case ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
78+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
79+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
7880 case ELF::R_AARCH64_LD64_GOT_LO12_NC:
7981 case ELF::R_AARCH64_TLSDESC_LD64_LO12:
8082 case ELF::R_AARCH64_TLSDESC_ADD_LO12:
@@ -183,6 +185,8 @@ static size_t getSizeForTypeAArch64(uint64_t Type) {
183185 case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
184186 case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
185187 case ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
188+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
189+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
186190 case ELF::R_AARCH64_LD64_GOT_LO12_NC:
187191 case ELF::R_AARCH64_TLSDESC_LD64_LO12:
188192 case ELF::R_AARCH64_TLSDESC_ADD_LO12:
@@ -480,6 +484,12 @@ static uint64_t extractValueAArch64(uint64_t Type, uint64_t Contents,
480484 Contents &= ~0xffffffffffc003ffU ;
481485 return Contents >> (10 - 0 );
482486 }
487+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
488+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC: {
489+ // 16 bits immediate goes in [20:5] bits
490+ Contents &= ~0xffffffffffe0001fU ;
491+ return Contents >> 5 ;
492+ }
483493 case ELF::R_AARCH64_LDST128_ABS_LO12_NC: {
484494 // Immediate goes in bits 21:10 of ADD instruction, taken
485495 // from bits 11:4 of Symbol address
@@ -651,6 +661,8 @@ static bool isTLSAArch64(uint64_t Type) {
651661 case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
652662 case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
653663 case ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
664+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
665+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
654666 case ELF::R_AARCH64_TLSDESC_LD64_LO12:
655667 case ELF::R_AARCH64_TLSDESC_ADD_LO12:
656668 case ELF::R_AARCH64_TLSDESC_CALL:
@@ -716,6 +728,8 @@ static bool isPCRelativeAArch64(uint64_t Type) {
716728 case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
717729 case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
718730 case ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
731+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
732+ case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
719733 case ELF::R_AARCH64_LD64_GOT_LO12_NC:
720734 case ELF::R_AARCH64_TLSDESC_LD64_LO12:
721735 case ELF::R_AARCH64_TLSDESC_ADD_LO12:
0 commit comments