summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoaderARM64.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2021-07-12 12:05:34 +0200
committerJosJuice <josjuice@gmail.com>2021-07-12 22:25:49 +0200
commit8af5095ff4d8b4ede22f741ed08a67069134ffbb (patch)
tree031a980a2f290f355d276c2450619d36e8991110 /Source/Core/VideoCommon/VertexLoaderARM64.cpp
parent88fd9fd577ffc3c1af5a04cdf337ecd2990ccfe2 (diff)
JitArm64: Stop using hand-encoded logical immediates
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoaderARM64.cpp')
-rw-r--r--Source/Core/VideoCommon/VertexLoaderARM64.cpp11
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