< prev index next >

src/hotspot/cpu/x86/x86_32.ad

Print this page
*** 13775,18 ***
                   $scr$$Register, noreg, noreg, $thread$$Register, nullptr, nullptr, nullptr, false, false);
    %}
    ins_pipe(pipe_slow);
  %}
  
! instruct cmpFastUnlock(eFlagsReg cr, eRegP object, eAXRegP box, eRegP tmp ) %{
    predicate(LockingMode != LM_LIGHTWEIGHT);
    match(Set cr (FastUnlock object box));
!   effect(TEMP tmp, USE_KILL box);
    ins_cost(300);
    format %{ "FASTUNLOCK $object,$box\t! kills $box,$tmp" %}
    ins_encode %{
!     __ fast_unlock($object$$Register, $box$$Register, $tmp$$Register, ra_->C->use_rtm());
    %}
    ins_pipe(pipe_slow);
  %}
  
  instruct cmpFastLockLightweight(eFlagsReg cr, eRegP object, eBXRegP box, eAXRegI eax_reg, eRegP tmp, eRegP thread) %{
--- 13775,18 ---
                   $scr$$Register, noreg, noreg, $thread$$Register, nullptr, nullptr, nullptr, false, false);
    %}
    ins_pipe(pipe_slow);
  %}
  
! instruct cmpFastUnlock(eFlagsReg cr, eRegP object, eAXRegP box, eRegP tmp, eRegP scr) %{
    predicate(LockingMode != LM_LIGHTWEIGHT);
    match(Set cr (FastUnlock object box));
!   effect(TEMP tmp, TEMP scr, USE_KILL box);
    ins_cost(300);
    format %{ "FASTUNLOCK $object,$box\t! kills $box,$tmp" %}
    ins_encode %{
!     __ fast_unlock($object$$Register, $box$$Register, $tmp$$Register, $scr$$Register, ra_->C->use_rtm());
    %}
    ins_pipe(pipe_slow);
  %}
  
  instruct cmpFastLockLightweight(eFlagsReg cr, eRegP object, eBXRegP box, eAXRegI eax_reg, eRegP tmp, eRegP thread) %{

*** 13800,19 ***
      __ fast_lock_lightweight($object$$Register, $box$$Register, $eax_reg$$Register, $tmp$$Register, $thread$$Register);
    %}
    ins_pipe(pipe_slow);
  %}
  
! instruct cmpFastUnlockLightweight(eFlagsReg cr, eRegP object, eAXRegP eax_reg, eRegP tmp, eRegP thread) %{
    predicate(LockingMode == LM_LIGHTWEIGHT);
    match(Set cr (FastUnlock object eax_reg));
!   effect(TEMP tmp, USE_KILL eax_reg, TEMP thread);
    ins_cost(300);
    format %{ "FASTUNLOCK $object,$eax_reg\t! kills $eax_reg,$tmp" %}
    ins_encode %{
      __ get_thread($thread$$Register);
!     __ fast_unlock_lightweight($object$$Register, $eax_reg$$Register, $tmp$$Register, $thread$$Register);
    %}
    ins_pipe(pipe_slow);
  %}
  
  instruct mask_all_evexL_LT32(kReg dst, eRegL src) %{
--- 13800,19 ---
      __ fast_lock_lightweight($object$$Register, $box$$Register, $eax_reg$$Register, $tmp$$Register, $thread$$Register);
    %}
    ins_pipe(pipe_slow);
  %}
  
! instruct cmpFastUnlockLightweight(eFlagsReg cr, eRegP object, eAXRegP eax_reg, eRegP tmp, eRegP scr, eRegP thread) %{
    predicate(LockingMode == LM_LIGHTWEIGHT);
    match(Set cr (FastUnlock object eax_reg));
!   effect(TEMP tmp, TEMP scr, USE_KILL eax_reg, TEMP thread);
    ins_cost(300);
    format %{ "FASTUNLOCK $object,$eax_reg\t! kills $eax_reg,$tmp" %}
    ins_encode %{
      __ get_thread($thread$$Register);
!     __ fast_unlock_lightweight($object$$Register, $eax_reg$$Register, $tmp$$Register, $scr$$Register, $thread$$Register);
    %}
    ins_pipe(pipe_slow);
  %}
  
  instruct mask_all_evexL_LT32(kReg dst, eRegL src) %{
< prev index next >