[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.

llvm-svn: 282956

llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp

index 90faa42..f3ef783 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;