diff --git a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h index 1d1566b288..e4f1f337ac 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h +++ b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h @@ -28,11 +28,6 @@ namespace JIT::x64 class DSPEmitter final : public JIT::DSPEmitter, public Gen::X64CodeBlock { public: - using DSPCompiledCode = u32 (*)(); - using Block = const u8*; - - static constexpr size_t MAX_BLOCKS = 0x10000; - DSPEmitter(); ~DSPEmitter() override; @@ -40,17 +35,6 @@ public: void DoState(PointerWrap& p) override; void ClearIRAM() override; - void EmitInstruction(UDSPInstruction inst); - void ClearIRAMandDSPJITCodespaceReset(); - - void CompileDispatcher(); - Block CompileStub(); - void Compile(u16 start_addr); - - bool FlagsNeeded() const; - - void FallBackToInterpreter(UDSPInstruction inst); - // Ext commands void l(UDSPInstruction opc); void ln(UDSPInstruction opc); @@ -206,10 +190,24 @@ public: void msub(UDSPInstruction opc); private: + using DSPCompiledCode = u32 (*)(); + using Block = const u8*; + // The emitter emits calls to this function. It's present here // within the class itself to allow access to member variables. static void CompileCurrent(DSPEmitter& emitter); + void EmitInstruction(UDSPInstruction inst); + void ClearIRAMandDSPJITCodespaceReset(); + + void CompileDispatcher(); + Block CompileStub(); + void Compile(u16 start_addr); + + bool FlagsNeeded() const; + + void FallBackToInterpreter(UDSPInstruction inst); + void WriteBranchExit(); void WriteBlockLink(u16 dest); @@ -298,6 +296,8 @@ private: void multiply_sub(); void multiply_mulx(u8 axh0, u8 axh1); + static constexpr size_t MAX_BLOCKS = 0x10000; + DSPJitRegCache m_gpr{*this}; u16 m_compile_pc;