< prev index next >

src/share/vm/opto/callnode.cpp

Print this page




 323 static void format_helper( PhaseRegAlloc *regalloc, outputStream* st, Node *n, const char *msg, uint i, GrowableArray<SafePointScalarObjectNode*> *scobjs ) {
 324   if (n == NULL) { st->print(" NULL"); return; }
 325   if (n->is_SafePointScalarObject()) {
 326     // Scalar replacement.
 327     SafePointScalarObjectNode* spobj = n->as_SafePointScalarObject();
 328     scobjs->append_if_missing(spobj);
 329     int sco_n = scobjs->find(spobj);
 330     assert(sco_n >= 0, "");
 331     st->print(" %s%d]=#ScObj" INT32_FORMAT, msg, i, sco_n);
 332     return;
 333   }
 334   if (regalloc->node_regs_max_index() > 0 &&
 335       OptoReg::is_valid(regalloc->get_reg_first(n))) { // Check for undefined
 336     char buf[50];
 337     regalloc->dump_register(n,buf);
 338     st->print(" %s%d]=%s",msg,i,buf);
 339   } else {                      // No register, but might be constant
 340     const Type *t = n->bottom_type();
 341     switch (t->base()) {
 342     case Type::Int:
 343       st->print(" %s%d]=#"INT32_FORMAT,msg,i,t->is_int()->get_con());
 344       break;
 345     case Type::AnyPtr:
 346       assert( t == TypePtr::NULL_PTR || n->in_dump(), "" );
 347       st->print(" %s%d]=#NULL",msg,i);
 348       break;
 349     case Type::AryPtr:
 350     case Type::InstPtr:
 351       st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->isa_oopptr()->const_oop()));
 352       break;
 353     case Type::KlassPtr:
 354       st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_klassptr()->klass()));
 355       break;
 356     case Type::MetadataPtr:
 357       st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_metadataptr()->metadata()));
 358       break;
 359     case Type::NarrowOop:
 360       st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_oopptr()->const_oop()));
 361       break;
 362     case Type::RawPtr:
 363       st->print(" %s%d]=#Raw" INTPTR_FORMAT,msg,i,p2i(t->is_rawptr()));
 364       break;
 365     case Type::DoubleCon:
 366       st->print(" %s%d]=#%fD",msg,i,t->is_double_constant()->_d);
 367       break;
 368     case Type::FloatCon:
 369       st->print(" %s%d]=#%fF",msg,i,t->is_float_constant()->_f);
 370       break;
 371     case Type::Long:
 372       st->print(" %s%d]=#"INT64_FORMAT,msg,i,(int64_t)(t->is_long()->get_con()));
 373       break;
 374     case Type::Half:
 375     case Type::Top:
 376       st->print(" %s%d]=_",msg,i);
 377       break;
 378     default: ShouldNotReachHere();
 379     }
 380   }
 381 }
 382 
 383 //------------------------------format-----------------------------------------
 384 void JVMState::format(PhaseRegAlloc *regalloc, const Node *n, outputStream* st) const {
 385   st->print("        #");
 386   if (_method) {
 387     _method->print_short_name(st);
 388     st->print(" @ bci:%d ",_bci);
 389   } else {
 390     st->print_cr(" runtime stub ");
 391     return;
 392   }




 323 static void format_helper( PhaseRegAlloc *regalloc, outputStream* st, Node *n, const char *msg, uint i, GrowableArray<SafePointScalarObjectNode*> *scobjs ) {
 324   if (n == NULL) { st->print(" NULL"); return; }
 325   if (n->is_SafePointScalarObject()) {
 326     // Scalar replacement.
 327     SafePointScalarObjectNode* spobj = n->as_SafePointScalarObject();
 328     scobjs->append_if_missing(spobj);
 329     int sco_n = scobjs->find(spobj);
 330     assert(sco_n >= 0, "");
 331     st->print(" %s%d]=#ScObj" INT32_FORMAT, msg, i, sco_n);
 332     return;
 333   }
 334   if (regalloc->node_regs_max_index() > 0 &&
 335       OptoReg::is_valid(regalloc->get_reg_first(n))) { // Check for undefined
 336     char buf[50];
 337     regalloc->dump_register(n,buf);
 338     st->print(" %s%d]=%s",msg,i,buf);
 339   } else {                      // No register, but might be constant
 340     const Type *t = n->bottom_type();
 341     switch (t->base()) {
 342     case Type::Int:
 343       st->print(" %s%d]=#" INT32_FORMAT,msg,i,t->is_int()->get_con());
 344       break;
 345     case Type::AnyPtr:
 346       assert( t == TypePtr::NULL_PTR || n->in_dump(), "" );
 347       st->print(" %s%d]=#NULL",msg,i);
 348       break;
 349     case Type::AryPtr:
 350     case Type::InstPtr:
 351       st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->isa_oopptr()->const_oop()));
 352       break;
 353     case Type::KlassPtr:
 354       st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_klassptr()->klass()));
 355       break;
 356     case Type::MetadataPtr:
 357       st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_metadataptr()->metadata()));
 358       break;
 359     case Type::NarrowOop:
 360       st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_oopptr()->const_oop()));
 361       break;
 362     case Type::RawPtr:
 363       st->print(" %s%d]=#Raw" INTPTR_FORMAT,msg,i,p2i(t->is_rawptr()));
 364       break;
 365     case Type::DoubleCon:
 366       st->print(" %s%d]=#%fD",msg,i,t->is_double_constant()->_d);
 367       break;
 368     case Type::FloatCon:
 369       st->print(" %s%d]=#%fF",msg,i,t->is_float_constant()->_f);
 370       break;
 371     case Type::Long:
 372       st->print(" %s%d]=#" INT64_FORMAT,msg,i,(int64_t)(t->is_long()->get_con()));
 373       break;
 374     case Type::Half:
 375     case Type::Top:
 376       st->print(" %s%d]=_",msg,i);
 377       break;
 378     default: ShouldNotReachHere();
 379     }
 380   }
 381 }
 382 
 383 //------------------------------format-----------------------------------------
 384 void JVMState::format(PhaseRegAlloc *regalloc, const Node *n, outputStream* st) const {
 385   st->print("        #");
 386   if (_method) {
 387     _method->print_short_name(st);
 388     st->print(" @ bci:%d ",_bci);
 389   } else {
 390     st->print_cr(" runtime stub ");
 391     return;
 392   }


< prev index next >