From 8af5095ff4d8b4ede22f741ed08a67069134ffbb Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 12 Jul 2021 12:05:34 +0200 Subject: JitArm64: Stop using hand-encoded logical immediates --- Source/Core/VideoCommon/VertexLoaderARM64.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'Source/Core/VideoCommon/VertexLoaderARM64.cpp') diff --git a/Source/Core/VideoCommon/VertexLoaderARM64.cpp b/Source/Core/VideoCommon/VertexLoaderARM64.cpp index dc760b011b..e47dd6a74e 100644 --- a/Source/Core/VideoCommon/VertexLoaderARM64.cpp +++ b/Source/Core/VideoCommon/VertexLoaderARM64.cpp @@ -97,8 +97,9 @@ void VertexLoaderARM64::GetVertexAddr(int array, VertexComponentFormat attribute if (array == ARRAY_POSITION) { - EOR(scratch2_reg, scratch1_reg, 0, - attribute == VertexComponentFormat::Index8 ? 7 : 15); // 0xFF : 0xFFFF + EOR(scratch2_reg, scratch1_reg, + attribute == VertexComponentFormat::Index8 ? LogicalImm(0xFF, 32) : + LogicalImm(0xFFFF, 32)); m_skip_vertex = CBZ(scratch2_reg); } @@ -262,7 +263,7 @@ void VertexLoaderARM64::ReadColor(VertexComponentFormat attribute, ColorFormat f REV16(scratch3_reg, scratch3_reg); // B - AND(scratch2_reg, scratch3_reg, 32, 4); + AND(scratch2_reg, scratch3_reg, LogicalImm(0x1F, 32)); ORR(scratch2_reg, ARM64Reg::WSP, scratch2_reg, ArithOption(scratch2_reg, ShiftType::LSL, 3)); ORR(scratch2_reg, scratch2_reg, scratch2_reg, ArithOption(scratch2_reg, ShiftType::LSR, 5)); ORR(scratch1_reg, ARM64Reg::WSP, scratch2_reg, ArithOption(scratch2_reg, ShiftType::LSL, 16)); @@ -300,7 +301,7 @@ void VertexLoaderARM64::ReadColor(VertexComponentFormat attribute, ColorFormat f UBFM(scratch1_reg, scratch3_reg, 4, 7); // G - AND(scratch2_reg, scratch3_reg, 32, 3); + AND(scratch2_reg, scratch3_reg, LogicalImm(0xF, 32)); ORR(scratch1_reg, scratch1_reg, scratch2_reg, ArithOption(scratch2_reg, ShiftType::LSL, 8)); // B @@ -413,7 +414,7 @@ void VertexLoaderARM64::GenerateVertexLoader() if (m_VtxDesc.low.PosMatIdx) { LDRB(IndexType::Unsigned, scratch1_reg, src_reg, m_src_ofs); - AND(scratch1_reg, scratch1_reg, 0, 5); + AND(scratch1_reg, scratch1_reg, LogicalImm(0x3F, 32)); STR(IndexType::Unsigned, scratch1_reg, dst_reg, m_dst_ofs); // Z-Freeze -- cgit v1.2.3