Ejemplo n.º 1
0
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");
}
Ejemplo n.º 2
0
 void initDeadBlockNode() {
   DeadBlockNode::non_lifo_abort
     = getPrimDescOfFunction(fntype(&NLRSupport::non_lifo_abort), true);
 }