Play-/Source/ee/VuBasicBlock.h
Jean-Philip Desjardins 193e72635a Block lookup table now only stores "entry-point" functions to guest code.
Used to be a 1 to 1 map to covering function for a specific address.
2018-07-26 21:38:15 -04:00

28 lines
591 B
C++

#pragma once
#include "../BasicBlock.h"
class CVuBasicBlock : public CBasicBlock
{
public:
CVuBasicBlock(CMIPS&, uint32, uint32);
virtual ~CVuBasicBlock() = default;
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);
INTEGER_BRANCH_DELAY_INFO GetIntegerBranchDelayInfo() const;
bool CheckIsSpecialIntegerLoop(unsigned int) const;
static void EmitXgKick(CMipsJitter*);
};