@ -40,12 +40,12 @@ u32 ShaderIR::DecodeArithmeticInteger(NodeBlock& bb, u32 pc) {
op_a = GetOperandAbsNegInteger ( op_a , false , instr . alu_integer . negate_a , true ) ;
op_a = GetOperandAbsNegInteger ( op_a , false , instr . alu_integer . negate_a , true ) ;
op_b = GetOperandAbsNegInteger ( op_b , false , instr . alu_integer . negate_b , true ) ;
op_b = GetOperandAbsNegInteger ( op_b , false , instr . alu_integer . negate_b , true ) ;
Node value = Operation ( OperationCode : : I Add, op_a , op_b ) ;
Node value = Operation ( OperationCode : : U Add, op_a , op_b ) ;
if ( instr . iadd . x ) {
if ( instr . iadd . x ) {
Node carry = GetInternalFlag ( InternalFlag : : Carry ) ;
Node carry = GetInternalFlag ( InternalFlag : : Carry ) ;
Node x = Operation ( OperationCode : : Select , std : : move ( carry ) , Immediate ( 1 ) , Immediate ( 0 ) ) ;
Node x = Operation ( OperationCode : : Select , std : : move ( carry ) , Immediate ( 1 ) , Immediate ( 0 ) ) ;
value = Operation ( OperationCode : : I Add, std : : move ( value ) , std : : move ( x ) ) ;
value = Operation ( OperationCode : : U Add, std : : move ( value ) , std : : move ( x ) ) ;
}
}
if ( instr . generates_cc ) {
if ( instr . generates_cc ) {