SPU LLVM: Fix WRCH instruction to WrTagMask

This commit is contained in:
Eladash 2020-06-26 19:10:28 +03:00 committed by Ani
parent 5a8eb9d3d7
commit d7842b7de2
1 changed files with 7 additions and 0 deletions

View File

@ -5693,6 +5693,13 @@ public:
{
// TODO
m_ir->CreateStore(val.value, spu_ptr<u32>(&spu_thread::ch_tag_mask));
const auto next = llvm::BasicBlock::Create(m_context, "", m_function);
const auto _mfc = llvm::BasicBlock::Create(m_context, "", m_function);
m_ir->CreateCondBr(m_ir->CreateICmpNE(m_ir->CreateLoad(spu_ptr<u32>(&spu_thread::ch_tag_upd)), m_ir->getInt32(MFC_TAG_UPDATE_IMMEDIATE)), _mfc, next);
m_ir->SetInsertPoint(_mfc);
call("spu_write_channel", &exec_wrch, m_thread, m_ir->getInt32(op.ra), val.value);
m_ir->CreateBr(next);
m_ir->SetInsertPoint(next);
return;
}
case MFC_WrTagUpdate: