< prev index next >

src/hotspot/share/ci/ciMethodBlocks.cpp

Print this page




 222       }
 223 
 224       case Bytecodes::_jsr_w       :
 225       {
 226         cur_block->set_control_bci(bci);
 227         ciBlock *ret = make_block_at(s.next_bci());
 228         int dest_bci = s.get_far_dest();
 229         ciBlock *dest = make_block_at(dest_bci);
 230         break;
 231       }
 232 
 233       case Bytecodes::_athrow      :
 234         cur_block->set_may_throw();
 235         // fall-through
 236       case Bytecodes::_ret         :
 237       case Bytecodes::_ireturn     :
 238       case Bytecodes::_lreturn     :
 239       case Bytecodes::_freturn     :
 240       case Bytecodes::_dreturn     :
 241       case Bytecodes::_areturn     :
 242       case Bytecodes::_vreturn     :
 243       case Bytecodes::_return      :
 244         cur_block->set_control_bci(bci);
 245         if (s.next_bci() < limit_bci) {
 246           (void) make_block_at(s.next_bci());
 247         }
 248         break;
 249 
 250       default:
 251         break;
 252     }
 253   }
 254   //  End the last block
 255   cur_block->set_limit_bci(limit_bci);
 256 }
 257 
 258 ciMethodBlocks::ciMethodBlocks(Arena *arena, ciMethod *meth): _method(meth),
 259                           _arena(arena), _num_blocks(0), _code_size(meth->code_size()) {
 260   int block_estimate = _code_size / 8;
 261 
 262   _blocks =  new(_arena) GrowableArray<ciBlock *>(_arena, block_estimate, 0, NULL);




 222       }
 223 
 224       case Bytecodes::_jsr_w       :
 225       {
 226         cur_block->set_control_bci(bci);
 227         ciBlock *ret = make_block_at(s.next_bci());
 228         int dest_bci = s.get_far_dest();
 229         ciBlock *dest = make_block_at(dest_bci);
 230         break;
 231       }
 232 
 233       case Bytecodes::_athrow      :
 234         cur_block->set_may_throw();
 235         // fall-through
 236       case Bytecodes::_ret         :
 237       case Bytecodes::_ireturn     :
 238       case Bytecodes::_lreturn     :
 239       case Bytecodes::_freturn     :
 240       case Bytecodes::_dreturn     :
 241       case Bytecodes::_areturn     :

 242       case Bytecodes::_return      :
 243         cur_block->set_control_bci(bci);
 244         if (s.next_bci() < limit_bci) {
 245           (void) make_block_at(s.next_bci());
 246         }
 247         break;
 248 
 249       default:
 250         break;
 251     }
 252   }
 253   //  End the last block
 254   cur_block->set_limit_bci(limit_bci);
 255 }
 256 
 257 ciMethodBlocks::ciMethodBlocks(Arena *arena, ciMethod *meth): _method(meth),
 258                           _arena(arena), _num_blocks(0), _code_size(meth->code_size()) {
 259   int block_estimate = _code_size / 8;
 260 
 261   _blocks =  new(_arena) GrowableArray<ciBlock *>(_arena, block_estimate, 0, NULL);


< prev index next >