src/share/vm/opto/machnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7063628 Sdiff src/share/vm/opto

src/share/vm/opto/machnode.cpp

Print this page




 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 
 506 //=============================================================================
 507 #ifndef PRODUCT
 508 void MachNullCheckNode::format( PhaseRegAlloc *ra_, outputStream *st ) const {
 509   int reg = ra_->get_reg_first(in(1)->in(_vidx));
 510   tty->print("%s %s", Name(), Matcher::regName[reg]);
 511 }
 512 #endif
 513 
 514 void MachNullCheckNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
 515   // only emits entries in the null-pointer exception handler table
 516 }



 517 
 518 const RegMask &MachNullCheckNode::in_RegMask( uint idx ) const {
 519   if( idx == 0 ) return RegMask::Empty;
 520   else return in(1)->as_Mach()->out_RegMask();
 521 }
 522 
 523 //=============================================================================
 524 const Type *MachProjNode::bottom_type() const {
 525   if( _ideal_reg == fat_proj ) return Type::BOTTOM;
 526   // Try the normal mechanism first
 527   const Type *t = in(0)->bottom_type();
 528   if( t->base() == Type::Tuple ) {
 529     const TypeTuple *tt = t->is_tuple();
 530     if (_con < tt->cnt())
 531       return tt->field_at(_con);
 532   }
 533   // Else use generic type from ideal register set
 534   assert((uint)_ideal_reg < (uint)_last_machine_leaf && Type::mreg2type[_ideal_reg], "in bounds");
 535   return Type::mreg2type[_ideal_reg];
 536 }




 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 
 506 //=============================================================================
 507 #ifndef PRODUCT
 508 void MachNullCheckNode::format( PhaseRegAlloc *ra_, outputStream *st ) const {
 509   int reg = ra_->get_reg_first(in(1)->in(_vidx));
 510   tty->print("%s %s", Name(), Matcher::regName[reg]);
 511 }
 512 #endif
 513 
 514 void MachNullCheckNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
 515   // only emits entries in the null-pointer exception handler table
 516 }
 517 void MachNullCheckNode::label_set(Label& label, uint block_num) {
 518   // Nothing to emit
 519 }
 520 
 521 const RegMask &MachNullCheckNode::in_RegMask( uint idx ) const {
 522   if( idx == 0 ) return RegMask::Empty;
 523   else return in(1)->as_Mach()->out_RegMask();
 524 }
 525 
 526 //=============================================================================
 527 const Type *MachProjNode::bottom_type() const {
 528   if( _ideal_reg == fat_proj ) return Type::BOTTOM;
 529   // Try the normal mechanism first
 530   const Type *t = in(0)->bottom_type();
 531   if( t->base() == Type::Tuple ) {
 532     const TypeTuple *tt = t->is_tuple();
 533     if (_con < tt->cnt())
 534       return tt->field_at(_con);
 535   }
 536   // Else use generic type from ideal register set
 537   assert((uint)_ideal_reg < (uint)_last_machine_leaf && Type::mreg2type[_ideal_reg], "in bounds");
 538   return Type::mreg2type[_ideal_reg];
 539 }


src/share/vm/opto/machnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File