Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions rpcs3/Emu/Cell/SPUASMJITRecompiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2607,8 +2607,8 @@ void spu_recompiler::BI(spu_opcode_t op)
else if (op.d && found->second.size() == 1 && found->second[0] == spu_branch_target(m_pos, 1))
{
// Interrupts-disable pattern
c->mov(SPU_OFF_8(interrupts_enabled), 0);
return;
// c->mov(SPU_OFF_8(interrupts_enabled), 0);
// return;
}

c->mov(*addr, SPU_OFF_32(gpr, op.ra, &v128::_u32, 3));
Expand Down
26 changes: 13 additions & 13 deletions rpcs3/Emu/Cell/SPUCommonRecompiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -230,14 +230,14 @@ DECLARE(spu_runtime::tr_all) = []
raw += 4;

// Update block_hash (set zero): mov [r13 + spu_thread::m_block_hash], 0
*raw++ = 0x49;
*raw++ = 0xc7;
*raw++ = 0x45;
*raw++ = ::narrow<s8>(::offset32(&spu_thread::block_hash));
*raw++ = 0x00;
*raw++ = 0x00;
*raw++ = 0x00;
*raw++ = 0x00;
// *raw++ = 0x49;
// *raw++ = 0xc7;
// *raw++ = 0x45;
// *raw++ = ::narrow<s8>(::offset32(&spu_thread::block_hash));
// *raw++ = 0x00;
// *raw++ = 0x00;
// *raw++ = 0x00;
// *raw++ = 0x00;

// jmp [rdx + rax * 8]
*raw++ = 0xff;
Expand Down Expand Up @@ -3078,7 +3078,7 @@ spu_program spu_recompiler_base::analyse(const be_t<u32>* ls, u32 entry_point, s
if (type == spu_itype::BI && target == pos + 4 && op.d)
{
// Disable interrupts idiom
break;
//break;
}

m_targets[pos].push_back(target);
Expand Down Expand Up @@ -7747,10 +7747,10 @@ struct spu_fast : public spu_recompiler_base
raw += 8;

// Update block_hash: mov [r13 + spu_thread::m_block_hash], rax
*raw++ = 0x49;
*raw++ = 0x89;
*raw++ = 0x45;
*raw++ = ::narrow<s8>(::offset32(&spu_thread::block_hash));
// *raw++ = 0x49;
// *raw++ = 0x89;
// *raw++ = 0x45;
// *raw++ = ::narrow<s8>(::offset32(&spu_thread::block_hash));

// Load PC: mov eax, [r13 + spu_thread::pc]
*raw++ = 0x41;
Expand Down
4 changes: 2 additions & 2 deletions rpcs3/Emu/Cell/SPULLVMRecompiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8022,8 +8022,8 @@ class spu_llvm_recompiler : public spu_recompiler_base, public cpu_translator
if (op.d && tfound != m_targets.end() && tfound->second.size() == 1 && tfound->second[0] == spu_branch_target(m_pos, 1))
{
// Interrupts-disable pattern
m_ir->CreateStore(m_ir->getFalse(), spu_ptr<bool>(&spu_thread::interrupts_enabled));
return;
// m_ir->CreateStore(m_ir->getFalse(), spu_ptr<bool>(&spu_thread::interrupts_enabled));
// return;
}

if (!op.d && !op.e && tfound != m_targets.end() && tfound->second.size() > 1)
Expand Down