diff options
-rw-r--r-- | compiler/utils/assembler_test.h | 15 | ||||
-rw-r--r-- | compiler/utils/x86/assembler_x86_test.cc | 40 | ||||
-rw-r--r-- | compiler/utils/x86_64/assembler_x86_64_test.cc | 40 |
3 files changed, 37 insertions, 58 deletions
diff --git a/compiler/utils/assembler_test.h b/compiler/utils/assembler_test.h index 05c79f3b21..e90187ccbc 100644 --- a/compiler/utils/assembler_test.h +++ b/compiler/utils/assembler_test.h @@ -316,9 +316,8 @@ class AssemblerTest : public AssemblerTestBase { for (auto reg : registers) { for (int64_t imm : imms) { - ImmType new_imm = CreateImmediate(imm); if (f != nullptr) { - (assembler_.get()->*f)(reg, new_imm + bias); + (assembler_.get()->*f)(reg, CreateImmediate(imm + bias)); } std::string base = fmt; @@ -516,6 +515,18 @@ class AssemblerTest : public AssemblerTestBase { bias); } + template <typename ImmType> + std::string RepeatFI(void (Ass::*f)(FPReg, ImmType), + size_t imm_bits, + const std::string& fmt) { + return RepeatTemplatedRegisterImmBits<FPReg, ImmType>(f, + imm_bits, + GetFPRegisters(), + &AssemblerTest::GetFPRegName, + fmt, + /*bias=*/ 0); + } + std::string RepeatFF(void (Ass::*f)(FPReg, FPReg), const std::string& fmt) { return RepeatTemplatedRegisters<FPReg, FPReg>(f, GetFPRegisters(), diff --git a/compiler/utils/x86/assembler_x86_test.cc b/compiler/utils/x86/assembler_x86_test.cc index 91ee2302db..b9205a9b31 100644 --- a/compiler/utils/x86/assembler_x86_test.cc +++ b/compiler/utils/x86/assembler_x86_test.cc @@ -1248,44 +1248,36 @@ TEST_F(AssemblerX86Test, Punpckhqdq) { DriverStr(RepeatFF(&x86::X86Assembler::punpckhqdq, "punpckhqdq %{reg2}, %{reg1}"), "punpckhqdq"); } -TEST_F(AssemblerX86Test, psllw) { - GetAssembler()->psllw(x86::XMM0, CreateImmediate(16)); - DriverStr("psllw $0x10, %xmm0\n", "psllwi"); +TEST_F(AssemblerX86Test, Psllw) { + DriverStr(RepeatFI(&x86::X86Assembler::psllw, 4u, "psllw ${imm}, %{reg}"), "psllwi"); } -TEST_F(AssemblerX86Test, pslld) { - GetAssembler()->pslld(x86::XMM0, CreateImmediate(16)); - DriverStr("pslld $0x10, %xmm0\n", "pslldi"); +TEST_F(AssemblerX86Test, Pslld) { + DriverStr(RepeatFI(&x86::X86Assembler::pslld, 5u, "pslld ${imm}, %{reg}"), "pslldi"); } -TEST_F(AssemblerX86Test, psllq) { - GetAssembler()->psllq(x86::XMM0, CreateImmediate(16)); - DriverStr("psllq $0x10, %xmm0\n", "psllqi"); +TEST_F(AssemblerX86Test, Psllq) { + DriverStr(RepeatFI(&x86::X86Assembler::psllq, 6u, "psllq ${imm}, %{reg}"), "psllqi"); } -TEST_F(AssemblerX86Test, psraw) { - GetAssembler()->psraw(x86::XMM0, CreateImmediate(16)); - DriverStr("psraw $0x10, %xmm0\n", "psrawi"); +TEST_F(AssemblerX86Test, Psraw) { + DriverStr(RepeatFI(&x86::X86Assembler::psraw, 4u, "psraw ${imm}, %{reg}"), "psrawi"); } -TEST_F(AssemblerX86Test, psrad) { - GetAssembler()->psrad(x86::XMM0, CreateImmediate(16)); - DriverStr("psrad $0x10, %xmm0\n", "psradi"); +TEST_F(AssemblerX86Test, Psrad) { + DriverStr(RepeatFI(&x86::X86Assembler::psrad, 5u, "psrad ${imm}, %{reg}"), "psradi"); } -TEST_F(AssemblerX86Test, psrlw) { - GetAssembler()->psrlw(x86::XMM0, CreateImmediate(16)); - DriverStr("psrlw $0x10, %xmm0\n", "psrlwi"); +TEST_F(AssemblerX86Test, Psrlw) { + DriverStr(RepeatFI(&x86::X86Assembler::psrlw, 4u, "psrlw ${imm}, %{reg}"), "psrlwi"); } -TEST_F(AssemblerX86Test, psrld) { - GetAssembler()->psrld(x86::XMM0, CreateImmediate(16)); - DriverStr("psrld $0x10, %xmm0\n", "psrldi"); +TEST_F(AssemblerX86Test, Psrld) { + DriverStr(RepeatFI(&x86::X86Assembler::psrld, 5u, "psrld ${imm}, %{reg}"), "psrldi"); } -TEST_F(AssemblerX86Test, psrlq) { - GetAssembler()->psrlq(x86::XMM0, CreateImmediate(16)); - DriverStr("psrlq $0x10, %xmm0\n", "psrlqi"); +TEST_F(AssemblerX86Test, Psrlq) { + DriverStr(RepeatFI(&x86::X86Assembler::psrlq, 6u, "psrlq ${imm}, %{reg}"), "psrlqi"); } TEST_F(AssemblerX86Test, psrldq) { diff --git a/compiler/utils/x86_64/assembler_x86_64_test.cc b/compiler/utils/x86_64/assembler_x86_64_test.cc index 6153ae0f9c..2d72bf6239 100644 --- a/compiler/utils/x86_64/assembler_x86_64_test.cc +++ b/compiler/utils/x86_64/assembler_x86_64_test.cc @@ -2093,59 +2093,35 @@ TEST_F(AssemblerX86_64Test, Punpckhqdq) { } TEST_F(AssemblerX86_64Test, Psllw) { - GetAssembler()->psllw(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1)); - GetAssembler()->psllw(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2)); - DriverStr("psllw $1, %xmm0\n" - "psllw $2, %xmm15\n", "psllwi"); + DriverStr(RepeatFI(&x86_64::X86_64Assembler::psllw, 4u, "psllw ${imm}, %{reg}"), "psllwi"); } TEST_F(AssemblerX86_64Test, Pslld) { - GetAssembler()->pslld(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1)); - GetAssembler()->pslld(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2)); - DriverStr("pslld $1, %xmm0\n" - "pslld $2, %xmm15\n", "pslldi"); + DriverStr(RepeatFI(&x86_64::X86_64Assembler::pslld, 5u, "pslld ${imm}, %{reg}"), "pslldi"); } TEST_F(AssemblerX86_64Test, Psllq) { - GetAssembler()->psllq(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1)); - GetAssembler()->psllq(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2)); - DriverStr("psllq $1, %xmm0\n" - "psllq $2, %xmm15\n", "psllqi"); + DriverStr(RepeatFI(&x86_64::X86_64Assembler::psllq, 6u, "psllq ${imm}, %{reg}"), "psllqi"); } TEST_F(AssemblerX86_64Test, Psraw) { - GetAssembler()->psraw(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1)); - GetAssembler()->psraw(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2)); - DriverStr("psraw $1, %xmm0\n" - "psraw $2, %xmm15\n", "psrawi"); + DriverStr(RepeatFI(&x86_64::X86_64Assembler::psraw, 4u, "psraw ${imm}, %{reg}"), "psrawi"); } TEST_F(AssemblerX86_64Test, Psrad) { - GetAssembler()->psrad(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1)); - GetAssembler()->psrad(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2)); - DriverStr("psrad $1, %xmm0\n" - "psrad $2, %xmm15\n", "psradi"); + DriverStr(RepeatFI(&x86_64::X86_64Assembler::psrad, 5u, "psrad ${imm}, %{reg}"), "psradi"); } TEST_F(AssemblerX86_64Test, Psrlw) { - GetAssembler()->psrlw(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1)); - GetAssembler()->psrlw(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2)); - DriverStr("psrlw $1, %xmm0\n" - "psrlw $2, %xmm15\n", "psrlwi"); + DriverStr(RepeatFI(&x86_64::X86_64Assembler::psrlw, 4u, "psrlw ${imm}, %{reg}"), "psrlwi"); } TEST_F(AssemblerX86_64Test, Psrld) { - GetAssembler()->psrld(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1)); - GetAssembler()->psrld(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2)); - DriverStr("psrld $1, %xmm0\n" - "psrld $2, %xmm15\n", "psrldi"); + DriverStr(RepeatFI(&x86_64::X86_64Assembler::psrld, 5u, "psrld ${imm}, %{reg}"), "psrldi"); } TEST_F(AssemblerX86_64Test, Psrlq) { - GetAssembler()->psrlq(x86_64::XmmRegister(x86_64::XMM0), x86_64::Immediate(1)); - GetAssembler()->psrlq(x86_64::XmmRegister(x86_64::XMM15), x86_64::Immediate(2)); - DriverStr("psrlq $1, %xmm0\n" - "psrlq $2, %xmm15\n", "psrlqi"); + DriverStr(RepeatFI(&x86_64::X86_64Assembler::psrlq, 6u, "psrlq ${imm}, %{reg}"), "psrlqi"); } TEST_F(AssemblerX86_64Test, Psrldq) { |