shader: Fix FCMP immediate variant
This commit is contained in:
		| @@ -42,7 +42,15 @@ void TranslatorVisitor::FCMP_cr(u64 insn) { | ||||
| } | ||||
|  | ||||
| void TranslatorVisitor::FCMP_imm(u64 insn) { | ||||
|     FCMP(*this, insn, GetReg39(insn), GetFloatImm20(insn)); | ||||
|     union { | ||||
|         u64 raw; | ||||
|         BitField<20, 19, u64> value; | ||||
|         BitField<56, 1, u64> is_negative; | ||||
|     } const fcmp{insn}; | ||||
|     const u32 sign_bit{fcmp.is_negative != 0 ? (1U << 31) : 0}; | ||||
|     const u32 value{static_cast<u32>(fcmp.value) << 12}; | ||||
|  | ||||
|     FCMP(*this, insn, ir.Imm32(value), GetFloatReg39(insn)); | ||||
| } | ||||
|  | ||||
| } // namespace Shader::Maxwell | ||||
|   | ||||
		Reference in New Issue
	
	Block a user