| Index: src/IceTargetLoweringARM32.cpp
|
| diff --git a/src/IceTargetLoweringARM32.cpp b/src/IceTargetLoweringARM32.cpp
|
| index 06269027d04bde8c5ed795ba990a2eb6bc205f0d..3ccaeadb6d0e3c3c09f5763f0577adeb7f9d0c89 100644
|
| --- a/src/IceTargetLoweringARM32.cpp
|
| +++ b/src/IceTargetLoweringARM32.cpp
|
| @@ -271,6 +271,18 @@ constexpr SizeT NumVec128Args =
|
| #undef X
|
| ;
|
| std::array<uint32_t, NumVec128Args> Vec128ArgInitializer;
|
| +
|
| +IceString getRegClassName(RegClass C) {
|
| + auto ClassNum = static_cast<RegARM32::RegClassARM32>(C);
|
| + assert(ClassNum < RegARM32::RCARM32_NUM);
|
| + switch (ClassNum) {
|
| + default:
|
| + assert(C < RC_Target);
|
| + return regClassString(C);
|
| + // Add handling of new register classes below.
|
| + }
|
| +}
|
| +
|
| } // end of anonymous namespace
|
|
|
| TargetARM32::TargetARM32(Cfg *Func)
|
| @@ -331,18 +343,19 @@ void TargetARM32::staticInit(GlobalContext *Ctx) {
|
| TypeToRegisterSet[IceType_v4f32] = VectorRegisters;
|
|
|
| filterTypeToRegisterSet(
|
| - Ctx, RegARM32::Reg_NUM, TypeToRegisterSet, RegARM32::RCARM32_NUM,
|
| - [](int32_t RegNum) -> IceString {
|
| + Ctx, RegARM32::Reg_NUM, TypeToRegisterSet,
|
| + llvm::array_lengthof(TypeToRegisterSet), [](int32_t RegNum) -> IceString {
|
| + // This function simply removes ", " from the register name.
|
| IceString Name = RegARM32::getRegName(RegNum);
|
| constexpr const char RegSeparator[] = ", ";
|
| constexpr size_t RegSeparatorWidth =
|
| llvm::array_lengthof(RegSeparator) - 1;
|
| for (size_t Pos = Name.find(RegSeparator); Pos != std::string::npos;
|
| Pos = Name.find(RegSeparator)) {
|
| - Name.replace(Pos, RegSeparatorWidth, ":");
|
| + Name.replace(Pos, RegSeparatorWidth, "");
|
| }
|
| return Name;
|
| - });
|
| + }, getRegClassName);
|
| }
|
|
|
| namespace {
|
| @@ -6455,7 +6468,7 @@ void TargetHeaderARM32::lower() {
|
| Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n";
|
| }
|
|
|
| -llvm::SmallBitVector TargetARM32::TypeToRegisterSet[IceType_NUM];
|
| +llvm::SmallBitVector TargetARM32::TypeToRegisterSet[RegARM32::RCARM32_NUM];
|
| llvm::SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM];
|
|
|
| } // end of namespace ARM32
|
|
|