diff options
Diffstat (limited to 'src/core/arm/nce/interpreter_visitor.cpp')
| -rw-r--r-- | src/core/arm/nce/interpreter_visitor.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/core/arm/nce/interpreter_visitor.cpp b/src/core/arm/nce/interpreter_visitor.cpp index 077a696cc8..ec2b155fe4 100644 --- a/src/core/arm/nce/interpreter_visitor.cpp +++ b/src/core/arm/nce/interpreter_visitor.cpp @@ -761,8 +761,7 @@ bool InterpreterVisitor::LDR_reg_fpsimd(Imm<2> size, Imm<1> opc_1, Reg Rm, Imm<3 return this->SIMDOffset(scale, shift, opc_0, Rm, option, Rn, Vt); } -std::optional<u64> MatchAndExecuteOneInstruction(Core::Memory::Memory& memory, mcontext_t* context, - fpsimd_context* fpsimd_context) { +std::optional<u64> MatchAndExecuteOneInstruction(Core::Memory::Memory& memory, mcontext_t* context, fpsimd_context* fpsimd_context) { std::span<u64, 31> regs(reinterpret_cast<u64*>(context->regs), 31); std::span<u128, 32> vregs(reinterpret_cast<u128*>(fpsimd_context->vregs), 32); u64& sp = *reinterpret_cast<u64*>(&context->sp); @@ -772,9 +771,9 @@ std::optional<u64> MatchAndExecuteOneInstruction(Core::Memory::Memory& memory, m u32 instruction = memory.Read32(pc); bool was_executed = false; - auto decoder = Dynarmic::A64::Decode<VisitorBase>(instruction); + auto decoder = Dynarmic::A64::Decode<VisitorBase, bool>(visitor, instruction); if (decoder) { - was_executed = decoder->get().call(visitor, instruction); + was_executed = *decoder; } else { was_executed = false; } |
