Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit f55e568

Browse files
committed
Fix for armel double passed as long
1 parent 4157555 commit f55e568

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

src/jit/lsra.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3998,7 +3998,7 @@ void LinearScan::buildRefPositionsForNode(GenTree* tree,
39983998
{
39993999
// This is the 2nd or subsequent register defined by a multi-reg node.
40004000
// Connect them using 'relatedInterval'.
4001-
noway_assert((prevInterval != nullptr) && (prevInterval->relatedInterval == nullptr));
4001+
noway_assert(prevInterval != nullptr);
40024002
prevInterval->relatedInterval = interval;
40034003
prevInterval = interval;
40044004
prevInterval->isMultiReg = true;

src/jit/lsraarm.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,6 @@ void LinearScan::TreeNodeInfoInit(GenTree* tree, TreeNodeInfo* info)
767767
info->srcCount = 1;
768768
assert(info->dstCount == 1);
769769
LocationInfoListNode* locationInfo = getLocationInfo(tree->gtOp.gtOp1);
770-
locationInfo->info.isTgtPref = true;
771770
useList.Append(locationInfo);
772771
regNumber argReg = tree->gtRegNum;
773772
regMaskTP argMask = genRegMask(argReg);

src/jit/lsraarmarch.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,9 +555,12 @@ void LinearScan::TreeNodeInfoInitCall(GenTreeCall* call, TreeNodeInfo* info)
555555
#ifdef _TARGET_ARM_
556556
// The `double` types have been transformed to `long` on armel,
557557
// while the actual long types have been decomposed.
558+
// On ARM we may have bitcasts from DOUBLE to LONG.
558559
if (argNode->TypeGet() == TYP_LONG)
559560
{
560-
info->srcCount += appendBinaryLocationInfoToList(argNode->AsOp());
561+
assert(argNode->IsMultiRegNode());
562+
info->srcCount += 2;
563+
appendLocationInfoToList(argNode);
561564
}
562565
else
563566
#endif // _TARGET_ARM_

0 commit comments

Comments
 (0)