< prev index next >

src/hotspot/cpu/s390/c1_LIRGenerator_s390.cpp

Print this page

 257   __ store_check(value, array, tmp1, tmp2, tmp3, store_check_info, profiled_method, profiled_bci);
 258 }
 259 
 260 void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
 261   assert(x->is_pinned(),"");
 262   LIRItem obj(x->obj(), this);
 263   obj.load_item();
 264 
 265   set_no_result(x);
 266 
 267   // "lock" stores the address of the monitor stack slot, so this is not an oop.
 268   LIR_Opr lock = new_register(T_INT);
 269 
 270   CodeEmitInfo* info_for_exception = NULL;
 271   if (x->needs_null_check()) {
 272     info_for_exception = state_for (x);
 273   }
 274   // This CodeEmitInfo must not have the xhandlers because here the
 275   // object is already locked (xhandlers expect object to be unlocked).
 276   CodeEmitInfo* info = state_for (x, x->state(), true);
 277   monitor_enter(obj.result(), lock, syncTempOpr(), LIR_OprFact::illegalOpr,
 278                 x->monitor_no(), info_for_exception, info);
 279 }
 280 
 281 void LIRGenerator::do_MonitorExit(MonitorExit* x) {
 282   assert(x->is_pinned(),"");
 283 
 284   LIRItem obj(x->obj(), this);
 285   obj.dont_load_item();
 286 
 287   LIR_Opr lock = new_register(T_INT);
 288   LIR_Opr obj_temp = new_register(T_INT);
 289   set_no_result(x);
 290   monitor_exit(obj_temp, lock, syncTempOpr(), LIR_OprFact::illegalOpr, x->monitor_no());
 291 }
 292 
 293 // _ineg, _lneg, _fneg, _dneg
 294 void LIRGenerator::do_NegateOp(NegateOp* x) {
 295   LIRItem value(x->x(), this);
 296   value.load_item();
 297   LIR_Opr reg = rlock_result(x);

 257   __ store_check(value, array, tmp1, tmp2, tmp3, store_check_info, profiled_method, profiled_bci);
 258 }
 259 
 260 void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
 261   assert(x->is_pinned(),"");
 262   LIRItem obj(x->obj(), this);
 263   obj.load_item();
 264 
 265   set_no_result(x);
 266 
 267   // "lock" stores the address of the monitor stack slot, so this is not an oop.
 268   LIR_Opr lock = new_register(T_INT);
 269 
 270   CodeEmitInfo* info_for_exception = NULL;
 271   if (x->needs_null_check()) {
 272     info_for_exception = state_for (x);
 273   }
 274   // This CodeEmitInfo must not have the xhandlers because here the
 275   // object is already locked (xhandlers expect object to be unlocked).
 276   CodeEmitInfo* info = state_for (x, x->state(), true);
 277   monitor_enter(obj.result(), lock, syncTempOpr(), new_register(T_INT), new_register(T_INT),
 278                 x->monitor_no(), info_for_exception, info);
 279 }
 280 
 281 void LIRGenerator::do_MonitorExit(MonitorExit* x) {
 282   assert(x->is_pinned(),"");
 283 
 284   LIRItem obj(x->obj(), this);
 285   obj.dont_load_item();
 286 
 287   LIR_Opr lock = new_register(T_INT);
 288   LIR_Opr obj_temp = new_register(T_INT);
 289   set_no_result(x);
 290   monitor_exit(obj_temp, lock, syncTempOpr(), LIR_OprFact::illegalOpr, x->monitor_no());
 291 }
 292 
 293 // _ineg, _lneg, _fneg, _dneg
 294 void LIRGenerator::do_NegateOp(NegateOp* x) {
 295   LIRItem value(x->x(), this);
 296   value.load_item();
 297   LIR_Opr reg = rlock_result(x);
< prev index next >