From fca7e09e50bd20ed1917fd88dff390ad8c8acafc Mon Sep 17 00:00:00 2001 From: Mike Danes Date: Thu, 17 Nov 2016 23:15:26 +0200 Subject: [PATCH] Fix x86 long compares that produce a result Remove the duplicate genProduceReg call. Also remove an unnecessary movzx. --- src/jit/codegenxarch.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) 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 { -- 2.7.4