[RyuJIT/arm32] Fix LEA codegen
authorHanjoung Lee <hanjoung.lee@samsung.com>
Thu, 17 Aug 2017 02:55:43 +0000 (11:55 +0900)
committerHanjoung Lee <hanjoung.lee@samsung.com>
Thu, 17 Aug 2017 02:57:54 +0000 (11:57 +0900)
Do not generate `mov` when src and dst are the same
when we generate code for LEA node.

Fix dotnet/coreclr#13418

Commit migrated from https://github.com/dotnet/coreclr/commit/92c3ea6000b37737a7caa5876a12a52d61198676

src/coreclr/src/jit/codegenarmarch.cpp

index 11d2258..d751482 100644 (file)
@@ -3235,7 +3235,10 @@ void CodeGen::genLeaInstruction(GenTreeAddrMode* lea)
             }
             else // offset is zero
             {
-                emit->emitIns_R_R(INS_mov, size, lea->gtRegNum, memBase->gtRegNum);
+                if (lea->gtRegNum != memBase->gtRegNum)
+                {
+                    emit->emitIns_R_R(INS_mov, size, lea->gtRegNum, memBase->gtRegNum);
+                }
             }
         }
         else