void CodeGen::nonLifoTrap(RegisterState* s) { a.Comment("nonLifoTrap"); static PrimDesc* non_lifo_abort = NULL; if (non_lifo_abort == NULL) non_lifo_abort = getPrimDescOfFunction( fntype(&NLRSupport::non_lifo_abort), true); Label next(a.printing); a.call(&next); // prim needs some PC in this method next.define(); a.popl(Temp1); move(ReceiverReg, Temp1); s->allocateArgs(0, true); // for receiver Label* nlr_dest = cPrimCall(non_lifo_abort, s, true, true, 1); assert(nlr_dest == NULL, "should not need a label"); }
void initDeadBlockNode() { DeadBlockNode::non_lifo_abort = getPrimDescOfFunction(fntype(&NLRSupport::non_lifo_abort), true); }