mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-08-09 01:29:23 +00:00
SPU LLVM: Fix WRCH instruction to WrTagMask
This commit is contained in:
parent
5a8eb9d3d7
commit
d7842b7de2
1 changed files with 7 additions and 0 deletions
|
@ -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:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue