aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/arm
diff options
context:
space:
mode:
authorLiam <[email protected]>2023-12-19 12:51:19 -0500
committerLiam <[email protected]>2023-12-19 12:51:19 -0500
commita94721fde0eb716e6c70da285a320b9b96c0c292 (patch)
tree5a8de4ca091e3a341d2a3cb6aa6f1d84e1fe94c1 /src/core/arm
parentefe52db69021f94e3c23ee7bc7e4a6ca7e92ecc6 (diff)
downloadyuzu-mainline-a94721fde0eb716e6c70da285a320b9b96c0c292.tar.gz
yuzu-mainline-a94721fde0eb716e6c70da285a320b9b96c0c292.zip
nce: fix read size in simd immediate emulation
Diffstat (limited to 'src/core/arm')
-rw-r--r--src/core/arm/nce/interpreter_visitor.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/arm/nce/interpreter_visitor.cpp b/src/core/arm/nce/interpreter_visitor.cpp
index 8e81c66a5..ec373fdf2 100644
--- a/src/core/arm/nce/interpreter_visitor.cpp
+++ b/src/core/arm/nce/interpreter_visitor.cpp
@@ -249,6 +249,7 @@ bool InterpreterVisitor::LDR_lit_fpsimd(Imm<2> opc, Imm<19> imm19, Vec Vt) {
return false;
}
+ // Size in bytes
const u64 size = 4 << opc.ZeroExtend();
const u64 offset = imm19.SignExtend<u64>() << 2;
const u64 address = this->GetPc() + offset;
@@ -530,7 +531,7 @@ bool InterpreterVisitor::SIMDImmediate(bool wback, bool postindex, size_t scale,
}
case MemOp::Load: {
u128 data{};
- m_memory.ReadBlock(address, &data, datasize);
+ m_memory.ReadBlock(address, &data, datasize / 8);
this->SetVec(Vt, data);
break;
}