2017-06-24 20:22:43 -04:00
|
|
|
#pragma once
|
2015-05-06 00:54:15 -04:00
|
|
|
|
2022-10-24 10:05:35 -04:00
|
|
|
#include <map>
|
2018-07-20 12:51:04 -04:00
|
|
|
#include "../GenericMipsExecutor.h"
|
2015-05-06 00:54:15 -04:00
|
|
|
|
2019-10-18 13:04:26 -04:00
|
|
|
class CVuExecutor : public CGenericMipsExecutor<BlockLookupOneWay, 8>
|
2015-05-06 00:54:15 -04:00
|
|
|
{
|
|
|
|
public:
|
2018-04-30 21:01:23 +01:00
|
|
|
CVuExecutor(CMIPS&, uint32);
|
|
|
|
virtual ~CVuExecutor() = default;
|
2015-05-06 00:54:15 -04:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
void Reset() override;
|
2015-05-06 00:54:15 -04:00
|
|
|
|
|
|
|
protected:
|
2022-10-21 09:42:16 +01:00
|
|
|
typedef std::pair<uint128, uint32> CachedBlockKey;
|
2022-10-24 10:05:35 -04:00
|
|
|
typedef std::multimap<CachedBlockKey, BasicBlockPtr> CachedBlockMap;
|
2024-12-18 13:53:07 -05:00
|
|
|
|
|
|
|
struct BLOCK_COMPILE_HINTS
|
|
|
|
{
|
|
|
|
CachedBlockKey blockKey;
|
|
|
|
uint32 hints;
|
|
|
|
};
|
2015-05-06 00:54:15 -04:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
BasicBlockPtr BlockFactory(CMIPS&, uint32, uint32) override;
|
|
|
|
void PartitionFunction(uint32) override;
|
2024-12-18 13:53:07 -05:00
|
|
|
|
|
|
|
static const BLOCK_COMPILE_HINTS g_blockCompileHints[];
|
|
|
|
CachedBlockMap m_cachedBlocks;
|
2015-05-06 00:54:15 -04:00
|
|
|
};
|