{0, 512, FPRRegBank}
};
+// ValueMappings.
+RegisterBankInfo::ValueMapping ValMappings[] {
+ /* BreakDown, NumBreakDowns */
+ // 0: GPR 32-bit value.
+ {&PartMappings[0], 1},
+ // 1: GPR 64-bit value.
+ {&PartMappings[1], 1},
+ // 2: FPR 32-bit value.
+ {&PartMappings[2], 1},
+ // 3: FPR 64-bit value.
+ {&PartMappings[3], 1},
+ // 4: FPR 128-bit value.
+ {&PartMappings[4], 1},
+ // 5: FPR 256-bit value.
+ {&PartMappings[5], 1},
+ // 6: FPR 512-bit value.
+ {&PartMappings[6], 1}
+};
+
} // End AArch64 namespace.
} // End llvm namespace.
InstructionMapping FPRMapping(/*ID*/ 2, /*Cost*/ 1, /*NumOperands*/ 3);
for (unsigned Idx = 0; Idx != 3; ++Idx) {
GPRMapping.setOperandMapping(
- Idx, getValueMapping(
- &AArch64::PartMappings[AArch64::getRegBankBaseIdx(Size) +
- AArch64::FirstGPR],
- 1));
+ Idx, AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
+ AArch64::FirstGPR]);
FPRMapping.setOperandMapping(
- Idx, getValueMapping(
- &AArch64::PartMappings[AArch64::getRegBankBaseIdx(Size) +
- AArch64::FirstFPR],
- 1));
+ Idx, AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
+ AArch64::FirstFPR]);
}
AltMappings.emplace_back(std::move(GPRMapping));
AltMappings.emplace_back(std::move(FPRMapping));
// Finally construct the computed mapping.
for (unsigned Idx = 0; Idx < MI.getNumOperands(); ++Idx)
if (MI.getOperand(Idx).isReg())
- Mapping.setOperandMapping(
- Idx, getValueMapping(&AArch64::PartMappings[OpFinalIdx[Idx]], 1));
+ Mapping.setOperandMapping(Idx, AArch64::ValMappings[OpFinalIdx[Idx]]);
return Mapping;
}