< prev index next >

src/hotspot/cpu/ppc/ppc.ad

Print this page

12076   %}
12077   ins_pipe(pipe_class_compare);
12078 %}
12079 
12080 instruct cmpFastUnlock(flagsRegCR0 crx, iRegPdst oop, iRegPdst box, iRegPdst tmp1, iRegPdst tmp2, iRegPdst tmp3) %{
12081   predicate(LockingMode != LM_LIGHTWEIGHT);
12082   match(Set crx (FastUnlock oop box));
12083   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3);
12084 
12085   format %{ "FASTUNLOCK  $oop, $box, $tmp1, $tmp2" %}
12086   ins_encode %{
12087     __ compiler_fast_unlock_object($crx$$CondRegister, $oop$$Register, $box$$Register,
12088                                    $tmp1$$Register, $tmp2$$Register, $tmp3$$Register);
12089     // If unlocking was successful, crx should indicate 'EQ'.
12090     // The compiler generates a branch to the runtime call to
12091     // _complete_monitor_unlocking_Java for the case where crx is 'NE'.
12092   %}
12093   ins_pipe(pipe_class_compare);
12094 %}
12095 
12096 instruct cmpFastLockLightweight(flagsRegCR0 crx, iRegPdst oop, iRegPdst box, iRegPdst tmp1, iRegPdst tmp2, flagsRegCR1 cr1) %{
12097   predicate(LockingMode == LM_LIGHTWEIGHT);
12098   match(Set crx (FastLock oop box));
12099   effect(TEMP tmp1, TEMP tmp2, KILL cr1);
12100 
12101   format %{ "FASTLOCK  $oop, $box, $tmp1, $tmp2" %}
12102   ins_encode %{
12103     __ fast_lock_lightweight($crx$$CondRegister, $oop$$Register, $box$$Register,
12104                              $tmp1$$Register, $tmp2$$Register, /*tmp3*/ R0);
















12105     // If locking was successful, crx should indicate 'EQ'.
12106     // The compiler generates a branch to the runtime call to
12107     // _complete_monitor_locking_Java for the case where crx is 'NE'.
12108   %}
12109   ins_pipe(pipe_class_compare);
12110 %}
12111 
12112 instruct cmpFastUnlockLightweight(flagsRegCR0 crx, iRegPdst oop, iRegPdst box, iRegPdst tmp1, iRegPdst tmp2, iRegPdst tmp3) %{
12113   predicate(LockingMode == LM_LIGHTWEIGHT);
12114   match(Set crx (FastUnlock oop box));
12115   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3);
12116 
12117   format %{ "FASTUNLOCK  $oop, $box, $tmp1, $tmp2" %}
12118   ins_encode %{
12119     __ fast_unlock_lightweight($crx$$CondRegister, $oop$$Register, $box$$Register,
12120                                $tmp1$$Register, $tmp2$$Register, $tmp3$$Register);
12121     // If unlocking was successful, crx should indicate 'EQ'.
12122     // The compiler generates a branch to the runtime call to
12123     // _complete_monitor_unlocking_Java for the case where crx is 'NE'.
12124   %}

12076   %}
12077   ins_pipe(pipe_class_compare);
12078 %}
12079 
12080 instruct cmpFastUnlock(flagsRegCR0 crx, iRegPdst oop, iRegPdst box, iRegPdst tmp1, iRegPdst tmp2, iRegPdst tmp3) %{
12081   predicate(LockingMode != LM_LIGHTWEIGHT);
12082   match(Set crx (FastUnlock oop box));
12083   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3);
12084 
12085   format %{ "FASTUNLOCK  $oop, $box, $tmp1, $tmp2" %}
12086   ins_encode %{
12087     __ compiler_fast_unlock_object($crx$$CondRegister, $oop$$Register, $box$$Register,
12088                                    $tmp1$$Register, $tmp2$$Register, $tmp3$$Register);
12089     // If unlocking was successful, crx should indicate 'EQ'.
12090     // The compiler generates a branch to the runtime call to
12091     // _complete_monitor_unlocking_Java for the case where crx is 'NE'.
12092   %}
12093   ins_pipe(pipe_class_compare);
12094 %}
12095 
12096 instruct cmpFastLockLightweight(flagsRegCR0 crx, iRegPdst oop, iRegPdst box, iRegPdst tmp1, iRegPdst tmp2) %{
12097   predicate(LockingMode == LM_LIGHTWEIGHT && !UseObjectMonitorTable);
12098   match(Set crx (FastLock oop box));
12099   effect(TEMP tmp1, TEMP tmp2);
12100 
12101   format %{ "FASTLOCK  $oop, $box, $tmp1, $tmp2" %}
12102   ins_encode %{
12103     __ fast_lock_lightweight($crx$$CondRegister, $oop$$Register, $box$$Register,
12104                              $tmp1$$Register, $tmp2$$Register, noreg /*tmp3*/);
12105     // If locking was successful, crx should indicate 'EQ'.
12106     // The compiler generates a branch to the runtime call to
12107     // _complete_monitor_locking_Java for the case where crx is 'NE'.
12108   %}
12109   ins_pipe(pipe_class_compare);
12110 %}
12111 
12112 instruct cmpFastLockMonitorTable(flagsRegCR0 crx, iRegPdst oop, iRegPdst box, iRegPdst tmp1, iRegPdst tmp2, iRegPdst tmp3, flagsRegCR1 cr1) %{
12113   predicate(LockingMode == LM_LIGHTWEIGHT && UseObjectMonitorTable);
12114   match(Set crx (FastLock oop box));
12115   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, KILL cr1);
12116 
12117   format %{ "FASTLOCK  $oop, $box, $tmp1, $tmp2, $tmp3" %}
12118   ins_encode %{
12119     __ fast_lock_lightweight($crx$$CondRegister, $oop$$Register, $box$$Register,
12120                              $tmp1$$Register, $tmp2$$Register, $tmp3$$Register);
12121     // If locking was successful, crx should indicate 'EQ'.
12122     // The compiler generates a branch to the runtime call to
12123     // _complete_monitor_locking_Java for the case where crx is 'NE'.
12124   %}
12125   ins_pipe(pipe_class_compare);
12126 %}
12127 
12128 instruct cmpFastUnlockLightweight(flagsRegCR0 crx, iRegPdst oop, iRegPdst box, iRegPdst tmp1, iRegPdst tmp2, iRegPdst tmp3) %{
12129   predicate(LockingMode == LM_LIGHTWEIGHT);
12130   match(Set crx (FastUnlock oop box));
12131   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3);
12132 
12133   format %{ "FASTUNLOCK  $oop, $box, $tmp1, $tmp2" %}
12134   ins_encode %{
12135     __ fast_unlock_lightweight($crx$$CondRegister, $oop$$Register, $box$$Register,
12136                                $tmp1$$Register, $tmp2$$Register, $tmp3$$Register);
12137     // If unlocking was successful, crx should indicate 'EQ'.
12138     // The compiler generates a branch to the runtime call to
12139     // _complete_monitor_unlocking_Java for the case where crx is 'NE'.
12140   %}
< prev index next >