@@ -87,15 +87,13 @@ struct MCPlusBuilderTester : public testing::TestWithParam<Triple::ArchType> {
8787 }
8888
8989 void testRegAliases (Triple::ArchType Arch, uint64_t Register,
90- uint64_t *Aliases, size_t Count ,
90+ std::initializer_list<MCPhysReg> ExpectedAliases ,
9191 bool OnlySmaller = false ) {
9292 if (GetParam () != Arch)
9393 GTEST_SKIP ();
9494
9595 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);
9997 }
10098
10199 char ElfBuf[sizeof (typename ELF64LE::Ehdr)] = {};
@@ -110,17 +108,15 @@ INSTANTIATE_TEST_SUITE_P(AArch64, MCPlusBuilderTester,
110108 ::testing::Values (Triple::aarch64));
111109
112110TEST_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});
118114}
119115
120116TEST_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 );
124120}
125121
126122TEST_P (MCPlusBuilderTester, AArch64_CmpJE) {
@@ -273,15 +269,13 @@ INSTANTIATE_TEST_SUITE_P(X86, MCPlusBuilderTester,
273269 ::testing::Values (Triple::x86_64));
274270
275271TEST_P (MCPlusBuilderTester, AliasAX) {
276- uint64_t AliasesAX[] = {X86::RAX, X86::EAX, X86::AX, X86::AL, X86::AH};
277- size_t AliasesAXCount = sizeof (AliasesAX) / sizeof (*AliasesAX);
278- testRegAliases (Triple::x86_64, X86::AX, AliasesAX, AliasesAXCount);
272+ testRegAliases (Triple::x86_64, X86::AX,
273+ {X86::RAX, X86::EAX, X86::AX, X86::AL, X86::AH});
279274}
280275
281276TEST_P (MCPlusBuilderTester, AliasSmallerAX) {
282- uint64_t AliasesAX[] = {X86::AX, X86::AL, X86::AH};
283- size_t AliasesAXCount = sizeof (AliasesAX) / sizeof (*AliasesAX);
284- testRegAliases (Triple::x86_64, X86::AX, AliasesAX, AliasesAXCount, true );
277+ testRegAliases (Triple::x86_64, X86::AX, {X86::AX, X86::AL, X86::AH},
278+ /* OnlySmaller=*/ true );
285279}
286280
287281TEST_P (MCPlusBuilderTester, ReplaceRegWithImm) {
0 commit comments