Exclude JIT-related declarations more aggressively
This commit is contained in:
parent
733769303c
commit
53e5aa6298
58
src/ARMJIT.h
58
src/ARMJIT.h
|
@ -23,7 +23,10 @@
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
#include "MemConstants.h"
|
||||||
|
#include "Args.h"
|
||||||
|
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
#include "ARMJIT_Memory.h"
|
#include "ARMJIT_Memory.h"
|
||||||
#include "JitBlock.h"
|
#include "JitBlock.h"
|
||||||
|
|
||||||
|
@ -32,8 +35,6 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "ARMJIT_Compiler.h"
|
#include "ARMJIT_Compiler.h"
|
||||||
#include "Args.h"
|
|
||||||
#include "MemConstants.h"
|
|
||||||
|
|
||||||
namespace melonDS
|
namespace melonDS
|
||||||
{
|
{
|
||||||
|
@ -52,17 +53,16 @@ public:
|
||||||
BranchOptimizations(jit.has_value() ? jit->BranchOptimizations : false),
|
BranchOptimizations(jit.has_value() ? jit->BranchOptimizations : false),
|
||||||
FastMemory(jit.has_value() ? jit->FastMemory : false)
|
FastMemory(jit.has_value() ? jit->FastMemory : false)
|
||||||
{}
|
{}
|
||||||
~ARMJIT() noexcept NOOP_IF_NO_JIT;
|
~ARMJIT() noexcept;
|
||||||
void InvalidateByAddr(u32) noexcept NOOP_IF_NO_JIT;
|
void InvalidateByAddr(u32) noexcept;
|
||||||
void CheckAndInvalidateWVRAM(int) noexcept NOOP_IF_NO_JIT;
|
void CheckAndInvalidateWVRAM(int) noexcept;
|
||||||
void CheckAndInvalidateITCM() noexcept NOOP_IF_NO_JIT;
|
void CheckAndInvalidateITCM() noexcept;
|
||||||
void Reset() noexcept NOOP_IF_NO_JIT;
|
void Reset() noexcept;
|
||||||
void JitEnableWrite() noexcept NOOP_IF_NO_JIT;
|
void JitEnableWrite() noexcept;
|
||||||
void JitEnableExecute() noexcept NOOP_IF_NO_JIT;
|
void JitEnableExecute() noexcept;
|
||||||
void CompileBlock(ARM* cpu) noexcept NOOP_IF_NO_JIT;
|
void CompileBlock(ARM* cpu) noexcept;
|
||||||
void ResetBlockCache() noexcept NOOP_IF_NO_JIT;
|
void ResetBlockCache() noexcept;
|
||||||
|
|
||||||
#ifdef JIT_ENABLED
|
|
||||||
template <u32 num, int region>
|
template <u32 num, int region>
|
||||||
void CheckAndInvalidate(u32 addr) noexcept
|
void CheckAndInvalidate(u32 addr) noexcept
|
||||||
{
|
{
|
||||||
|
@ -73,10 +73,6 @@ public:
|
||||||
JitBlockEntry LookUpBlock(u32 num, u64* entries, u32 offset, u32 addr) noexcept;
|
JitBlockEntry LookUpBlock(u32 num, u64* entries, u32 offset, u32 addr) noexcept;
|
||||||
bool SetupExecutableRegion(u32 num, u32 blockAddr, u64*& entry, u32& start, u32& size) noexcept;
|
bool SetupExecutableRegion(u32 num, u32 blockAddr, u64*& entry, u32& start, u32& size) noexcept;
|
||||||
u32 LocaliseCodeAddress(u32 num, u32 addr) const noexcept;
|
u32 LocaliseCodeAddress(u32 num, u32 addr) const noexcept;
|
||||||
#else
|
|
||||||
template <u32, int>
|
|
||||||
void CheckAndInvalidate(u32) noexcept {}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ARMJIT_Memory Memory;
|
ARMJIT_Memory Memory;
|
||||||
private:
|
private:
|
||||||
|
@ -185,5 +181,33 @@ public:
|
||||||
|
|
||||||
// Defined in assembly
|
// Defined in assembly
|
||||||
extern "C" void ARM_Dispatch(melonDS::ARM* cpu, melonDS::JitBlockEntry entry);
|
extern "C" void ARM_Dispatch(melonDS::ARM* cpu, melonDS::JitBlockEntry entry);
|
||||||
|
#else
|
||||||
|
namespace melonDS
|
||||||
|
{
|
||||||
|
class ARM;
|
||||||
|
|
||||||
|
// This version is a stub; the methods all do nothing,
|
||||||
|
// but there's still a Memory member.
|
||||||
|
class ARMJIT
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ARMJIT(melonDS::NDS& nds, std::optional<JITArgs>) noexcept : Memory(nds) {}
|
||||||
|
~ARMJIT() noexcept {}
|
||||||
|
void InvalidateByAddr(u32) noexcept {}
|
||||||
|
void CheckAndInvalidateWVRAM(int) noexcept {}
|
||||||
|
void CheckAndInvalidateITCM() noexcept {}
|
||||||
|
void Reset() noexcept {}
|
||||||
|
void JitEnableWrite() noexcept {}
|
||||||
|
void JitEnableExecute() noexcept {}
|
||||||
|
void CompileBlock(ARM*) noexcept {}
|
||||||
|
void ResetBlockCache() noexcept {}
|
||||||
|
template <u32, int>
|
||||||
|
void CheckAndInvalidate(u32 addr) noexcept {}
|
||||||
|
|
||||||
|
ARMJIT_Memory Memory;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#endif // JIT_ENABLED
|
||||||
|
|
||||||
|
#endif // ARMJIT_H
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#ifndef ARMJIT_A64_COMPILER_H
|
#ifndef ARMJIT_A64_COMPILER_H
|
||||||
#define ARMJIT_A64_COMPILER_H
|
#define ARMJIT_A64_COMPILER_H
|
||||||
|
|
||||||
|
#if defined(JIT_ENABLED) && defined(__aarch64__)
|
||||||
|
|
||||||
#include "../ARM.h"
|
#include "../ARM.h"
|
||||||
|
|
||||||
#include "../dolphin/Arm64Emitter.h"
|
#include "../dolphin/Arm64Emitter.h"
|
||||||
|
@ -96,11 +98,7 @@ class Compiler : public Arm64Gen::ARM64XEmitter
|
||||||
public:
|
public:
|
||||||
typedef void (Compiler::*CompileFunc)();
|
typedef void (Compiler::*CompileFunc)();
|
||||||
|
|
||||||
#ifdef JIT_ENABLED
|
|
||||||
explicit Compiler(melonDS::NDS& nds);
|
explicit Compiler(melonDS::NDS& nds);
|
||||||
#else
|
|
||||||
explicit Compiler(melonDS::NDS& nds) : XEmitter(), NDS(nds) {}
|
|
||||||
#endif
|
|
||||||
~Compiler() override;
|
~Compiler() override;
|
||||||
|
|
||||||
void PushRegs(bool saveHiRegs, bool saveRegsToBeChanged, bool allowUnload = true);
|
void PushRegs(bool saveHiRegs, bool saveRegsToBeChanged, bool allowUnload = true);
|
||||||
|
@ -291,3 +289,5 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -20,10 +20,6 @@
|
||||||
#define ARMJIT_COMPILER_H
|
#define ARMJIT_COMPILER_H
|
||||||
|
|
||||||
#ifdef JIT_ENABLED
|
#ifdef JIT_ENABLED
|
||||||
#define NOOP_IF_NO_JIT
|
|
||||||
#else
|
|
||||||
#define NOOP_IF_NO_JIT {}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__x86_64__)
|
#if defined(__x86_64__)
|
||||||
#include "ARMJIT_x64/ARMJIT_Compiler.h"
|
#include "ARMJIT_x64/ARMJIT_Compiler.h"
|
||||||
|
@ -34,3 +30,5 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#ifndef ARMJIT_X64_COMPILER_H
|
#ifndef ARMJIT_X64_COMPILER_H
|
||||||
#define ARMJIT_X64_COMPILER_H
|
#define ARMJIT_X64_COMPILER_H
|
||||||
|
|
||||||
|
#if defined(JIT_ENABLED) && defined(__x86_64__)
|
||||||
|
|
||||||
#include "../dolphin/x64Emitter.h"
|
#include "../dolphin/x64Emitter.h"
|
||||||
|
|
||||||
#include "../ARMJIT_Internal.h"
|
#include "../ARMJIT_Internal.h"
|
||||||
|
@ -81,11 +83,7 @@ struct Op2
|
||||||
class Compiler : public Gen::XEmitter
|
class Compiler : public Gen::XEmitter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifdef JIT_ENABLED
|
|
||||||
explicit Compiler(melonDS::NDS& nds);
|
explicit Compiler(melonDS::NDS& nds);
|
||||||
#else
|
|
||||||
explicit Compiler(melonDS::NDS& nds) : XEmitter(), NDS(nds) {}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
|
@ -284,5 +282,6 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -36,6 +36,9 @@
|
||||||
#include "AREngine.h"
|
#include "AREngine.h"
|
||||||
#include "GPU.h"
|
#include "GPU.h"
|
||||||
#include "ARMJIT.h"
|
#include "ARMJIT.h"
|
||||||
|
#include "MemRegion.h"
|
||||||
|
#include "ARMJIT_Memory.h"
|
||||||
|
#include "ARM.h"
|
||||||
#include "DMA.h"
|
#include "DMA.h"
|
||||||
#include "FreeBIOS.h"
|
#include "FreeBIOS.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue