summaryrefslogtreecommitdiff
path: root/src/jit/lsraarm64.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/jit/lsraarm64.cpp')
-rw-r--r--src/jit/lsraarm64.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/jit/lsraarm64.cpp b/src/jit/lsraarm64.cpp
index 3b2d465495..6de00f4bda 100644
--- a/src/jit/lsraarm64.cpp
+++ b/src/jit/lsraarm64.cpp
@@ -289,7 +289,8 @@ void Lowering::TreeNodeInfoInit(GenTree* tree)
if (tree->gtOverflow())
{
// Need a register different from target reg to check for overflow.
- info->internalIntCount = 2;
+ info->internalIntCount = 1;
+ info->isInternalRegDelayFree = true;
}
__fallthrough;
@@ -602,14 +603,10 @@ void Lowering::TreeNodeInfoInit(GenTree* tree)
break;
case GT_ARR_INDEX:
- info->srcCount = 2;
- info->dstCount = 1;
-
- // We need one internal register when generating code for GT_ARR_INDEX, however the
- // register allocator always may just give us the same one as it gives us for the 'dst'
- // as a workaround we will just ask for two internal registers.
- //
- info->internalIntCount = 2;
+ info->srcCount = 2;
+ info->dstCount = 1;
+ info->internalIntCount = 1;
+ info->isInternalRegDelayFree = true;
// For GT_ARR_INDEX, the lifetime of the arrObj must be extended because it is actually used multiple
// times while the result is being computed.