diff options
| author | Markus Wick <degasus@users.noreply.github.com> | 2021-07-12 23:03:31 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-12 23:03:31 +0200 |
| commit | edc4396603298bffe559f076dfb5d0baf9bddc2c (patch) | |
| tree | 8c2eec82f91afa4d3bfbb28fbd69962c7b02924e /Source/Core/VideoCommon/VertexLoaderARM64.cpp | |
| parent | 2b26e729c3bc51c71824e012f10f12135a650b9b (diff) | |
| parent | 3af21d3d222b37ab5f259719cb72c3b8b1f386e2 (diff) | |
Merge pull request #9888 from JosJuice/jitarm64-logicalimm-everywhere
JitArm64: Stop using hand-encoded logical immediates
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoaderARM64.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/VertexLoaderARM64.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
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 |
