Insert int3 after non-returning calls at the end of basic blocks. (#17535)
Insert int3 after non-returning calls at the end of basic blocks. (#17535)

This is a follow-up to #17501 that fixed #17398.

gc pointer reporting in fully-interruptible mode: the latter assumed that
register gc pointer liveness doesn't change across calls while #6103 introduced
codegen where it wasn't true.

doesn't change across calls.

This change inserts int3 after non-returning calls at the end of basic blocks
so that gc pointer liveness doesn't change across calls. This is additional
insurance in case any other place in the runtime is dependent on that contract.
mmitche/coreclr,poizan42/coreclr,wtgodbe/coreclr,mmitche/coreclr,cshung/coreclr,poizan42/coreclr,mmitche/coreclr,mmitche/coreclr,krk/coreclr,wtgodbe/coreclr,cshung/coreclr,poizan42/coreclr,wtgodbe/coreclr,poizan42/coreclr,cshung/coreclr,mmitche/coreclr,poizan42/coreclr,wtgodbe/coreclr,poizan42/coreclr,cshung/coreclr,krk/coreclr,krk/coreclr,krk/coreclr,mmitche/coreclr,krk/coreclr,wtgodbe/coreclr,cshung/coreclr,wtgodbe/coreclr,krk/coreclr,cshung/coreclr