mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 15:01:28 +12:00
SPU LLVM: Implement PUTLLC16 for accurate RSX reservations
This commit is contained in:
parent
e8899bf9fc
commit
3dfbd14de2
2 changed files with 90 additions and 8 deletions
|
@ -5305,7 +5305,7 @@ spu_program spu_recompiler_base::analyse(const be_t<u32>* ls, u32 entry_point, s
|
|||
|
||||
if (insert_entry)
|
||||
{
|
||||
const u32 target_size = get_block_targets(stackframe_pc).size();
|
||||
const usz target_size = get_block_targets(stackframe_pc).size();
|
||||
|
||||
spu_log.trace("Emplacing: block_id=%d, pc=0x%x, target_it=%d/%d, new_pc=0x%x (has_it=%d)", reg_state_it[stackframe_it].iterator_id, stackframe_pc, entry_index + 1, target_size, target_pc, atomic16_info.active);
|
||||
auto& next = reg_state_it.emplace_back(target_pc, stackframe_it, 0);
|
||||
|
@ -5321,7 +5321,7 @@ spu_program spu_recompiler_base::analyse(const be_t<u32>* ls, u32 entry_point, s
|
|||
}
|
||||
|
||||
next.iterator_id = iterator_id_alloc++;
|
||||
wi = stackframe_it + 1;
|
||||
wi = static_cast<u32>(stackframe_it + 1);
|
||||
ensure(stackframe_it + 1 == reg_state_it.size() - 1);
|
||||
}
|
||||
}
|
||||
|
@ -6698,12 +6698,6 @@ spu_program spu_recompiler_base::analyse(const be_t<u32>* ls, u32 entry_point, s
|
|||
continue;
|
||||
}
|
||||
|
||||
if (g_cfg.core.rsx_accurate_res_access)
|
||||
{
|
||||
// For now it is skipped completely in this case
|
||||
continue;
|
||||
}
|
||||
|
||||
union putllc16_info
|
||||
{
|
||||
u32 data;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue