[lld] r271525 - Simplify mask computation.

Rafael Espindola via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 2 09:00:26 PDT 2016


Author: rafael
Date: Thu Jun  2 11:00:25 2016
New Revision: 271525

URL: http://llvm.org/viewvc/llvm-project?rev=271525&view=rev
Log:
Simplify mask computation.

Modified:
    lld/trunk/ELF/Target.cpp

Modified: lld/trunk/ELF/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Target.cpp?rev=271525&r1=271524&r2=271525&view=diff
==============================================================================
--- lld/trunk/ELF/Target.cpp (original)
+++ lld/trunk/ELF/Target.cpp Thu Jun  2 11:00:25 2016
@@ -1203,8 +1203,8 @@ void AArch64TargetInfo::writePlt(uint8_t
 
 static void updateAArch64Addr(uint8_t *L, uint64_t Imm) {
   uint32_t ImmLo = (Imm & 0x3) << 29;
-  uint32_t ImmHi = ((Imm & 0x1FFFFC) >> 2) << 5;
-  uint64_t Mask = (0x3 << 29) | (0x7FFFF << 5);
+  uint32_t ImmHi = (Imm & 0x1FFFFC) << 3;
+  uint64_t Mask = (0x3 << 29) | (0x1FFFFC << 3);
   write32le(L, (read32le(L) & ~Mask) | ImmLo | ImmHi);
 }
 
@@ -1240,11 +1240,11 @@ void AArch64TargetInfo::relocateOne(uint
   case R_AARCH64_ADR_PREL_PG_HI21:
   case R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
     checkInt<33>(Val, Type);
-    updateAArch64Addr(Loc, (Val >> 12) & 0x1FFFFF); // X[32:12]
+    updateAArch64Addr(Loc, Val >> 12);
     break;
   case R_AARCH64_ADR_PREL_LO21:
     checkInt<21>(Val, Type);
-    updateAArch64Addr(Loc, Val & 0x1FFFFF);
+    updateAArch64Addr(Loc, Val);
     break;
   case R_AARCH64_CALL26:
   case R_AARCH64_JUMP26:




More information about the llvm-commits mailing list