mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-12-16 04:09:39 +00:00
The PowerPC CPU has bits in MSR (DR and IR) which control whether addresses are translated. We should respect these instead of mixing physical addresses and translated addresses into the same address space. This is mostly mass-renaming calls to memory accesses APIs from places which expect address translation to use a different version from those which do not expect address translation. This does very little on its own, but it's the first step to a correct BAT implementation.
46 lines
939 B
C++
46 lines
939 B
C++
// Copyright 2013 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"
|
|
|
|
namespace JitInterface
|
|
{
|
|
enum class ExceptionType
|
|
{
|
|
EXCEPTIONS_FIFO_WRITE,
|
|
EXCEPTIONS_PAIRED_QUANTIZE
|
|
};
|
|
|
|
void DoState(PointerWrap &p);
|
|
|
|
CPUCoreBase *InitJitCore(int core);
|
|
void InitTables(int core);
|
|
CPUCoreBase *GetCore();
|
|
|
|
// Debugging
|
|
void WriteProfileResults(const std::string& filename);
|
|
|
|
// Memory Utilities
|
|
bool HandleFault(uintptr_t access_address, SContext* ctx);
|
|
|
|
// 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();
|
|
}
|
|
extern bool bMMU;
|
|
|