New bugs added

This commit is contained in:
Nekotekina 2014-04-14 13:42:55 +04:00
parent 180f8aac5d
commit c41317dd82
2 changed files with 647 additions and 330 deletions

File diff suppressed because it is too large Load Diff

View File

@ -56,9 +56,13 @@ void SPURecompilerCore::Compile(u16 pos)
GpVar pos_var(compiler, kVarTypeUInt32, "pos");
compiler.setArg(3, pos_var);
compiler.alloc(pos_var);
m_enc->pos_var = &pos_var;
for (u32 i = 0; i < 16; i++)
{
m_enc->xmm_var[i].data = new XmmVar(compiler);
}
compiler.xor_(pos_var, pos_var);
while (true)
@ -94,6 +98,15 @@ void SPURecompilerCore::Compile(u16 pos)
pos++;
}
m_enc->XmmRelease();
for (u32 i = 0; i < 16; i++)
{
assert(!m_enc->xmm_var[i].taken);
delete m_enc->xmm_var[i].data;
m_enc->xmm_var[i].data = nullptr;
}
const u64 stamp1 = get_system_time();
compiler.ret(pos_var);
compiler.endFunc();