SPU LLVM: Fix WRCH instruction to WrTagMask
This commit is contained in:
@@ -5693,6 +5693,13 @@ public:
|
|||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
m_ir->CreateStore(val.value, spu_ptr<u32>(&spu_thread::ch_tag_mask));
|
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;
|
return;
|
||||||
}
|
}
|
||||||
case MFC_WrTagUpdate:
|
case MFC_WrTagUpdate:
|
||||||
|
|||||||
Reference in New Issue
Block a user