diff c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java @ 1434:72cfb36c6bb2

* enabled all jtt tests * added proxy that counts jni calls * honor hotspot stackshadowpages * constant pool caching * monitor enter/exit * arithmetic stubs (frem, drem, ...) * create stack values for debug info * some doc
author Lukas Stadler <lukas.stadler@oracle.com>
date Thu, 30 Sep 2010 17:19:48 -0700
parents efba53f86c4f
children 9e5e83ca2259
line wrap: on
line diff
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java	Thu Sep 16 19:42:20 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java	Thu Sep 30 17:19:48 2010 -0700
@@ -67,10 +67,12 @@
     public static VMEntries getVMEntries() {
         if (vmEntries == null) {
             try {
+                vmEntries = new VMEntriesNative();
+                if (CountingProxy.ENABLED) {
+                    vmEntries = CountingProxy.getProxy(VMEntries.class, vmEntries);
+                }
                 if (Logger.ENABLED) {
-                    vmEntries = LoggingProxy.getProxy(VMEntries.class, new VMEntriesNative());
-                } else {
-                    vmEntries = new VMEntriesNative();
+                    vmEntries = LoggingProxy.getProxy(VMEntries.class, vmEntries);
                 }
             } catch (Throwable t) {
                 t.printStackTrace();
@@ -98,10 +100,12 @@
                     VMEntries entries = Compiler.initializeClient(exits);
                     invocation.setDelegate(entries);
                 } else {
+                    vmExits = new VMExitsNative();
+                    if (CountingProxy.ENABLED) {
+                        vmExits = CountingProxy.getProxy(VMExits.class, vmExits);
+                    }
                     if (Logger.ENABLED) {
-                        vmExits = LoggingProxy.getProxy(VMExits.class, new VMExitsNative());
-                    } else {
-                        vmExits = new VMExitsNative();
+                        vmExits = LoggingProxy.getProxy(VMExits.class, vmExits);
                     }
                 }
             } catch (Throwable t) {
@@ -136,6 +140,8 @@
         compiler = new C1XCompiler(runtime, target, generator);
 
         C1XOptions.setOptimizationLevel(3);
+        C1XOptions.OptInlineExcept = false;
+        C1XOptions.OptInlineSynchronized = false;
         C1XOptions.UseDeopt = false;
         C1XOptions.IRChecking = Logger.ENABLED;
         C1XOptions.TraceBytecodeParserLevel = 0;
@@ -146,10 +152,13 @@
         C1XOptions.GenAssertionCode = Logger.ENABLED;
         C1XOptions.DetailedAsserts = Logger.ENABLED;
 
+        // these options are important - c1x4hotspot will not generate correct code without them
         C1XOptions.GenSpecialDivChecks = true;
         C1XOptions.AlignCallsForPatching = true;
         C1XOptions.NullCheckUniquePc = true;
         C1XOptions.invokeinterfaceTemplatePos = true;
+        C1XOptions.StackShadowPages = config.stackShadowPages;
+
     }
 
     public CiCompiler getCompiler() {