< prev index next >

src/hotspot/cpu/riscv/c1_LIRGenerator_riscv.cpp

Print this page
*** 274,33 ***
    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());
  }
  
  // neg
  void LIRGenerator::do_NegateOp(NegateOp* x) {
    LIRItem from(x->x(), this);
--- 274,33 ---
    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());
  }
  
  // neg
  void LIRGenerator::do_NegateOp(NegateOp* x) {
    LIRItem from(x->x(), this);
< prev index next >