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

instruction tables Previously, all of the internals that handled how the instruction tables are initialized were exposed externally. However, this can all be made private to each CPU backend. If each backend has an Init() function, then this is where the instruction tables should be initialized, it shouldn't be the responsibility of external code to ensure internal validity. This allows for getting rid of all the table initialization shenanigans within JitInterface and PPCTables.
48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
// Copyright 2008 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
#include "Common/ChunkFile.h"
|
|
#include "Core/MachineContext.h"
|
|
#include "Core/PowerPC/CPUCoreBase.h"
|
|
#include "Core/PowerPC/Profiler.h"
|
|
|
|
namespace JitInterface
|
|
{
|
|
enum class ExceptionType
|
|
{
|
|
EXCEPTIONS_FIFO_WRITE,
|
|
EXCEPTIONS_PAIRED_QUANTIZE,
|
|
EXCEPTIONS_SPECULATIVE_CONSTANTS
|
|
};
|
|
|
|
void DoState(PointerWrap& p);
|
|
|
|
CPUCoreBase* InitJitCore(int core);
|
|
CPUCoreBase* GetCore();
|
|
|
|
// Debugging
|
|
void WriteProfileResults(const std::string& filename);
|
|
void GetProfileResults(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();
|
|
}
|