diff --git a/src/shader_recompiler/frontend/translate/data_share.cpp b/src/shader_recompiler/frontend/translate/data_share.cpp index 14dc23a03..c29497ada 100644 --- a/src/shader_recompiler/frontend/translate/data_share.cpp +++ b/src/shader_recompiler/frontend/translate/data_share.cpp @@ -19,8 +19,6 @@ void Translator::EmitDataShare(const GcnInst& inst) { return DS_INC_U32(inst, false); case Opcode::DS_DEC_U32: return DS_DEC_U32(inst, false); - case Opcode::DS_SUB_RTN_U32: - return DS_SUB_U32(inst, true); case Opcode::DS_MIN_I32: return DS_MIN_U32(inst, true, false); case Opcode::DS_MAX_I32: @@ -43,6 +41,8 @@ void Translator::EmitDataShare(const GcnInst& inst) { return DS_WRITE(32, false, true, true, inst); case Opcode::DS_ADD_RTN_U32: return DS_ADD_U32(inst, true); + case Opcode::DS_SUB_RTN_U32: + return DS_SUB_U32(inst, true); case Opcode::DS_MIN_RTN_U32: return DS_MIN_U32(inst, false, true); case Opcode::DS_MAX_RTN_U32: diff --git a/src/shader_recompiler/frontend/translate/scalar_alu.cpp b/src/shader_recompiler/frontend/translate/scalar_alu.cpp index cf541f396..3a8e894ae 100644 --- a/src/shader_recompiler/frontend/translate/scalar_alu.cpp +++ b/src/shader_recompiler/frontend/translate/scalar_alu.cpp @@ -521,21 +521,6 @@ void Translator::S_BFE(const GcnInst& inst, bool is_signed) { ir.SetScc(ir.INotEqual(result, ir.Imm32(0))); } -void Translator::S_BFE_I32(const GcnInst& inst) { - const IR::U32 src0{GetSrc(inst.src[0])}; - const IR::U32 src1{GetSrc(inst.src[1])}; - - const IR::U32 offset{ir.BitwiseAnd(src1, ir.Imm32(0x1F))}; - - const IR::U32 count{ir.BitFieldExtract(src1, ir.Imm32(16), ir.Imm32(7))}; - - const IR::U32 result{ir.BitFieldExtract(src0, offset, count, false)}; - - SetDst(inst.dst[0], result); - - ir.SetScc(ir.INotEqual(result, ir.Imm32(0))); -} - void Translator::S_ABSDIFF_I32(const GcnInst& inst) { const IR::U32 src0{GetSrc(inst.src[0])}; const IR::U32 src1{GetSrc(inst.src[1])}; diff --git a/src/shader_recompiler/frontend/translate/translate.h b/src/shader_recompiler/frontend/translate/translate.h index 52d91c963..68d5e8dc8 100644 --- a/src/shader_recompiler/frontend/translate/translate.h +++ b/src/shader_recompiler/frontend/translate/translate.h @@ -275,7 +275,7 @@ public: void DS_READ(int bit_size, bool is_signed, bool is_pair, bool stride64, const GcnInst& inst); void DS_APPEND(const GcnInst& inst); void DS_CONSUME(const GcnInst& inst); - void DS_SUB_U32(const GcnInst& inst, bool); + void DS_SUB_U32(const GcnInst& inst, bool rtn); void DS_INC_U32(const GcnInst& inst, bool rtn); void DS_DEC_U32(const GcnInst& inst, bool rtn);