mirror of
https://github.com/jpd002/Play-.git
synced 2025-04-29 06:07:56 +03:00
34 lines
829 B
C++
34 lines
829 B
C++
#pragma once
|
|
|
|
#include "../BasicBlock.h"
|
|
|
|
class CVuBasicBlock : public CBasicBlock
|
|
{
|
|
public:
|
|
CVuBasicBlock(CMIPS&, uint32, uint32);
|
|
virtual ~CVuBasicBlock() = default;
|
|
|
|
bool IsLinkable() const;
|
|
|
|
protected:
|
|
void CompileRange(CMipsJitter*) override;
|
|
|
|
private:
|
|
struct INTEGER_BRANCH_DELAY_INFO
|
|
{
|
|
unsigned int regIndex = 0;
|
|
uint32 saveRegAddress = MIPS_INVALID_PC;
|
|
uint32 useRegAddress = MIPS_INVALID_PC;
|
|
};
|
|
|
|
static bool IsConditionalBranch(uint32);
|
|
static bool IsNonConditionalBranch(uint32);
|
|
|
|
INTEGER_BRANCH_DELAY_INFO GetIntegerBranchDelayInfo() const;
|
|
bool CheckIsSpecialIntegerLoop(unsigned int) const;
|
|
void ComputeSkipFlagsHints(const std::vector<uint32>&, std::vector<uint32>&) const;
|
|
std::vector<uint32> ComputeFmacStallDelays() const;
|
|
static void EmitXgKick(CMipsJitter*);
|
|
|
|
bool m_isLinkable = true;
|
|
};
|