From: Mike Danes Date: Thu, 17 Nov 2016 21:15:26 +0000 (+0200) Subject: Fix x86 long compares that produce a result X-Git-Tag: accepted/tizen/base/20180629.140029~3032^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fca7e09e50bd20ed1917fd88dff390ad8c8acafc;p=platform%2Fupstream%2Fcoreclr.git Fix x86 long compares that produce a result Remove the duplicate genProduceReg call. Also remove an unnecessary movzx. --- diff --git a/src/jit/codegenxarch.cpp b/src/jit/codegenxarch.cpp index 5e4153c..4c65627 100644 --- a/src/jit/codegenxarch.cpp +++ b/src/jit/codegenxarch.cpp @@ -5802,10 +5802,6 @@ void CodeGen::genCompareLong(GenTreePtr treeNode) emitJumpKind jumpKindLo = genJumpKindForOper(tree->gtOper, CK_UNSIGNED); inst_SET(jumpKindLo, targetReg); - // Set the higher bytes to 0 - inst_RV_RV(ins_Move_Extend(TYP_UBYTE, true), targetReg, targetReg, TYP_UBYTE, emitTypeSize(TYP_UBYTE)); - genProduceReg(tree); - inst_JMP(EJ_jmp, labelFinal); // Define the label for hi jump target here. If we have jumped here, we want to set @@ -5814,11 +5810,10 @@ void CodeGen::genCompareLong(GenTreePtr treeNode) genDefineTempLabel(labelHi); inst_SET(genJumpKindForOper(tree->gtOper, compareKind), targetReg); + genDefineTempLabel(labelFinal); // Set the higher bytes to 0 inst_RV_RV(ins_Move_Extend(TYP_UBYTE, true), targetReg, targetReg, TYP_UBYTE, emitTypeSize(TYP_UBYTE)); genProduceReg(tree); - - genDefineTempLabel(labelFinal); } else {