DSPLLE: Some cleanup. Possibly very small speed increase.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5535 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard
2010-05-29 18:22:50 +00:00
parent 926f96daf0
commit 659d5705c9
5 changed files with 113 additions and 96 deletions

View File

@ -29,27 +29,19 @@ typedef void (*CompiledCode)();
class DSPEmitter : public Gen::XCodeBlock
{
CompiledCode *blocks;
u16 blockSize[0x10000];
bool *endBlock;
u16 compileSR;
// The index of the last stored ext value (compile time).
int storeIndex;
DISALLOW_COPY_AND_ASSIGN(DSPEmitter);
void ToMask(Gen::X64Reg value_reg = Gen::EDI, Gen::X64Reg temp_reg = Gen::ESI);
public:
DSPEmitter();
~DSPEmitter();
const u8 *m_compiledCode;
void WriteCallInterpreter(UDSPInstruction inst);
void EmitInstruction(UDSPInstruction inst);
void unknown_instruction(UDSPInstruction inst);
void Default(UDSPInstruction _inst);
void ClearIRAM();
void CompileDispatcher();
const u8 *Compile(int start_addr);
void STACKALIGN RunBlock(int cycles);
@ -103,6 +95,20 @@ public:
void sbclr(const UDSPInstruction opc);
void sbset(const UDSPInstruction opc);
void srbith(const UDSPInstruction opc);
private:
CompiledCode *blocks;
u16 *blockSize;
u16 compileSR;
u8 *dispatcher;
// The index of the last stored ext value (compile time).
int storeIndex;
DISALLOW_COPY_AND_ASSIGN(DSPEmitter);
void ToMask(Gen::X64Reg value_reg = Gen::EDI, Gen::X64Reg temp_reg = Gen::ESI);
};