@@ -75,6 +75,8 @@ static bool isSupportedAArch64(uint64_t Type) {
75
75
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
76
76
case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
77
77
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:
78
80
case ELF::R_AARCH64_LD64_GOT_LO12_NC:
79
81
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
80
82
case ELF::R_AARCH64_TLSDESC_ADD_LO12:
@@ -183,6 +185,8 @@ static size_t getSizeForTypeAArch64(uint64_t Type) {
183
185
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
184
186
case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
185
187
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:
186
190
case ELF::R_AARCH64_LD64_GOT_LO12_NC:
187
191
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
188
192
case ELF::R_AARCH64_TLSDESC_ADD_LO12:
@@ -480,6 +484,12 @@ static uint64_t extractValueAArch64(uint64_t Type, uint64_t Contents,
480
484
Contents &= ~0xffffffffffc003ffU ;
481
485
return Contents >> (10 - 0 );
482
486
}
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
+ }
483
493
case ELF::R_AARCH64_LDST128_ABS_LO12_NC: {
484
494
// Immediate goes in bits 21:10 of ADD instruction, taken
485
495
// from bits 11:4 of Symbol address
@@ -651,6 +661,8 @@ static bool isTLSAArch64(uint64_t Type) {
651
661
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
652
662
case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
653
663
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:
654
666
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
655
667
case ELF::R_AARCH64_TLSDESC_ADD_LO12:
656
668
case ELF::R_AARCH64_TLSDESC_CALL:
@@ -716,6 +728,8 @@ static bool isPCRelativeAArch64(uint64_t Type) {
716
728
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
717
729
case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
718
730
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:
719
733
case ELF::R_AARCH64_LD64_GOT_LO12_NC:
720
734
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
721
735
case ELF::R_AARCH64_TLSDESC_ADD_LO12:
0 commit comments