mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-09-25 16:11:33 +00:00
Optimistically assume used GQRs are 0 in blocks that only use one GQR, and bail at the start of the block and recompile if that assumption fails. Many games use almost entirely unquantized stores (e.g. Rebel Strike, Sonic Colors), so this will likely be a big performance improvement across the board for games with heavy use of paired singles.
49 lines
1017 B
C++
49 lines
1017 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);
|
|
|
|
// used by JIT to read instructions
|
|
u32 ReadOpcodeJIT(const u32 _Address);
|
|
|
|
// 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;
|
|
|