mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-21 03:54:45 +00:00
adjust V_MAD_I32_I24 for bit extraction
This commit is contained in:
parent
3ee6e8c6c2
commit
3b2e20d98f
1 changed files with 5 additions and 8 deletions
|
@ -361,10 +361,10 @@ void Translator::V_BFE_U32(bool is_signed, const GcnInst& inst) {
|
|||
SetDst(inst.dst[0], ir.BitFieldExtract(src0, src1, src2, is_signed));
|
||||
}
|
||||
|
||||
void Translator::V_MAD_I32_I24(const GcnInst& inst) {
|
||||
const IR::U32 src0{ir.BitFieldExtract(GetSrc(inst.src[0]), ir.Imm32(0), ir.Imm32(24), true)};
|
||||
const IR::U32 src1{ir.BitFieldExtract(GetSrc(inst.src[1]), ir.Imm32(0), ir.Imm32(24), true)};
|
||||
const IR::U32 src2{GetSrc(inst.src[2])};
|
||||
void Translator::V_MAD_I32_I24(const GcnInst& inst, bool performBitExtract) {
|
||||
const IR::U32 src0 = performBitExtract ? ir.BitFieldExtract(GetSrc(inst.src[0]), ir.Imm32(0), ir.Imm32(24), true) : GetSrc(inst.src[0]);
|
||||
const IR::U32 src1 = performBitExtract ? ir.BitFieldExtract(GetSrc(inst.src[1]), ir.Imm32(0), ir.Imm32(24), true) : GetSrc(inst.src[1]);
|
||||
const IR::U32 src2 = GetSrc(inst.src[2]);
|
||||
SetDst(inst.dst[0], ir.IAdd(ir.IMul(src0, src1), src2));
|
||||
}
|
||||
|
||||
|
@ -393,10 +393,7 @@ void Translator::V_ASHRREV_I32(const GcnInst& inst) {
|
|||
}
|
||||
|
||||
void Translator::V_MAD_U32_U24(const GcnInst& inst) {
|
||||
const IR::U32 src0 = ir.BitFieldExtract(GetSrc(inst.src[0]), ir.Imm32(0), ir.Imm32(24), false);
|
||||
const IR::U32 src1 = ir.BitFieldExtract(GetSrc(inst.src[1]), ir.Imm32(0), ir.Imm32(24), false);
|
||||
const IR::U32 src2 = GetSrc(inst.src[2]);
|
||||
SetDst(inst.dst[0], ir.IAdd(ir.IMul(src0, src1), src2));
|
||||
V_MAD_I32_I24(inst, false);
|
||||
}
|
||||
|
||||
void Translator::V_RNDNE_F32(const GcnInst& inst) {
|
||||
|
|
Loading…
Add table
Reference in a new issue