comparison src/share/vm/opto/machnode.cpp @ 2008:2f644f85485d

6961690: load oops from constant table on SPARC Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence. Reviewed-by: never, kvn
author twisti
date Fri, 03 Dec 2010 01:34:31 -0800
parents f95d63e2154a
children 3d42f82cd811
comparison
equal deleted inserted replaced
2007:5ddfcf4b079e 2008:2f644f85485d
487 void MachTypeNode::dump_spec(outputStream *st) const { 487 void MachTypeNode::dump_spec(outputStream *st) const {
488 _bottom_type->dump_on(st); 488 _bottom_type->dump_on(st);
489 } 489 }
490 #endif 490 #endif
491 491
492
493 //=============================================================================
494 int MachConstantNode::constant_offset() {
495 int offset = _constant.offset();
496 // Bind the offset lazily.
497 if (offset == -1) {
498 Compile::ConstantTable& constant_table = Compile::current()->constant_table();
499 offset = constant_table.table_base_offset() + constant_table.find_offset(_constant);
500 _constant.set_offset(offset);
501 }
502 return offset;
503 }
504
505
492 //============================================================================= 506 //=============================================================================
493 #ifndef PRODUCT 507 #ifndef PRODUCT
494 void MachNullCheckNode::format( PhaseRegAlloc *ra_, outputStream *st ) const { 508 void MachNullCheckNode::format( PhaseRegAlloc *ra_, outputStream *st ) const {
495 int reg = ra_->get_reg_first(in(1)->in(_vidx)); 509 int reg = ra_->get_reg_first(in(1)->in(_vidx));
496 tty->print("%s %s", Name(), Matcher::regName[reg]); 510 tty->print("%s %s", Name(), Matcher::regName[reg]);