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 %}
|