diff options
Diffstat (limited to 'src/jit/lsraarm64.cpp')
-rw-r--r-- | src/jit/lsraarm64.cpp | 15 |
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. |