Play-/Source/MipsJitter.h

40 lines
813 B
C
Raw Permalink Normal View History

2015-04-23 02:04:12 -04:00
#pragma once
#include <map>
#include "Jitter.h"
class CMipsJitter : public Jitter::CJitter
{
public:
2018-04-30 21:01:23 +01:00
CMipsJitter(Jitter::CCodeGen*);
2018-07-03 13:12:00 -04:00
virtual ~CMipsJitter() = default;
2018-07-03 18:59:00 -04:00
void Begin() override;
void PushRel(size_t) override;
void PushRel64(size_t) override;
2018-04-30 21:01:23 +01:00
void SetVariableAsConstant(size_t, uint32);
2018-07-03 19:06:25 -04:00
LABEL GetFirstBlockLabel();
LABEL GetLastBlockLabel();
void MarkFirstBlockLabel();
void MarkLastBlockLabel();
private:
struct VARIABLESTATUS
{
2018-04-30 21:01:23 +01:00
uint32 operandType;
uint32 operandValue;
};
typedef std::map<size_t, VARIABLESTATUS> VariableStatusMap;
2018-04-30 21:01:23 +01:00
VARIABLESTATUS* GetVariableStatus(size_t);
void SetVariableStatus(size_t, const VARIABLESTATUS&);
2018-04-30 21:01:23 +01:00
VariableStatusMap m_variableStatus;
LABEL m_firstBlockLabel = -1;
LABEL m_lastBlockLabel = -1;
};