@@ -9412,14 +9412,15 @@ GenTree* Compiler::fgExpandVirtualVtableCallTarget(GenTreeCall* call)
94129412
94139413 // [tmp + vtabOffsOfIndirection]
94149414 GenTree* tmpTree1 = gtNewOperNode(GT_ADD, TYP_I_IMPL, gtNewLclvNode(varNum1, TYP_I_IMPL),
9415- gtNewIconNode(vtabOffsOfIndirection, TYP_INT ));
9415+ gtNewIconNode(vtabOffsOfIndirection, TYP_I_IMPL ));
94169416 tmpTree1 = gtNewOperNode(GT_IND, TYP_I_IMPL, tmpTree1, false);
94179417 tmpTree1->gtFlags |= GTF_IND_NONFAULTING;
94189418 tmpTree1->gtFlags |= GTF_IND_INVARIANT;
94199419
94209420 // var1 + vtabOffsOfIndirection + vtabOffsAfterIndirection
9421- GenTree* tmpTree2 = gtNewOperNode(GT_ADD, TYP_I_IMPL, gtNewLclvNode(varNum1, TYP_I_IMPL),
9422- gtNewIconNode(vtabOffsOfIndirection + vtabOffsAfterIndirection, TYP_INT));
9421+ GenTree* tmpTree2 =
9422+ gtNewOperNode(GT_ADD, TYP_I_IMPL, gtNewLclvNode(varNum1, TYP_I_IMPL),
9423+ gtNewIconNode(vtabOffsOfIndirection + vtabOffsAfterIndirection, TYP_I_IMPL));
94239424
94249425 // var1 + vtabOffsOfIndirection + vtabOffsAfterIndirection + [var1 + vtabOffsOfIndirection]
94259426 tmpTree2 = gtNewOperNode(GT_ADD, TYP_I_IMPL, tmpTree2, tmpTree1);
@@ -9438,7 +9439,7 @@ GenTree* Compiler::fgExpandVirtualVtableCallTarget(GenTreeCall* call)
94389439 else
94399440 {
94409441 // result = [vtab + vtabOffsOfIndirection]
9441- result = gtNewOperNode(GT_ADD, TYP_I_IMPL, vtab, gtNewIconNode(vtabOffsOfIndirection, TYP_INT ));
9442+ result = gtNewOperNode(GT_ADD, TYP_I_IMPL, vtab, gtNewIconNode(vtabOffsOfIndirection, TYP_I_IMPL ));
94429443 result = gtNewOperNode(GT_IND, TYP_I_IMPL, result, false);
94439444 result->gtFlags |= GTF_IND_NONFAULTING;
94449445 result->gtFlags |= GTF_IND_INVARIANT;
@@ -9454,7 +9455,7 @@ GenTree* Compiler::fgExpandVirtualVtableCallTarget(GenTreeCall* call)
94549455 {
94559456 // Load the function address
94569457 // result = [result + vtabOffsAfterIndirection]
9457- result = gtNewOperNode(GT_ADD, TYP_I_IMPL, result, gtNewIconNode(vtabOffsAfterIndirection, TYP_INT ));
9458+ result = gtNewOperNode(GT_ADD, TYP_I_IMPL, result, gtNewIconNode(vtabOffsAfterIndirection, TYP_I_IMPL ));
94589459 // This last indirection is not invariant, but is non-faulting
94599460 result = gtNewOperNode(GT_IND, TYP_I_IMPL, result, false);
94609461 result->gtFlags |= GTF_IND_NONFAULTING;
0 commit comments