# HG changeset patch # User Thomas Wuerthinger # Date 1288018072 -7200 # Node ID 9e5e83ca225925155b86b1b32d37b63d7b6574ce # Parent 9dae1aae168a225143a141621a6bf1a8e20c8dee Enabled -C1X:OPTIONS when running HotSpot/C1X. Enabled checkstyle for the HotSpotVM Java project. diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/.checkstyle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c1x4hotspotsrc/HotSpotVM/.checkstyle Mon Oct 25 16:47:52 2010 +0200 @@ -0,0 +1,10 @@ + + + + + + + + + + diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/.project --- a/c1x4hotspotsrc/HotSpotVM/.project Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/.project Mon Oct 25 16:47:52 2010 +0200 @@ -15,9 +15,15 @@ + + net.sf.eclipsecs.core.CheckstyleBuilder + + + org.eclipse.jdt.core.javanature net.sourceforge.metrics.nature + net.sf.eclipsecs.core.CheckstyleNature diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -34,7 +37,7 @@ * * @author Thomas Wuerthinger, Lukas Stadler */ -public class Compiler { +public final class Compiler { private static Compiler theInstance; @@ -96,7 +99,7 @@ ReplacingInputStream input = new ReplacingInputStream(socket.getInputStream()); InvocationSocket invocation = new InvocationSocket(output, input); - VMExits exits = (VMExits) Proxy.newProxyInstance(VMExits.class.getClassLoader(), new Class[] { VMExits.class}, invocation); + VMExits exits = (VMExits) Proxy.newProxyInstance(VMExits.class.getClassLoader(), new Class[] {VMExits.class}, invocation); VMEntries entries = Compiler.initializeClient(exits); invocation.setDelegate(entries); } else { @@ -144,11 +147,6 @@ C1XOptions.OptInlineSynchronized = false; C1XOptions.UseDeopt = false; C1XOptions.IRChecking = Logger.ENABLED; - C1XOptions.TraceBytecodeParserLevel = 0; - // C1XOptions.TraceBytecodeParserLevel = Logger.ENABLED ? 4 : 0; - C1XOptions.PrintCFGToFile = false; - C1XOptions.PrintAssembly = false;// true; - C1XOptions.PrintCompilation = Logger.ENABLED; C1XOptions.GenAssertionCode = Logger.ENABLED; C1XOptions.DetailedAsserts = Logger.ENABLED; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/CompilerObject.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/CompilerObject.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/CompilerObject.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotConstantPool.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotConstantPool.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotConstantPool.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotExceptionHandler.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotExceptionHandler.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotExceptionHandler.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,3 +1,23 @@ +/* + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. + * + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. + * + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. + * + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. + */ package com.sun.hotspot.c1x; import com.sun.cri.ri.*; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -85,7 +88,7 @@ @Override public String toString() { - return "HotSpotField<" + ((HotSpotType)holder).simpleName() + "." + name + ">"; + return "HotSpotField<" + ((HotSpotType) holder).simpleName() + "." + name + ">"; } } diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethod.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethod.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethod.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethodResolved.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethodResolved.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethodResolved.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethodUnresolved.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethodUnresolved.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethodUnresolved.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotProxy.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotProxy.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotProxy.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -22,7 +25,7 @@ * * @author Lukas Stadler */ -public class HotSpotProxy { +public final class HotSpotProxy { private HotSpotProxy() { } diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRegisterConfig.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRegisterConfig.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRegisterConfig.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -36,18 +39,18 @@ // be careful - the contents of this array are duplicated in c1x_CodeInstaller.cpp @Override public CiRegister[] getAllocatableRegisters() { - return new CiRegister[] { AMD64.rax, AMD64.rbx, AMD64.rcx, AMD64.rdx, AMD64.rsi, AMD64.rdi, AMD64.r8, AMD64.r9, /* AMD64.r10, */AMD64.r11, AMD64.r12, AMD64.r13, AMD64.r14, AMD64.xmm0, AMD64.xmm1, AMD64.xmm2, + return new CiRegister[] {AMD64.rax, AMD64.rbx, AMD64.rcx, AMD64.rdx, AMD64.rsi, AMD64.rdi, AMD64.r8, AMD64.r9, /* AMD64.r10, */AMD64.r11, AMD64.r12, AMD64.r13, AMD64.r14, AMD64.xmm0, AMD64.xmm1, AMD64.xmm2, AMD64.xmm3, AMD64.xmm4, AMD64.xmm5, AMD64.xmm6, AMD64.xmm7, AMD64.xmm8, AMD64.xmm9, AMD64.xmm10, AMD64.xmm11, AMD64.xmm12, AMD64.xmm13, AMD64.xmm14, AMD64.xmm15}; } private final CiRegister[] generalParameterRegisters; - private final CiRegister[] xmmParameterRegisters = new CiRegister[] { AMD64.xmm0, AMD64.xmm1, AMD64.xmm2, AMD64.xmm3, AMD64.xmm4, AMD64.xmm5, AMD64.xmm6, AMD64.xmm7}; + private final CiRegister[] xmmParameterRegisters = new CiRegister[] {AMD64.xmm0, AMD64.xmm1, AMD64.xmm2, AMD64.xmm3, AMD64.xmm4, AMD64.xmm5, AMD64.xmm6, AMD64.xmm7}; public HotSpotRegisterConfig(HotSpotVMConfig config) { if (config.windowsOs) { - generalParameterRegisters = new CiRegister[] { AMD64.rdx, AMD64.r8, AMD64.r9, AMD64.rdi, AMD64.rsi, AMD64.rcx}; + generalParameterRegisters = new CiRegister[] {AMD64.rdx, AMD64.r8, AMD64.r9, AMD64.rdi, AMD64.rsi, AMD64.rcx}; } else { - generalParameterRegisters = new CiRegister[] { AMD64.rsi, AMD64.rdx, AMD64.rcx, AMD64.r8, AMD64.r9, AMD64.rdi}; + generalParameterRegisters = new CiRegister[] {AMD64.rsi, AMD64.rdx, AMD64.rcx, AMD64.r8, AMD64.r9, AMD64.rdi}; } } diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -154,9 +157,7 @@ @Override public boolean mustNotInline(RiMethod method) { - if (Modifier.isNative(method.accessFlags())) - return true; - return false; + return Modifier.isNative(method.accessFlags()); } @Override diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -64,8 +67,9 @@ switch (first) { case 'L': - while (signature.charAt(cur) != ';') + while (signature.charAt(cur) != ';') { cur++; + } cur++; break; case 'V': diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTarget.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTarget.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTarget.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTargetMethod.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTargetMethod.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTargetMethod.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -28,7 +31,7 @@ * * @author Lukas Stadler */ -public class HotSpotTargetMethod implements CompilerObject { +public final class HotSpotTargetMethod implements CompilerObject { public final CiTargetMethod targetMethod; public final HotSpotMethodResolved method; // used only for methods @@ -61,7 +64,7 @@ } private Site[] getSortedSites(CiTargetMethod target) { - List[] lists = new List[] { target.directCalls, target.indirectCalls, target.safepoints, target.dataReferences, target.marks}; + List[] lists = new List[] {target.directCalls, target.indirectCalls, target.safepoints, target.dataReferences, target.marks}; int count = 0; for (List list : lists) { count += list.size(); @@ -82,9 +85,11 @@ return s1.pcOffset - s2.pcOffset; } }); - if (Logger.ENABLED) - for (Site site : result) + if (Logger.ENABLED) { + for (Site site : result) { Logger.log(site.pcOffset + ": " + site); + } + } return result; } diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,26 +1,29 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; import com.sun.cri.ri.*; /** - * Common interface for all HotSpot RiType-implementations + * Common interface for all HotSpot RiType-implementations. * * @author Lukas Stadler */ diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeResolved.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeResolved.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeResolved.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -156,10 +159,10 @@ @Override public boolean isSubtypeOf(RiType other) { - //assert other instanceof HotSpotType : "unexpected 'other' type: " + other; - if (other instanceof HotSpotTypeResolved) + if (other instanceof HotSpotTypeResolved) { return Compiler.getVMEntries().RiType_isSubtypeOf(vmId, other); - // no resolved type is a subtype of an unresolved type + } + // No resolved type is a subtype of an unresolved type. return false; } diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotVMConfig.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotVMConfig.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotVMConfig.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -80,26 +83,26 @@ } private int getKindNumber(CiKind kind) { - if (kind == CiKind.Boolean) + if (kind == CiKind.Boolean) { return 0; - else if (kind == CiKind.Byte) + } else if (kind == CiKind.Byte) { return 1; - else if (kind == CiKind.Short) + } else if (kind == CiKind.Short) { return 2; - else if (kind == CiKind.Char) + } else if (kind == CiKind.Char) { return 3; - else if (kind == CiKind.Int) + } else if (kind == CiKind.Int) { return 4; - else if (kind == CiKind.Float) + } else if (kind == CiKind.Float) { return 5; - else if (kind == CiKind.Long) + } else if (kind == CiKind.Long) { return 6; - else if (kind == CiKind.Double) + } else if (kind == CiKind.Double) { return 7; - else if (kind == CiKind.Object) + } else if (kind == CiKind.Object) { return 8; - else + } else { throw new RuntimeException(kind + " is not a Java kind"); + } } - } diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -88,7 +91,7 @@ XirOperand temp = asm.createRegister("temp (r10)", CiKind.Word, AMD64.r10); XirOperand cache = asm.createRegister("cache (rax)", CiKind.Word, AMD64.rax); - CiCallingConvention conventions = registerConfig.getJavaCallingConvention(new CiKind[] { CiKind.Object}, false, target); + CiCallingConvention conventions = registerConfig.getJavaCallingConvention(new CiKind[] {CiKind.Object}, false, target); XirOperand receiver = asm.createRegister("cache (rax)", CiKind.Word, conventions.locations[0].asRegister()); asm.pload(CiKind.Word, temp, receiver, asm.i(config.hubOffset), false); @@ -254,7 +257,7 @@ asm.bindOutOfLine(stub); XirOperand method = asm.createRegister("method", CiKind.Word, AMD64.rbx); asm.mark(MARK_STATIC_CALL_STUB, XirMark.CALLSITE); - asm.mov(method, asm.w(0l)); + asm.mov(method, asm.w(0L)); XirLabel dummy = asm.createOutOfLineLabel("dummy"); asm.jmp(dummy); asm.bindOutOfLine(dummy); @@ -277,7 +280,7 @@ asm.bindOutOfLine(stub); XirOperand method = asm.createRegister("method", CiKind.Word, AMD64.rbx); asm.mark(MARK_STATIC_CALL_STUB, XirMark.CALLSITE); - asm.mov(method, asm.w(0l)); + asm.mov(method, asm.w(0L)); XirLabel dummy = asm.createOutOfLineLabel("dummy"); asm.jmp(dummy); asm.bindOutOfLine(dummy); @@ -556,7 +559,7 @@ XirOperand objHub = asm.createTemp("objHub", CiKind.Object); XirLabel end = asm.createInlineLabel("end"); - XirLabel slow_path = asm.createOutOfLineLabel("slow path"); + XirLabel slowPath = asm.createOutOfLineLabel("slow path"); if (is(NULL_CHECK, flags)) { // null can be cast to anything @@ -565,11 +568,11 @@ asm.pload(CiKind.Object, objHub, object, asm.i(config.hubOffset), false); // if we get an exact match: succeed immediately - asm.jneq(slow_path, objHub, hub); + asm.jneq(slowPath, objHub, hub); asm.bindInline(end); // -- out of line ------------------------------------------------------- - asm.bindOutOfLine(slow_path); + asm.bindOutOfLine(slowPath); checkSubtype(asm, objHub, objHub, hub); asm.jneq(end, objHub, asm.o(null)); XirOperand scratch = asm.createRegister("scratch", CiKind.Object, AMD64.r10); @@ -606,7 +609,7 @@ XirOperand objHub = asm.createTemp("objHub", CiKind.Object); XirLabel end = asm.createInlineLabel("end"); - XirLabel slow_path = asm.createOutOfLineLabel("slow path"); + XirLabel slowPath = asm.createOutOfLineLabel("slow path"); if (is(NULL_CHECK, flags)) { // null isn't "instanceof" anything @@ -617,11 +620,11 @@ asm.pload(CiKind.Object, objHub, object, asm.i(config.hubOffset), false); // if we get an exact match: succeed immediately asm.mov(result, asm.b(true)); - asm.jneq(slow_path, objHub, hub); + asm.jneq(slowPath, objHub, hub); asm.bindInline(end); // -- out of line ------------------------------------------------------- - asm.bindOutOfLine(slow_path); + asm.bindOutOfLine(slowPath); checkSubtype(asm, result, objHub, hub); asm.jmp(end); @@ -990,7 +993,7 @@ asm.mov(arg, asm.createConstant(CiConstant.forObject(null))); XirMark end = asm.mark(null); // make this piece of data look like an instruction - asm.rawBytes(new byte[] { (byte) 0xb8, 0, 0, 0x05, 0}); + asm.rawBytes(new byte[] {(byte) 0xb8, 0, 0, 0x05, 0}); asm.mark(MARK_KLASS_PATCHING, begin, end); asm.bindOutOfLine(patchStub); asm.callRuntime(config.loadKlassStub, null); @@ -1062,7 +1065,7 @@ } XirMark end = asm.mark(null); // make this piece of data look like an instruction - asm.rawBytes(new byte[] { (byte) 0xb8, 0, 0, 0x05, 0}); + asm.rawBytes(new byte[] {(byte) 0xb8, 0, 0, 0x05, 0}); asm.mark(MARK_ACCESS_FIELD_PATCHING, begin, end); asm.bindOutOfLine(patchStub); asm.callRuntime(config.accessFieldStub, null); diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/InvocationSocket.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/InvocationSocket.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/InvocationSocket.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -84,12 +87,13 @@ public Object waitForResult() throws IOException, ClassNotFoundException { while (true) { Object in = input.readObject(); - if (in instanceof Result) + if (in instanceof Result) { return ((Result) in).result; - if (in instanceof RuntimeException) + } else if (in instanceof RuntimeException) { throw (RuntimeException) in; - if (in instanceof Throwable) + } else if (in instanceof Throwable) { throw new RuntimeException((Throwable) in); + } Invocation invoke = (Invocation) in; Method method = null; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/TemplateFlag.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/TemplateFlag.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/TemplateFlag.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,14 +1,34 @@ +/* + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. + * + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. + * + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. + * + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. + */ package com.sun.hotspot.c1x; enum TemplateFlag { NULL_CHECK, UNRESOLVED, READ_BARRIER, WRITE_BARRIER, STORE_CHECK, BOUNDS_CHECK, GIVEN_LENGTH, STATIC_METHOD, SYNCHRONIZED; - private static long FIRST_FLAG = 0x0000000100000000L; - public static long FLAGS_MASK = 0x0000FFFF00000000L; - public static long INDEX_MASK = 0x00000000FFFFFFFFL; + private static final long FIRST_FLAG = 0x0000000100000000L; + public static final long FLAGS_MASK = 0x0000FFFF00000000L; + public static final long INDEX_MASK = 0x00000000FFFFFFFFL; public long bits() { assert ((FIRST_FLAG << ordinal()) & FLAGS_MASK) != 0; return FIRST_FLAG << ordinal(); } -} \ No newline at end of file +} diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -28,52 +31,55 @@ */ public interface VMEntries { - public byte[] RiMethod_code(long vmId); + // CHECKSTYLE:OFF - public int RiMethod_maxStackSize(long vmId); + byte[] RiMethod_code(long vmId); - public int RiMethod_maxLocals(long vmId); + int RiMethod_maxStackSize(long vmId); - public RiType RiMethod_holder(long vmId); + int RiMethod_maxLocals(long vmId); - public String RiMethod_signature(long vmId); + RiType RiMethod_holder(long vmId); - public int RiMethod_accessFlags(long vmId); + String RiMethod_signature(long vmId); - public RiType RiSignature_lookupType(String returnType, long accessingClassVmId); + int RiMethod_accessFlags(long vmId); - public Object RiConstantPool_lookupConstant(long vmId, int cpi); + RiType RiSignature_lookupType(String returnType, long accessingClassVmId); - public RiMethod RiConstantPool_lookupMethod(long vmId, int cpi, byte byteCode); + Object RiConstantPool_lookupConstant(long vmId, int cpi); - public RiSignature RiConstantPool_lookupSignature(long vmId, int cpi); + RiMethod RiConstantPool_lookupMethod(long vmId, int cpi, byte byteCode); + + RiSignature RiConstantPool_lookupSignature(long vmId, int cpi); - public RiType RiConstantPool_lookupType(long vmId, int cpi); + RiType RiConstantPool_lookupType(long vmId, int cpi); - public RiField RiConstantPool_lookupField(long vmId, int cpi); + RiField RiConstantPool_lookupField(long vmId, int cpi); - public RiConstantPool RiType_constantPool(long vmId); + RiConstantPool RiType_constantPool(long vmId); - public void installMethod(HotSpotTargetMethod targetMethod); + void installMethod(HotSpotTargetMethod targetMethod); - public long installStub(HotSpotTargetMethod targetMethod); + long installStub(HotSpotTargetMethod targetMethod); - public HotSpotVMConfig getConfiguration(); + HotSpotVMConfig getConfiguration(); - public RiExceptionHandler[] RiMethod_exceptionHandlers(long vmId); + RiExceptionHandler[] RiMethod_exceptionHandlers(long vmId); - public RiMethod RiType_resolveMethodImpl(long vmId, String name, String signature); + RiMethod RiType_resolveMethodImpl(long vmId, String name, String signature); - public boolean RiType_isSubtypeOf(long vmId, RiType other); + boolean RiType_isSubtypeOf(long vmId, RiType other); - public RiType getPrimitiveArrayType(CiKind kind); + RiType getPrimitiveArrayType(CiKind kind); - public RiType RiType_arrayOf(long vmId); + RiType RiType_arrayOf(long vmId); - public RiType RiType_componentType(long vmId); + RiType RiType_componentType(long vmId); - public RiType getType(Class javaClass); + RiType getType(Class javaClass); - public boolean RiMethod_hasBalancedMonitors(long vmId); + boolean RiMethod_hasBalancedMonitors(long vmId); -} \ No newline at end of file + // CHECKSTYLE:ON +} diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntriesNative.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntriesNative.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntriesNative.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExits.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExits.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExits.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; @@ -28,32 +31,34 @@ */ public interface VMExits { - public abstract void compileMethod(long methodVmId, String name, int entry_bci); + boolean setOption(String option); + + void compileMethod(long methodVmId, String name, int entryBCI); - public abstract RiMethod createRiMethodResolved(long vmId, String name); + RiMethod createRiMethodResolved(long vmId, String name); - public abstract RiMethod createRiMethodUnresolved(String name, String signature, RiType holder); + RiMethod createRiMethodUnresolved(String name, String signature, RiType holder); - public abstract RiSignature createRiSignature(String signature); + RiSignature createRiSignature(String signature); - public abstract RiField createRiField(RiType holder, String name, RiType type, int offset); + RiField createRiField(RiType holder, String name, RiType type, int offset); - public abstract RiType createRiType(long vmId, String name); + RiType createRiType(long vmId, String name); - public abstract RiType createRiTypePrimitive(int basicType); + RiType createRiTypePrimitive(int basicType); - public abstract RiType createRiTypeUnresolved(String name, long accessingClassVmId); + RiType createRiTypeUnresolved(String name, long accessingClassVmId); - public abstract RiConstantPool createRiConstantPool(long vmId); + RiConstantPool createRiConstantPool(long vmId); - public abstract CiConstant createCiConstantInt(int value); + CiConstant createCiConstantInt(int value); - public abstract CiConstant createCiConstantLong(long value); + CiConstant createCiConstantLong(long value); - public abstract CiConstant createCiConstantFloat(float value); + CiConstant createCiConstantFloat(float value); - public abstract CiConstant createCiConstantDouble(double value); + CiConstant createCiConstantDouble(double value); - public abstract CiConstant createCiConstantObject(long vmId); + CiConstant createCiConstantObject(long vmId); -} \ No newline at end of file +} diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExitsNative.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExitsNative.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExitsNative.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,25 +1,30 @@ /* - * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x; import java.io.*; +import java.lang.reflect.*; +import com.sun.c1x.*; import com.sun.cri.ci.*; import com.sun.cri.ri.*; import com.sun.hotspot.c1x.logging.*; @@ -32,9 +37,70 @@ public class VMExitsNative implements VMExits { @Override - public void compileMethod(long methodVmId, String name, int entry_bci) { + public boolean setOption(String option) { + if (option.length() == 0) { + return false; + } + + Object value = null; + String fieldName = null; + String valueString = null; + + char first = option.charAt(0); + if (first == '+' || first == '-') { + fieldName = option.substring(1); + value = (first == '+'); + } else { + int index = option.indexOf('='); + if (index == -1) { + return false; + } + fieldName = option.substring(0, index); + valueString = option.substring(index + 1); + } + + Field f; try { - long t1 = System.nanoTime(); + f = C1XOptions.class.getField(fieldName); + + if (value == null) { + if (f.getType() == Float.TYPE) { + value = Float.parseFloat(valueString); + } else if (f.getType() == Double.TYPE) { + value = Double.parseDouble(valueString); + } else if (f.getType() == Integer.TYPE) { + value = Integer.parseInt(valueString); + } else if (f.getType() == Boolean.TYPE) { + value = Boolean.parseBoolean(valueString); + } + } + if (value != null) { + f.set(null, value); + Logger.info("Set option " + fieldName + " to " + value); + } else { + Logger.info("Wrong value \"" + valueString + "\" for option fieldName"); + return false; + } + } catch (SecurityException e) { + Logger.info("Security exception when setting option " + option); + return false; + } catch (NoSuchFieldException e) { + Logger.info("Could not find option " + fieldName); + return false; + } catch (IllegalArgumentException e) { + Logger.info("Illegal value for option " + option); + return false; + } catch (IllegalAccessException e) { + Logger.info("Illegal access exception when setting option " + option); + return false; + } + + return true; + } + + @Override + public void compileMethod(long methodVmId, String name, int entryBCI) { + try { Compiler compiler = Compiler.getInstance(); HotSpotMethodResolved riMethod = new HotSpotMethodResolved(methodVmId, name); CiResult result = compiler.getCompiler().compileMethod(riMethod, null); @@ -47,8 +113,6 @@ Logger.log("Compilation result: " + result.targetMethod()); HotSpotTargetMethod.installMethod(riMethod, result.targetMethod()); } - long time = (System.nanoTime() - t1) / 1000000; - Logger.info("compiling " + name + " (0x" + Long.toHexString(methodVmId) + "): " + (time) + "ms"); } catch (Throwable t) { StringWriter out = new StringWriter(); t.printStackTrace(new PrintWriter(out)); diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/CountingProxy.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/CountingProxy.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/CountingProxy.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x.logging; @@ -44,8 +47,9 @@ @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { int argCount = args == null ? 0 : args.length; - if (method.getParameterTypes().length != argCount) + if (method.getParameterTypes().length != argCount) { throw new RuntimeException("wrong parameter count"); + } final Object result; long count = calls.containsKey(method) ? calls.get(method) : 0; calls.put(method, count + 1); @@ -62,7 +66,7 @@ } public static T getProxy(Class interf, T delegate) { - Object obj = Proxy.newProxyInstance(interf.getClassLoader(), new Class[] { interf}, new CountingProxy(delegate)); + Object obj = Proxy.newProxyInstance(interf.getClassLoader(), new Class[] {interf}, new CountingProxy(delegate)); return interf.cast(obj); } diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/Logger.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/Logger.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/Logger.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x.logging; @@ -22,7 +25,7 @@ import java.util.*; /** - * Scoped logging class used to display the call hierarchy of VMEntries/VMExits calls + * Scoped logging class used to display the call hierarchy of VMEntries/VMExits calls. * * @author Lukas Stadler */ @@ -34,7 +37,7 @@ private static boolean open = false; private static int level = 0; - private final static PrintStream out; + private static final PrintStream out; static { PrintStream ps = null; @@ -48,15 +51,17 @@ } } out = ps; - if (out != null) + if (out != null) { out.println("start: " + new Date()); + } } public static void info(String message) { - if (ENABLED) + if (ENABLED) { log(message); - else + } else { System.out.println(message); + } if (out != null) { out.println(message); out.flush(); @@ -93,10 +98,11 @@ public static void endScope(String message) { if (ENABLED) { level--; - if (open) + if (open) { System.out.println(message); - else + } else { System.out.println(space(level) + "..." + message); + } open = openStack.pop(); } } @@ -108,11 +114,13 @@ String result; if (count >= spaces.length || spaces[count] == null) { StringBuilder str = new StringBuilder(); - for (int i = 0; i < count * SPACING; i++) + for (int i = 0; i < count * SPACING; i++) { str.append(' '); + } result = str.toString(); - if (count < spaces.length) + if (count < spaces.length) { spaces[count] = result; + } } else { result = spaces[count]; } @@ -134,12 +142,14 @@ } else if (value instanceof Class) { return "class \"" + ((Class) value).getSimpleName() + "\""; } else if (value instanceof Integer) { - if ((Integer) value < 10) + if ((Integer) value < 10) { return value.toString(); + } return value + " (0x" + Integer.toHexString((Integer) value) + ")"; } else if (value instanceof Long) { - if ((Long) value < 10) + if ((Long) value < 10) { return value + "l"; + } return value + "l (0x" + Long.toHexString((Long) value) + "l)"; } else if (klass.isArray()) { StringBuilder str = new StringBuilder(); diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/LoggingProxy.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/LoggingProxy.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/LoggingProxy.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x.logging; @@ -35,8 +38,9 @@ @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { int argCount = args == null ? 0 : args.length; - if (method.getParameterTypes().length != argCount) + if (method.getParameterTypes().length != argCount) { throw new RuntimeException("wrong parameter count"); + } StringBuilder str = new StringBuilder(); str.append(method.getReturnType().getSimpleName() + " " + method.getDeclaringClass().getSimpleName() + "." + method.getName() + "("); for (int i = 0; i < argCount; i++) { @@ -61,7 +65,7 @@ } public static T getProxy(Class interf, T delegate) { - Object obj = Proxy.newProxyInstance(interf.getClassLoader(), new Class[] { interf}, new LoggingProxy(delegate)); + Object obj = Proxy.newProxyInstance(interf.getClassLoader(), new Class[] {interf}, new LoggingProxy(delegate)); return interf.cast(obj); } } diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/server/CompilationServer.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/server/CompilationServer.java Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/server/CompilationServer.java Mon Oct 25 16:47:52 2010 +0200 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved. * - * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is - * described in this document. In particular, and without limitation, these intellectual property rights may include one - * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent - * applications in the U.S. and in other countries. + * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product + * that is described in this document. In particular, and without limitation, these intellectual property + * rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or + * more additional patents or pending patent applications in the U.S. and in other countries. * - * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard - * license agreement and applicable provisions of the FAR and its supplements. + * U.S. Government Rights - Commercial software. Government users are subject to the Sun + * Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its + * supplements. * - * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered - * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and - * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. + * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or + * registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks + * are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the + * U.S. and other countries. * - * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. + * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open + * Company, Ltd. */ package com.sun.hotspot.c1x.server; @@ -76,10 +79,10 @@ CiConstant o = (CiConstant) obj; return new Container(clazz, o.kind, o.boxedValue()); } else if (clazz == CiDebugInfo.class) { - CiDebugInfo o = (CiDebugInfo)obj; + CiDebugInfo o = (CiDebugInfo) obj; return new Container(clazz, o.codePos, o.frame, o.registerRefMap, o.frameRefMap); - } else if(clazz == CiCodePos.class) { - CiCodePos o = (CiCodePos)obj; + } else if (clazz == CiCodePos.class) { + CiCodePos o = (CiCodePos) obj; return new Container(clazz, o.caller, o.method, o.bci); } return obj; @@ -99,13 +102,13 @@ @Override protected Object resolveObject(Object obj) throws IOException { if (obj instanceof Container) { - Container c = (Container)obj; - if( c.clazz == CiConstant.class) { + Container c = (Container) obj; + if (c.clazz == CiConstant.class) { return CiConstant.forBoxed((CiKind) c.values[0], c.values[1]); } else if (c.clazz == CiDebugInfo.class) { - return new CiDebugInfo((CiCodePos)c.values[0], (Frame)c.values[1], (byte[])c.values[2], (byte[])c.values[3]); + return new CiDebugInfo((CiCodePos) c.values[0], (Frame) c.values[1], (byte[]) c.values[2], (byte[]) c.values[3]); } else if (c.clazz == CiCodePos.class) { - return new CiCodePos((CiCodePos)c.values[0], (RiMethod)c.values[1], (Integer)c.values[2]); + return new CiCodePos((CiCodePos) c.values[0], (RiMethod) c.values[1], (Integer) c.values[2]); } throw new RuntimeException("unexpected container class"); } @@ -124,7 +127,7 @@ input = new ReplacingInputStream(socket.getInputStream()); InvocationSocket invocation = new InvocationSocket(output, input); - VMEntries entries = (VMEntries) Proxy.newProxyInstance(VMEntries.class.getClassLoader(), new Class[] { VMEntries.class}, invocation); + VMEntries entries = (VMEntries) Proxy.newProxyInstance(VMEntries.class.getClassLoader(), new Class[] {VMEntries.class}, invocation); VMExits exits = Compiler.initializeServer(entries); invocation.setDelegate(exits); @@ -135,4 +138,4 @@ } } } -} \ No newline at end of file +} diff -r 9dae1aae168a -r 9e5e83ca2259 c1x4hotspotsrc/hotspot/hotspot SciMark.launch --- a/c1x4hotspotsrc/hotspot/hotspot SciMark.launch Fri Oct 22 17:33:24 2010 +0200 +++ b/c1x4hotspotsrc/hotspot/hotspot SciMark.launch Mon Oct 25 16:47:52 2010 +0200 @@ -1,8 +1,21 @@ + + + + + + + + + - + + + + + diff -r 9dae1aae168a -r 9e5e83ca2259 src/share/vm/c1x/c1x_Compiler.cpp --- a/src/share/vm/c1x/c1x_Compiler.cpp Fri Oct 22 17:33:24 2010 +0200 +++ b/src/share/vm/c1x/c1x_Compiler.cpp Mon Oct 25 16:47:52 2010 +0200 @@ -36,6 +36,7 @@ // Initialization void C1XCompiler::initialize() { if (_initialized) return; + Thread* THREAD = Thread::current(); _initialized = true; TRACE_C1X_1("C1XCompiler::initialize"); @@ -47,6 +48,16 @@ check_pending_exception("Could not register natives"); c1x_compute_offsets(); + + { + VM_ENTRY_MARK; + HandleMark hm; + for (int i = 0; i < Arguments::num_c1x_args(); ++i) { + const char* arg = Arguments::c1x_args_array()[i]; + Handle option = java_lang_String::create_from_str(arg, THREAD); + VMExits::setOption(option); + } + } } // Compilation entry point for methods diff -r 9dae1aae168a -r 9e5e83ca2259 src/share/vm/c1x/c1x_VMExits.cpp --- a/src/share/vm/c1x/c1x_VMExits.cpp Fri Oct 22 17:33:24 2010 +0200 +++ b/src/share/vm/c1x/c1x_VMExits.cpp Mon Oct 25 16:47:52 2010 +0200 @@ -25,37 +25,44 @@ # include "incls/_precompiled.incl" # include "incls/_c1x_VMExits.cpp.incl" -// these are *local* handles, and they need to be cleared before compileMethod returns -KlassHandle VMExits::_vmExitsKlass; -Handle VMExits::_vmExitsObject; - // this is a *global* handle jobject VMExits::_vmExitsPermObject; +jobject VMExits::_vmExitsPermKlass; -KlassHandle &VMExits::vmExitsKlass() { - if (_vmExitsKlass.is_null()) { - _vmExitsKlass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_VMExits(), SystemDictionary::java_system_loader(), NULL, Thread::current()); - if (_vmExitsKlass.is_null()) { +KlassHandle VMExits::vmExitsKlass() { + if (JNIHandles::resolve(_vmExitsPermKlass) == NULL) { + klassOop result = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_VMExits(), SystemDictionary::java_system_loader(), NULL, Thread::current()); + if (result == NULL) { fatal("Could not find class com.sun.hotspot.c1x.VMExits"); } + _vmExitsPermKlass = JNIHandles::make_global(result); } - return _vmExitsKlass; + return KlassHandle((klassOop)JNIHandles::resolve_non_null(_vmExitsPermKlass)); } -Handle &VMExits::instance() { - if (_vmExitsObject.is_null()) { - if (JNIHandles::resolve(_vmExitsPermObject) == NULL) { - KlassHandle compiler_klass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_Compiler(), SystemDictionary::java_system_loader(), NULL, Thread::current()); - JavaValue result(T_OBJECT); - JavaCallArguments args; - JavaCalls::call_static(&result, compiler_klass(), vmSymbols::getVMExits_name(), vmSymbols::getVMExits_signature(), &args, Thread::current()); - check_pending_exception("Couldn't get VMExits"); - oop res = (oop) result.get_jobject(); - _vmExitsPermObject = JNIHandles::make_global(res); - } - _vmExitsObject = JNIHandles::resolve(_vmExitsPermObject); +Handle VMExits::instance() { + if (JNIHandles::resolve(_vmExitsPermObject) == NULL) { + KlassHandle compiler_klass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_Compiler(), SystemDictionary::java_system_loader(), NULL, Thread::current()); + JavaValue result(T_OBJECT); + JavaCallArguments args; + JavaCalls::call_static(&result, compiler_klass(), vmSymbols::getVMExits_name(), vmSymbols::getVMExits_signature(), &args, Thread::current()); + check_pending_exception("Couldn't get VMExits"); + oop res = (oop) result.get_jobject(); + _vmExitsPermObject = JNIHandles::make_global(res); } - return _vmExitsObject; + return Handle(JNIHandles::resolve_non_null(_vmExitsPermObject)); +} + +jboolean VMExits::setOption(Handle option) { + assert(!option.is_null(), ""); + Thread* THREAD = Thread::current(); + JavaValue result(T_BOOLEAN); + JavaCallArguments args; + args.push_oop(instance()); + args.push_oop(option); + JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::setOption_name(), vmSymbols::setOption_signature(), &args, THREAD); + check_pending_exception("Error while calling setOption"); + return result.get_jboolean(); } void VMExits::compileMethod(jlong methodVmId, Handle name, int entry_bci) { @@ -69,10 +76,6 @@ args.push_int(entry_bci); JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::compileMethod_name(), vmSymbols::compileMethod_signature(), &args, THREAD); check_pending_exception("Error while calling compileMethod"); - - // TODO hack hack - _vmExitsKlass = KlassHandle(); - _vmExitsObject = Handle(); } oop VMExits::createRiMethodResolved(jlong vmId, Handle name, TRAPS) { diff -r 9dae1aae168a -r 9e5e83ca2259 src/share/vm/c1x/c1x_VMExits.hpp --- a/src/share/vm/c1x/c1x_VMExits.hpp Fri Oct 22 17:33:24 2010 +0200 +++ b/src/share/vm/c1x/c1x_VMExits.hpp Mon Oct 25 16:47:52 2010 +0200 @@ -25,15 +25,17 @@ class VMExits : public AllStatic { private: - static KlassHandle _vmExitsKlass; - static Handle _vmExitsObject; static jobject _vmExitsPermObject; + static jobject _vmExitsPermKlass; - static KlassHandle& vmExitsKlass(); - static Handle& instance(); + static KlassHandle vmExitsKlass(); + static Handle instance(); public: + // public abstract boolean setOption(String option); + static jboolean setOption(Handle option); + // public abstract void compileMethod(long vmId, String name, int entry_bci); static void compileMethod(jlong vmId, Handle name, int entry_bci); diff -r 9dae1aae168a -r 9e5e83ca2259 src/share/vm/classfile/vmSymbols.hpp --- a/src/share/vm/classfile/vmSymbols.hpp Fri Oct 22 17:33:24 2010 +0200 +++ b/src/share/vm/classfile/vmSymbols.hpp Mon Oct 25 16:47:52 2010 +0200 @@ -275,6 +275,8 @@ template(com_sun_cri_ci_CiRuntimeCall, "com/sun/cri/ci/CiRuntimeCall") \ template(compileMethod_name, "compileMethod") \ template(compileMethod_signature, "(JLjava/lang/String;I)V") \ + template(setOption_name, "setOption") \ + template(setOption_signature, "(Ljava/lang/String;)Z") \ template(createRiMethodResolved_name, "createRiMethodResolved") \ template(createRiMethodResolved_signature, "(JLjava/lang/String;)Lcom/sun/cri/ri/RiMethod;") \ template(createRiMethodUnresolved_name, "createRiMethodUnresolved") \ diff -r 9dae1aae168a -r 9e5e83ca2259 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Fri Oct 22 17:33:24 2010 +0200 +++ b/src/share/vm/runtime/arguments.cpp Mon Oct 25 16:47:52 2010 +0200 @@ -32,6 +32,8 @@ int Arguments::_num_jvm_flags = 0; char** Arguments::_jvm_args_array = NULL; int Arguments::_num_jvm_args = 0; +char** Arguments::_c1x_args_array = NULL; +int Arguments::_num_c1x_args = 0; char* Arguments::_java_command = NULL; SystemProperty* Arguments::_system_properties = NULL; const char* Arguments::_gc_log_filename = NULL; @@ -686,6 +688,10 @@ add_string(&_jvm_flags_array, &_num_jvm_flags, arg); } +void Arguments::add_c1x_arg(const char* arg) { + add_string(&_c1x_args_array, &_num_c1x_args, arg); +} + // utility function to return a string that concatenates all // strings in a given char** array const char* Arguments::build_resource_string(char** args, int count) { @@ -2543,6 +2549,13 @@ return JNI_EINVAL; } } + } else if (match_option(option, "-C1X:", &tail)) { // -C1X:xxxx + // Option for the C1X compiler. + if (PrintVMOptions) { + tty->print_cr("C1X option %s", tail); + } + Arguments::add_c1x_arg(tail); + // Unknown option } else if (is_bad_option(option, args->ignoreUnrecognized)) { return JNI_ERR; diff -r 9dae1aae168a -r 9e5e83ca2259 src/share/vm/runtime/arguments.hpp --- a/src/share/vm/runtime/arguments.hpp Fri Oct 22 17:33:24 2010 +0200 +++ b/src/share/vm/runtime/arguments.hpp Mon Oct 25 16:47:52 2010 +0200 @@ -221,6 +221,9 @@ // an array containing all jvm arguments specified in the command line static char** _jvm_args_array; static int _num_jvm_args; + // an array containing all c1x arguments specified in the command line + static char** _c1x_args_array; + static int _num_c1x_args; // string containing all java command (class/jarfile name and app args) static char* _java_command; @@ -353,6 +356,7 @@ // methods to build strings from individual args static void build_jvm_args(const char* arg); static void build_jvm_flags(const char* arg); + static void add_c1x_arg(const char* arg); static void add_string(char*** bldarray, int* count, const char* arg); static const char* build_resource_string(char** args, int count); @@ -406,7 +410,9 @@ // return a char* array containing all options static char** jvm_flags_array() { return _jvm_flags_array; } static char** jvm_args_array() { return _jvm_args_array; } + static char** c1x_args_array() { return _c1x_args_array; } static int num_jvm_flags() { return _num_jvm_flags; } + static int num_c1x_args() { return _num_c1x_args; } static int num_jvm_args() { return _num_jvm_args; } // return the arguments passed to the Java application static const char* java_command() { return _java_command; }