< prev index next >

src/share/vm/c1/c1_LIRAssembler.cpp

Print this page




 447 void LIR_Assembler::add_debug_info_for_div0(int pc_offset, CodeEmitInfo* cinfo) {
 448   DivByZeroStub* stub = new DivByZeroStub(pc_offset, cinfo);
 449   append_code_stub(stub);
 450 }
 451 
 452 void LIR_Assembler::emit_rtcall(LIR_OpRTCall* op) {
 453   rt_call(op->result_opr(), op->addr(), op->arguments(), op->tmp(), op->info());
 454 }
 455 
 456 
 457 void LIR_Assembler::emit_call(LIR_OpJavaCall* op) {
 458   verify_oop_map(op->info());
 459 
 460   if (os::is_MP()) {
 461     // must align calls sites, otherwise they can't be updated atomically on MP hardware
 462     align_call(op->code());
 463   }
 464 
 465   // emit the static call stub stuff out of line
 466   emit_static_call_stub();

 467 
 468   switch (op->code()) {
 469   case lir_static_call:
 470   case lir_dynamic_call:
 471     call(op, relocInfo::static_call_type);
 472     break;
 473   case lir_optvirtual_call:
 474     call(op, relocInfo::opt_virtual_call_type);
 475     break;
 476   case lir_icvirtual_call:
 477     ic_call(op);
 478     break;
 479   case lir_virtual_call:
 480     vtable_call(op);
 481     break;
 482   default:
 483     fatal(err_msg_res("unexpected op code: %s", op->name()));
 484     break;
 485   }
 486 




 447 void LIR_Assembler::add_debug_info_for_div0(int pc_offset, CodeEmitInfo* cinfo) {
 448   DivByZeroStub* stub = new DivByZeroStub(pc_offset, cinfo);
 449   append_code_stub(stub);
 450 }
 451 
 452 void LIR_Assembler::emit_rtcall(LIR_OpRTCall* op) {
 453   rt_call(op->result_opr(), op->addr(), op->arguments(), op->tmp(), op->info());
 454 }
 455 
 456 
 457 void LIR_Assembler::emit_call(LIR_OpJavaCall* op) {
 458   verify_oop_map(op->info());
 459 
 460   if (os::is_MP()) {
 461     // must align calls sites, otherwise they can't be updated atomically on MP hardware
 462     align_call(op->code());
 463   }
 464 
 465   // emit the static call stub stuff out of line
 466   emit_static_call_stub();
 467   CHECK_BAILOUT();
 468 
 469   switch (op->code()) {
 470   case lir_static_call:
 471   case lir_dynamic_call:
 472     call(op, relocInfo::static_call_type);
 473     break;
 474   case lir_optvirtual_call:
 475     call(op, relocInfo::opt_virtual_call_type);
 476     break;
 477   case lir_icvirtual_call:
 478     ic_call(op);
 479     break;
 480   case lir_virtual_call:
 481     vtable_call(op);
 482     break;
 483   default:
 484     fatal(err_msg_res("unexpected op code: %s", op->name()));
 485     break;
 486   }
 487 


< prev index next >