@@ -87,15 +87,13 @@ struct MCPlusBuilderTester : public testing::TestWithParam<Triple::ArchType> {
87
87
}
88
88
89
89
void testRegAliases (Triple::ArchType Arch, uint64_t Register,
90
- uint64_t *Aliases, size_t Count ,
90
+ std::initializer_list<MCPhysReg> ExpectedAliases ,
91
91
bool OnlySmaller = false ) {
92
92
if (GetParam () != Arch)
93
93
GTEST_SKIP ();
94
94
95
95
const BitVector &BV = BC->MIB ->getAliases (Register, OnlySmaller);
96
- ASSERT_EQ (BV.count (), Count);
97
- for (size_t I = 0 ; I < Count; ++I)
98
- ASSERT_TRUE (BV[Aliases[I]]);
96
+ assertRegMask (BV, ExpectedAliases);
99
97
}
100
98
101
99
char ElfBuf[sizeof (typename ELF64LE::Ehdr)] = {};
@@ -110,17 +108,15 @@ INSTANTIATE_TEST_SUITE_P(AArch64, MCPlusBuilderTester,
110
108
::testing::Values (Triple::aarch64));
111
109
112
110
TEST_P (MCPlusBuilderTester, AliasX0) {
113
- uint64_t AliasesX0[] = {AArch64::W0, AArch64::W0_HI,
114
- AArch64::X0, AArch64::W0_W1,
115
- AArch64::X0_X1, AArch64::X0_X1_X2_X3_X4_X5_X6_X7};
116
- size_t AliasesX0Count = sizeof (AliasesX0) / sizeof (*AliasesX0);
117
- testRegAliases (Triple::aarch64, AArch64::X0, AliasesX0, AliasesX0Count);
111
+ testRegAliases (Triple::aarch64, AArch64::X0,
112
+ {AArch64::W0, AArch64::W0_HI, AArch64::X0, AArch64::W0_W1,
113
+ AArch64::X0_X1, AArch64::X0_X1_X2_X3_X4_X5_X6_X7});
118
114
}
119
115
120
116
TEST_P (MCPlusBuilderTester, AliasSmallerX0) {
121
- uint64_t AliasesX0[] = {AArch64::W0 , AArch64::W0_HI, AArch64::X0};
122
- size_t AliasesX0Count = sizeof (AliasesX0) / sizeof (*AliasesX0);
123
- testRegAliases (Triple::aarch64, AArch64::X0, AliasesX0, AliasesX0Count, true );
117
+ testRegAliases (Triple::aarch64 , AArch64::X0,
118
+ {AArch64::W0, AArch64::W0_HI, AArch64::X0},
119
+ /* OnlySmaller= */ true );
124
120
}
125
121
126
122
TEST_P (MCPlusBuilderTester, testAccessedRegsImplicitDef) {
@@ -225,15 +221,13 @@ INSTANTIATE_TEST_SUITE_P(X86, MCPlusBuilderTester,
225
221
::testing::Values (Triple::x86_64));
226
222
227
223
TEST_P (MCPlusBuilderTester, AliasAX) {
228
- uint64_t AliasesAX[] = {X86::RAX, X86::EAX, X86::AX, X86::AL, X86::AH};
229
- size_t AliasesAXCount = sizeof (AliasesAX) / sizeof (*AliasesAX);
230
- testRegAliases (Triple::x86_64, X86::AX, AliasesAX, AliasesAXCount);
224
+ testRegAliases (Triple::x86_64, X86::AX,
225
+ {X86::RAX, X86::EAX, X86::AX, X86::AL, X86::AH});
231
226
}
232
227
233
228
TEST_P (MCPlusBuilderTester, AliasSmallerAX) {
234
- uint64_t AliasesAX[] = {X86::AX, X86::AL, X86::AH};
235
- size_t AliasesAXCount = sizeof (AliasesAX) / sizeof (*AliasesAX);
236
- testRegAliases (Triple::x86_64, X86::AX, AliasesAX, AliasesAXCount, true );
229
+ testRegAliases (Triple::x86_64, X86::AX, {X86::AX, X86::AL, X86::AH},
230
+ /* OnlySmaller=*/ true );
237
231
}
238
232
239
233
TEST_P (MCPlusBuilderTester, ReplaceRegWithImm) {
0 commit comments