Call missing genProduceReg in genCodeForCompare (#97805)
authorTomasz Sowiński <tomeksowi@gmail.com>
Thu, 1 Feb 2024 15:32:24 +0000 (16:32 +0100)
committerGleb Balykov/Advanced System SW Lab /SRR/Staff Engineer/Samsung Electronics <g.balykov@samsung.com>
Thu, 22 Feb 2024 11:52:55 +0000 (14:52 +0300)
Co-authored-by: Dong-Heon Jung <clamp03@gmail.com>
src/coreclr/jit/codegenriscv64.cpp

index 0bb02d0..e613511 100644 (file)
@@ -3408,9 +3408,13 @@ void CodeGen::genCodeForCompare(GenTreeOp* tree)
     emitter*  emit      = GetEmitter();
     regNumber targetReg = tree->GetRegNum();
 
+    assert(targetReg != REG_NA);
+    assert(tree->TypeGet() != TYP_VOID);
+    assert(!op1->isContainedIntOrIImmed());
+    assert(tree->OperIs(GT_LT, GT_LE, GT_EQ, GT_NE, GT_GT, GT_GE));
+
     if (varTypeIsFloating(op1Type))
     {
-        assert(tree->OperIs(GT_LT, GT_LE, GT_EQ, GT_NE, GT_GT, GT_GE));
         bool      isUnordered = (tree->gtFlags & GTF_RELOP_NAN_UN) != 0;
         regNumber regOp1      = op1->GetRegNum();
         regNumber regOp2      = op2->GetRegNum();
@@ -3498,8 +3502,6 @@ void CodeGen::genCodeForCompare(GenTreeOp* tree)
     }
     else
     {
-        assert(targetReg != REG_NA);
-        assert(tree->TypeGet() != TYP_VOID);
         if (op1->isContainedIntOrIImmed())
         {
             op1 = tree->gtOp2;
@@ -3522,8 +3524,6 @@ void CodeGen::genCodeForCompare(GenTreeOp* tree)
                     break;
             }
         }
-        assert(!op1->isContainedIntOrIImmed());
-        assert(tree->OperIs(GT_LT, GT_LE, GT_EQ, GT_NE, GT_GT, GT_GE));
 
         bool      isUnsigned = (tree->gtFlags & GTF_UNSIGNED) != 0;
         regNumber regOp1     = op1->GetRegNum();
@@ -3720,6 +3720,8 @@ void CodeGen::genCodeForCompare(GenTreeOp* tree)
             }
         }
     }
+
+    genProduceReg(tree);
 }
 
 //------------------------------------------------------------------------