]> granicus.if.org Git - llvm/commitdiff
[AArch64][RegisterBankInfo] Use the static opds mapping for alt mappings
authorQuentin Colombet <qcolombet@apple.com>
Fri, 30 Sep 2016 21:45:56 +0000 (21:45 +0000)
committerQuentin Colombet <qcolombet@apple.com>
Fri, 30 Sep 2016 21:45:56 +0000 (21:45 +0000)
Avoid to rely on the dynamically allocated operands mapping for the
alternative mapping.
NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282956 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64RegisterBankInfo.cpp

index 90faa42010e2d6e3317197ee06f95d51d0096cc8..f3ef78384fb05a9b73a52716d870b93d06228137 100644 (file)
@@ -248,20 +248,13 @@ AArch64RegisterBankInfo::getInstrAlternativeMappings(
                                   /*NumOperands*/ 3);
     InstructionMapping FPRMapping(/*ID*/ 2, /*Cost*/ 1, nullptr,
                                   /*NumOperands*/ 3);
-    GPRMapping.setOperandsMapping(getOperandsMapping(
-        {&AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
-                               AArch64::FirstGPR],
-         &AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
-                               AArch64::FirstGPR],
-         &AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
-                               AArch64::FirstGPR]}));
-    FPRMapping.setOperandsMapping(getOperandsMapping(
-        {&AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
-                               AArch64::FirstFPR],
-         &AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
-                               AArch64::FirstFPR],
-         &AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
-                               AArch64::FirstFPR]}));
+    unsigned RBIdx = AArch64::getRegBankBaseIdx(Size);
+    GPRMapping.setOperandsMapping(
+        &AArch64::ValMappings[AArch64::First3OpsIdx +
+                              (RBIdx + AArch64::FirstGPR) * 3]);
+    FPRMapping.setOperandsMapping(
+        &AArch64::ValMappings[AArch64::First3OpsIdx +
+                              (RBIdx + AArch64::FirstFPR) * 3]);
     AltMappings.emplace_back(std::move(GPRMapping));
     AltMappings.emplace_back(std::move(FPRMapping));
     return AltMappings;