mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
gpu: fix v_bcnt_u32_b32 operands count
This commit is contained in:
parent
00273aa75b
commit
33c769dfa0
|
|
@ -118,7 +118,10 @@ readVop2Inst(GcnInstruction &inst, std::uint64_t &address,
|
|||
inst.addOperand(GcnOperand::createVccLo().withW());
|
||||
}
|
||||
inst.addOperand(createSgprGcnOperand(address, src0).withR());
|
||||
inst.addOperand(createVgprGcnOperand(vsrc1).withR());
|
||||
|
||||
if (op != ir::vop2::BCNT_U32_B32) {
|
||||
inst.addOperand(createVgprGcnOperand(vsrc1).withR());
|
||||
}
|
||||
|
||||
if (readsVcc) {
|
||||
inst.addOperand(GcnOperand::createVccLo().withR());
|
||||
|
|
@ -306,14 +309,16 @@ readVop3Inst(GcnInstruction &inst, std::uint64_t &address,
|
|||
.withAbs(((abs >> 1) & 1) != 0)
|
||||
.withNeg(((neg >> 1) & 1) != 0));
|
||||
|
||||
if (op == ir::vop3::ADDC_U32 || op == ir::vop3::SUBB_U32 ||
|
||||
op == ir::vop3::SUBBREV_U32 || op == ir::vop3::CNDMASK_B32) {
|
||||
inst.addOperand(createSgprGcnOperand(address, src2)
|
||||
.withR()
|
||||
.withAbs(((abs >> 2) & 1) != 0)
|
||||
.withNeg(((neg >> 2) & 1) != 0));
|
||||
} else if (op == ir::vop3::MADMK_F32 || op == ir::vop3::MADAK_F32) {
|
||||
inst.addOperand(createImmediateGcnOperand(address));
|
||||
if (op != ir::vop3::BCNT_U32_B32) {
|
||||
if (op == ir::vop3::ADDC_U32 || op == ir::vop3::SUBB_U32 ||
|
||||
op == ir::vop3::SUBBREV_U32 || op == ir::vop3::CNDMASK_B32) {
|
||||
inst.addOperand(createSgprGcnOperand(address, src2)
|
||||
.withR()
|
||||
.withAbs(((abs >> 2) & 1) != 0)
|
||||
.withNeg(((neg >> 2) & 1) != 0));
|
||||
} else if (op == ir::vop3::MADMK_F32 || op == ir::vop3::MADAK_F32) {
|
||||
inst.addOperand(createImmediateGcnOperand(address));
|
||||
}
|
||||
}
|
||||
} else if (op >= 384 && op < ir::vop1::OpCount + 384) {
|
||||
// vop1
|
||||
|
|
|
|||
Loading…
Reference in a new issue