< prev index next >

src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp

Print this page
*** 311,34 ***
    obj.load_item();
  
    set_no_result(x);
  
    // "lock" stores the address of the monitor stack slot, so this is not an oop
!   LIR_Opr lock = new_register(T_INT);
  
    CodeEmitInfo* info_for_exception = NULL;
    if (x->needs_null_check()) {
      info_for_exception = state_for(x);
    }
    // this CodeEmitInfo must not have the xhandlers because here the
    // object is already locked (xhandlers expect object to be unlocked)
    CodeEmitInfo* info = state_for(x, x->state(), true);
!   monitor_enter(obj.result(), lock, syncTempOpr(), LIR_OprFact::illegalOpr,
!                         x->monitor_no(), info_for_exception, info);
  }
  
  
  void LIRGenerator::do_MonitorExit(MonitorExit* x) {
    assert(x->is_pinned(),"");
  
    LIRItem obj(x->obj(), this);
    obj.dont_load_item();
  
!   LIR_Opr lock = new_register(T_INT);
    LIR_Opr obj_temp = new_register(T_INT);
    set_no_result(x);
!   monitor_exit(obj_temp, lock, syncTempOpr(), LIR_OprFact::illegalOpr, x->monitor_no());
  }
  
  void LIRGenerator::do_NegateOp(NegateOp* x) {
  
    LIRItem from(x->x(), this);
--- 311,34 ---
    obj.load_item();
  
    set_no_result(x);
  
    // "lock" stores the address of the monitor stack slot, so this is not an oop
!   LIR_Opr lock = new_register(T_ADDRESS);
  
    CodeEmitInfo* info_for_exception = NULL;
    if (x->needs_null_check()) {
      info_for_exception = state_for(x);
    }
    // this CodeEmitInfo must not have the xhandlers because here the
    // object is already locked (xhandlers expect object to be unlocked)
    CodeEmitInfo* info = state_for(x, x->state(), true);
!   monitor_enter(obj.result(), lock, syncTempOpr(), new_register(T_INT), new_register(T_INT),
!                 x->monitor_no(), info_for_exception, info);
  }
  
  
  void LIRGenerator::do_MonitorExit(MonitorExit* x) {
    assert(x->is_pinned(),"");
  
    LIRItem obj(x->obj(), this);
    obj.dont_load_item();
  
!   LIR_Opr lock = new_register(T_ADDRESS);
    LIR_Opr obj_temp = new_register(T_INT);
    set_no_result(x);
!   monitor_exit(obj_temp, lock, syncTempOpr(), new_register(T_INT), x->monitor_no());
  }
  
  void LIRGenerator::do_NegateOp(NegateOp* x) {
  
    LIRItem from(x->x(), this);
< prev index next >