Mercurial > hg > truffle
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() {