mirror of
https://github.com/libretro/Play-.git
synced 2024-11-30 12:10:42 +00:00
36 lines
716 B
C++
36 lines
716 B
C++
#pragma once
|
|
|
|
#include <map>
|
|
#include "Jitter.h"
|
|
|
|
class CMipsJitter : public Jitter::CJitter
|
|
{
|
|
public:
|
|
CMipsJitter(Jitter::CCodeGen*);
|
|
virtual ~CMipsJitter() = default;
|
|
|
|
void Begin() override;
|
|
void PushRel(size_t) override;
|
|
void PushRel64(size_t) override;
|
|
|
|
void SetVariableAsConstant(size_t, uint32);
|
|
|
|
LABEL GetFinalBlockLabel();
|
|
void MarkFinalBlockLabel();
|
|
|
|
private:
|
|
struct VARIABLESTATUS
|
|
{
|
|
uint32 operandType;
|
|
uint32 operandValue;
|
|
};
|
|
|
|
typedef std::map<size_t, VARIABLESTATUS> VariableStatusMap;
|
|
|
|
VARIABLESTATUS* GetVariableStatus(size_t);
|
|
void SetVariableStatus(size_t, const VARIABLESTATUS&);
|
|
|
|
VariableStatusMap m_variableStatus;
|
|
LABEL m_lastBlockLabel;
|
|
};
|