changeset 21612:f2a6088ddebc

Reduce the number of foreign calls in monitorenter snippets.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sat, 30 May 2015 14:31:16 +0200
parents d246f7b59166
children 60154926b513 316f85995e6b
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java
diffstat 1 files changed, 2 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java	Fri May 29 22:49:07 2015 -0700
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java	Sat May 30 14:31:16 2015 +0200
@@ -190,8 +190,6 @@
                         // owns the bias and we need to revoke that bias. The revocation will occur
                         // in the interpreter runtime.
                         traceObject(trace, "+lock{stub:revoke}", object, true);
-                        monitorenterStubC(MONITORENTER, object, lock);
-                        return;
                     } else {
                         // At this point we know the epoch has expired, meaning that the
                         // current bias owner, if any, is actually invalid. Under these
@@ -210,9 +208,9 @@
                         // succeeded in biasing it toward itself and we need to revoke that
                         // bias. The revocation will occur in the runtime in the slow case.
                         traceObject(trace, "+lock{stub:epoch-expired}", object, true);
-                        monitorenterStubC(MONITORENTER, object, lock);
-                        return;
                     }
+                    monitorenterStubC(MONITORENTER, object, lock);
+                    return;
                 } else {
                     // The prototype mark word doesn't have the bias bit set any
                     // more, indicating that objects of this data type are not supposed