< prev index next >

src/hotspot/cpu/arm/c1_LIRGenerator_arm.cpp

Print this page

 393 }
 394 
 395 void LIRGenerator::array_store_check(LIR_Opr value, LIR_Opr array, CodeEmitInfo* store_check_info, ciMethod* profiled_method, int profiled_bci) {
 396   LIR_Opr tmp1 = FrameMap::R0_oop_opr;
 397   LIR_Opr tmp2 = FrameMap::R1_oop_opr;
 398   LIR_Opr tmp3 = LIR_OprFact::illegalOpr;
 399   __ store_check(value, array, tmp1, tmp2, tmp3, store_check_info, profiled_method, profiled_bci);
 400 }
 401 
 402 //----------------------------------------------------------------------
 403 //             visitor functions
 404 //----------------------------------------------------------------------
 405 
 406 void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
 407   assert(x->is_pinned(),"");
 408   LIRItem obj(x->obj(), this);
 409   obj.load_item();
 410   set_no_result(x);
 411 
 412   LIR_Opr lock = new_pointer_register();
 413   LIR_Opr hdr  = new_pointer_register();
 414 
 415   CodeEmitInfo* info_for_exception = NULL;
 416   if (x->needs_null_check()) {
 417     info_for_exception = state_for(x);
 418   }
 419 
 420   CodeEmitInfo* info = state_for(x, x->state(), true);
 421   monitor_enter(obj.result(), lock, hdr, LIR_OprFact::illegalOpr,
 422                 x->monitor_no(), info_for_exception, info);
 423 }
 424 
 425 
 426 void LIRGenerator::do_MonitorExit(MonitorExit* x) {
 427   assert(x->is_pinned(),"");
 428   LIRItem obj(x->obj(), this);
 429   obj.dont_load_item();
 430   set_no_result(x);
 431 
 432   LIR_Opr obj_temp = new_pointer_register();
 433   LIR_Opr lock     = new_pointer_register();
 434   LIR_Opr hdr      = new_pointer_register();
 435 
 436   monitor_exit(obj_temp, lock, hdr, atomicLockOpr(), x->monitor_no());
 437 }
 438 
 439 
 440 // _ineg, _lneg, _fneg, _dneg
 441 void LIRGenerator::do_NegateOp(NegateOp* x) {

 393 }
 394 
 395 void LIRGenerator::array_store_check(LIR_Opr value, LIR_Opr array, CodeEmitInfo* store_check_info, ciMethod* profiled_method, int profiled_bci) {
 396   LIR_Opr tmp1 = FrameMap::R0_oop_opr;
 397   LIR_Opr tmp2 = FrameMap::R1_oop_opr;
 398   LIR_Opr tmp3 = LIR_OprFact::illegalOpr;
 399   __ store_check(value, array, tmp1, tmp2, tmp3, store_check_info, profiled_method, profiled_bci);
 400 }
 401 
 402 //----------------------------------------------------------------------
 403 //             visitor functions
 404 //----------------------------------------------------------------------
 405 
 406 void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
 407   assert(x->is_pinned(),"");
 408   LIRItem obj(x->obj(), this);
 409   obj.load_item();
 410   set_no_result(x);
 411 
 412   LIR_Opr lock = new_pointer_register();

 413 
 414   CodeEmitInfo* info_for_exception = NULL;
 415   if (x->needs_null_check()) {
 416     info_for_exception = state_for(x);
 417   }
 418 
 419   CodeEmitInfo* info = state_for(x, x->state(), true);
 420   monitor_enter(obj.result(), lock, syncTempOpr(), new_register(T_INT), new_register(T_INT),
 421                 x->monitor_no(), info_for_exception, info);
 422 }
 423 
 424 
 425 void LIRGenerator::do_MonitorExit(MonitorExit* x) {
 426   assert(x->is_pinned(),"");
 427   LIRItem obj(x->obj(), this);
 428   obj.dont_load_item();
 429   set_no_result(x);
 430 
 431   LIR_Opr obj_temp = new_pointer_register();
 432   LIR_Opr lock     = new_pointer_register();
 433   LIR_Opr hdr      = new_pointer_register();
 434 
 435   monitor_exit(obj_temp, lock, hdr, atomicLockOpr(), x->monitor_no());
 436 }
 437 
 438 
 439 // _ineg, _lneg, _fneg, _dneg
 440 void LIRGenerator::do_NegateOp(NegateOp* x) {
< prev index next >