mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-09 07:19:34 -06:00

This global belongs in the JitOptions structure, as it's a conditional setting (A.K.A. option) that changes the behavior of what the JIT does. Plus it keeps the scope of the variable constrained to the general area it's intended to be used and nothing further.
67 lines
1.2 KiB
C++
67 lines
1.2 KiB
C++
// Copyright 2008 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
|
|
#include "Common/CommonTypes.h"
|
|
#include "Core/MachineContext.h"
|
|
|
|
class CPUCoreBase;
|
|
class PointerWrap;
|
|
|
|
namespace PowerPC
|
|
{
|
|
enum class CPUCore;
|
|
}
|
|
|
|
namespace Profiler
|
|
{
|
|
struct ProfileStats;
|
|
}
|
|
|
|
namespace JitInterface
|
|
{
|
|
enum class ExceptionType
|
|
{
|
|
FIFOWrite,
|
|
PairedQuantize,
|
|
SpeculativeConstants
|
|
};
|
|
|
|
void DoState(PointerWrap& p);
|
|
|
|
CPUCoreBase* InitJitCore(PowerPC::CPUCore core);
|
|
CPUCoreBase* GetCore();
|
|
|
|
// Debugging
|
|
enum class ProfilingState
|
|
{
|
|
Enabled,
|
|
Disabled
|
|
};
|
|
|
|
void SetProfilingState(ProfilingState state);
|
|
void WriteProfileResults(const std::string& filename);
|
|
void GetProfileResults(Profiler::ProfileStats* prof_stats);
|
|
int GetHostCode(u32* address, const u8** code, u32* code_size);
|
|
|
|
// Memory Utilities
|
|
bool HandleFault(uintptr_t access_address, SContext* ctx);
|
|
bool HandleStackFault();
|
|
|
|
// Clearing CodeCache
|
|
void ClearCache();
|
|
|
|
void ClearSafe();
|
|
|
|
// If "forced" is true, a recompile is being requested on code that hasn't been modified.
|
|
void InvalidateICache(u32 address, u32 size, bool forced);
|
|
|
|
void CompileExceptionCheck(ExceptionType type);
|
|
|
|
void Shutdown();
|
|
}
|