Play-/Source/ee/VuExecutor.h
Jean-Philip Desjardins 2d16426412
Some checks are pending
Build Android / build_android (apk) (push) Waiting to run
Build Android / build_android (libretro) (push) Waiting to run
Build iOS / build_ios (push) Waiting to run
Build JavaScript / build_js (push) Waiting to run
Build Linux / build_linux (push) Waiting to run
Build Linux ARM32 / build_linux_arm32 (push) Waiting to run
Build Linux ARM64 / build_linux_arm64 (push) Waiting to run
Build macOS / build_macos (push) Waiting to run
Build Windows / build_windows (x86_32, Visual Studio 16 2019, installer32.nsi, win32_msvc2019, Win32) (push) Waiting to run
Build Windows / build_windows (x86_64, Visual Studio 16 2019, installer64.nsi, win64_msvc2019_64, x64) (push) Waiting to run
Build Windows Psf / build_windows_psf (off, x86_64, Visual Studio 16 2019, installer64.nsi, x64) (push) Waiting to run
Build Windows Psf / build_windows_psf (on, x86_64, Visual Studio 16 2019, installer64.nsi, x64) (push) Waiting to run
Check Format / run_clangformat (push) Waiting to run
Enable accurate ADDi only on the VU block that needs it.
2024-12-18 13:53:07 -05:00

29 lines
647 B
C++

#pragma once
#include <map>
#include "../GenericMipsExecutor.h"
class CVuExecutor : public CGenericMipsExecutor<BlockLookupOneWay, 8>
{
public:
CVuExecutor(CMIPS&, uint32);
virtual ~CVuExecutor() = default;
void Reset() override;
protected:
typedef std::pair<uint128, uint32> CachedBlockKey;
typedef std::multimap<CachedBlockKey, BasicBlockPtr> CachedBlockMap;
struct BLOCK_COMPILE_HINTS
{
CachedBlockKey blockKey;
uint32 hints;
};
BasicBlockPtr BlockFactory(CMIPS&, uint32, uint32) override;
void PartitionFunction(uint32) override;
static const BLOCK_COMPILE_HINTS g_blockCompileHints[];
CachedBlockMap m_cachedBlocks;
};