summaryrefslogtreecommitdiff
path: root/src/jit/instr.cpp
diff options
context:
space:
mode:
authorMikhail Skvortcov <m.skvortcov@partner.samsung.com>2017-01-26 19:50:28 +0300
committerMikhail Skvortcov <m.skvortcov@partner.samsung.com>2017-02-09 11:21:12 +0300
commit85f00fa9f2bf2ee4a083686cb1a59447b8dd0f74 (patch)
tree86c26dbcf5aa2c9ed0a75d8dedc6ea7dbc8dd434 /src/jit/instr.cpp
parent076116be7b5e7890760778020604c698377a83e2 (diff)
downloadcoreclr-85f00fa9f2bf2ee4a083686cb1a59447b8dd0f74.tar.gz
coreclr-85f00fa9f2bf2ee4a083686cb1a59447b8dd0f74.tar.bz2
coreclr-85f00fa9f2bf2ee4a083686cb1a59447b8dd0f74.zip
RyuJIT/ARM32: enable DecomposeLongs phase
Diffstat (limited to 'src/jit/instr.cpp')
-rw-r--r--src/jit/instr.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/jit/instr.cpp b/src/jit/instr.cpp
index 7332ba6c71..5cb2ccd6f4 100644
--- a/src/jit/instr.cpp
+++ b/src/jit/instr.cpp
@@ -2326,7 +2326,7 @@ void CodeGen::inst_RV_TT(instruction ins,
#if CPU_LOAD_STORE_ARCH
if (ins == INS_mov)
{
-#if defined(_TARGET_ARM_)
+#if defined(_TARGET_ARM_) && CPU_LONG_USES_REGPAIR
if (tree->TypeGet() != TYP_LONG)
{
ins = ins_Move_Extend(tree->TypeGet(), (tree->gtFlags & GTF_REG_VAL) != 0);
@@ -2341,7 +2341,7 @@ void CodeGen::inst_RV_TT(instruction ins,
ins = ins_Move_Extend(TYP_INT,
(tree->gtFlags & GTF_REG_VAL) != 0 && genRegPairHi(tree->gtRegPair) != REG_STK);
}
-#elif defined(_TARGET_ARM64_)
+#elif defined(_TARGET_ARM_) || defined(_TARGET_ARM64_)
ins = ins_Move_Extend(tree->TypeGet(), (tree->gtFlags & GTF_REG_VAL) != 0);
#else
NYI("CodeGen::inst_RV_TT with INS_mov");
@@ -2485,9 +2485,11 @@ AGAIN:
default:
regNumber regTmp;
#ifndef LEGACY_BACKEND
+#if CPU_LONG_USES_REGPAIR
if (tree->TypeGet() == TYP_LONG)
regTmp = (offs == 0) ? genRegPairLo(tree->gtRegPair) : genRegPairHi(tree->gtRegPair);
else
+#endif // CPU_LONG_USES_REGPAIR
regTmp = tree->gtRegNum;
#else // LEGACY_BACKEND
if (varTypeIsFloating(tree))
@@ -2575,6 +2577,7 @@ AGAIN:
inst_RV_IV(ins, reg, tree->gtIntCon.gtIconVal, emitActualTypeSize(tree->TypeGet()), flags);
break;
+#if CPU_LONG_USES_REGPAIR
case GT_CNS_LNG:
assert(size == EA_4BYTE || size == EA_8BYTE);
@@ -2609,6 +2612,7 @@ AGAIN:
inst_RV_IV(ins, reg, constVal, size, flags);
break;
+#endif // CPU_LONG_USES_REGPAIR
case GT_COMMA:
tree = tree->gtOp.gtOp2;