summaryrefslogtreecommitdiff
path: root/src/jit/decomposelongs.cpp
diff options
context:
space:
mode:
authormskvortsov <mikhael.skvortsov@gmail.com>2017-05-12 04:32:11 +0300
committerBruce Forstall <brucefo@microsoft.com>2017-05-11 18:32:11 -0700
commite236ed54426e1e2bc53115123adbf9bad9584b5d (patch)
tree41455b7aa62aed7a873d9a5d2842563fa0ab53ba /src/jit/decomposelongs.cpp
parent4be9be99e578bd93616f439ba603b6a2909afcec (diff)
downloadcoreclr-e236ed54426e1e2bc53115123adbf9bad9584b5d.tar.gz
coreclr-e236ed54426e1e2bc53115123adbf9bad9584b5d.tar.bz2
coreclr-e236ed54426e1e2bc53115123adbf9bad9584b5d.zip
[RyuJIT/ARM32] Fix GT_NEG decomposition (#11495)
RyuJIT/ARM32: Fix GT_NEG decomposition.
Diffstat (limited to 'src/jit/decomposelongs.cpp')
-rw-r--r--src/jit/decomposelongs.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/jit/decomposelongs.cpp b/src/jit/decomposelongs.cpp
index d284c1cb47..4168e77c1c 100644
--- a/src/jit/decomposelongs.cpp
+++ b/src/jit/decomposelongs.cpp
@@ -922,11 +922,15 @@ GenTree* DecomposeLongs::DecomposeNeg(LIR::Use& use)
loResult->gtType = TYP_INT;
loResult->gtOp.gtOp1 = loOp1;
- GenTree* zero = m_compiler->gtNewZeroConNode(TYP_INT);
+ GenTree* zero = m_compiler->gtNewZeroConNode(TYP_INT);
+#if defined(_TARGET_X86_)
GenTree* hiAdjust = m_compiler->gtNewOperNode(GT_ADD_HI, TYP_INT, hiOp1, zero);
GenTree* hiResult = m_compiler->gtNewOperNode(GT_NEG, TYP_INT, hiAdjust);
-
Range().InsertAfter(loResult, zero, hiAdjust, hiResult);
+#elif defined(_TARGET_ARM_)
+ GenTree* hiResult = m_compiler->gtNewOperNode(GT_SUB_HI, TYP_INT, zero, hiOp1);
+ Range().InsertAfter(loResult, zero, hiResult);
+#endif
return FinalizeDecomposition(use, loResult, hiResult, hiResult);
}