@@ -3640,8 +3640,9 @@ emitter::instrDesc* emitter::emitNewInstrCallInd(int argCnt,
3640
3640
instrDescCGCA* id;
3641
3641
3642
3642
id = emitAllocInstrCGCA(retSize);
3643
-
3644
- id->idSetIsLargeCall();
3643
+ id->idSetIsLargeCns();
3644
+ id->idSetIsCall();
3645
+ assert(id->idIsLargeCall());
3645
3646
3646
3647
VarSetOps::Assign(emitComp, id->idcGCvars, GCvars);
3647
3648
id->idcGcrefRegs = gcrefRegs;
@@ -3663,6 +3664,7 @@ emitter::instrDesc* emitter::emitNewInstrCallInd(int argCnt,
3663
3664
3664
3665
/* Make sure we didn't waste space unexpectedly */
3665
3666
assert(!id->idIsLargeCns());
3667
+ id->idSetIsCall();
3666
3668
3667
3669
#ifdef TARGET_XARCH
3668
3670
/* Store the displacement and make sure the value fit */
@@ -3720,7 +3722,9 @@ emitter::instrDesc* emitter::emitNewInstrCallDir(int argCnt,
3720
3722
3721
3723
// printf("Direct call with GC vars / big arg cnt / explicit scope\n");
3722
3724
3723
- id->idSetIsLargeCall();
3725
+ id->idSetIsLargeCns();
3726
+ id->idSetIsCall();
3727
+ assert(id->idIsLargeCall());
3724
3728
3725
3729
VarSetOps::Assign(emitComp, id->idcGCvars, GCvars);
3726
3730
id->idcGcrefRegs = gcrefRegs;
@@ -3742,6 +3746,7 @@ emitter::instrDesc* emitter::emitNewInstrCallDir(int argCnt,
3742
3746
3743
3747
/* Make sure we didn't waste space unexpectedly */
3744
3748
assert(!id->idIsLargeCns());
3749
+ id->idSetIsCall();
3745
3750
3746
3751
/* Save the live GC registers in the unused register fields */
3747
3752
assert((gcrefRegs & RBM_CALLEE_TRASH) == 0);
@@ -8763,6 +8768,16 @@ void emitter::emitUpdateLiveGCvars(VARSET_VALARG_TP vars, BYTE* addr)
8763
8768
emitThisGCrefVset = true;
8764
8769
}
8765
8770
8771
+ /*****************************************************************************
8772
+ *
8773
+ * Last emitted instruction is a call that is not a NoGC call.
8774
+ */
8775
+
8776
+ bool emitter::emitLastInsIsCallWithGC()
8777
+ {
8778
+ return emitLastIns != nullptr && emitLastIns->idIsCall() && !emitLastIns->idIsNoGC();
8779
+ }
8780
+
8766
8781
/*****************************************************************************
8767
8782
*
8768
8783
* Record a call location for GC purposes (we know that this is a method that
0 commit comments