/** * Handle timer interrupt taken on loop backedge. This method is identical to the * yieldpointFromBackedge() method used method used by the baseline compiler, except in the OPT * compiler world, we also save the volatile registers. */ @Entrypoint public static void OPT_yieldpointFromBackedge() { LocalAddress fp = VM_Magic.getFramePointer(); VM_GreenThread.yieldpoint(VM_Thread.BACKEDGE, fp); }
/** OSR invalidation being initiated. */ @Entrypoint public static void OPT_yieldpointFromOsrOpt() { LocalAddress fp = VM_Magic.getFramePointer(); VM_Processor.getCurrentProcessor().yieldToOSRRequested = true; VM_GreenThread.yieldpoint(VM_Thread.OSROPT, fp); }
/** * Handle timer interrupt taken in method epilogue. This method is identical to the * yieldpointFromEpilogue() method used by the baseline compiler, except in the OPT compiler * world, we also save the volatile registers. */ @Entrypoint public static void OPT_yieldpointFromEpilogue() { LocalAddress fp = VM_Magic.getFramePointer(); VM_GreenThread.yieldpoint(VM_Thread.EPILOGUE, fp); }