@@ -3640,8 +3640,9 @@ emitter::instrDesc* emitter::emitNewInstrCallInd(int argCnt,
36403640 instrDescCGCA* id;
36413641
36423642 id = emitAllocInstrCGCA (retSize);
3643-
3644- id->idSetIsLargeCall ();
3643+ id->idSetIsLargeCns ();
3644+ id->idSetIsCall ();
3645+ assert (id->idIsLargeCall ());
36453646
36463647 VarSetOps::Assign (emitComp, id->idcGCvars , GCvars);
36473648 id->idcGcrefRegs = gcrefRegs;
@@ -3663,6 +3664,7 @@ emitter::instrDesc* emitter::emitNewInstrCallInd(int argCnt,
36633664
36643665 /* Make sure we didn't waste space unexpectedly */
36653666 assert (!id->idIsLargeCns ());
3667+ id->idSetIsCall ();
36663668
36673669#ifdef TARGET_XARCH
36683670 /* Store the displacement and make sure the value fit */
@@ -3720,7 +3722,9 @@ emitter::instrDesc* emitter::emitNewInstrCallDir(int argCnt,
37203722
37213723 // printf("Direct call with GC vars / big arg cnt / explicit scope\n");
37223724
3723- id->idSetIsLargeCall ();
3725+ id->idSetIsLargeCns ();
3726+ id->idSetIsCall ();
3727+ assert (id->idIsLargeCall ());
37243728
37253729 VarSetOps::Assign (emitComp, id->idcGCvars , GCvars);
37263730 id->idcGcrefRegs = gcrefRegs;
@@ -3742,6 +3746,7 @@ emitter::instrDesc* emitter::emitNewInstrCallDir(int argCnt,
37423746
37433747 /* Make sure we didn't waste space unexpectedly */
37443748 assert (!id->idIsLargeCns ());
3749+ id->idSetIsCall ();
37453750
37463751 /* Save the live GC registers in the unused register fields */
37473752 assert ((gcrefRegs & RBM_CALLEE_TRASH) == 0 );
@@ -8763,6 +8768,16 @@ void emitter::emitUpdateLiveGCvars(VARSET_VALARG_TP vars, BYTE* addr)
87638768 emitThisGCrefVset = true ;
87648769}
87658770
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+
87668781/* ****************************************************************************
87678782 *
87688783 * Record a call location for GC purposes (we know that this is a method that
0 commit comments