8153655: Make intrinsics flags diagnostic and update intrinsics tests to enable diagnostic options

Converted all intrinsics flags to diagnostic and updated related intrinsics tests to enable diagnostic options

Reviewed-by: kvn
This commit is contained in:
Rahul Raghavan 2016-05-09 01:21:55 -07:00
parent 4e7451cd5b
commit 7adc4034cd
15 changed files with 89 additions and 44 deletions

View file

@ -176,7 +176,7 @@
product(bool, InlineSynchronizedMethods, true, \ product(bool, InlineSynchronizedMethods, true, \
"Inline synchronized methods") \ "Inline synchronized methods") \
\ \
develop(bool, InlineNIOCheckIndex, true, \ diagnostic(bool, InlineNIOCheckIndex, true, \
"Intrinsify java.nio.Buffer.checkIndex") \ "Intrinsify java.nio.Buffer.checkIndex") \
\ \
develop(bool, CanonicalizeNodes, true, \ develop(bool, CanonicalizeNodes, true, \

View file

@ -589,26 +589,26 @@
product(bool, BlockLayoutRotateLoops, true, \ product(bool, BlockLayoutRotateLoops, true, \
"Allow back branches to be fall throughs in the block layout") \ "Allow back branches to be fall throughs in the block layout") \
\ \
develop(bool, InlineReflectionGetCallerClass, true, \ diagnostic(bool, InlineReflectionGetCallerClass, true, \
"inline sun.reflect.Reflection.getCallerClass(), known to be " \ "inline sun.reflect.Reflection.getCallerClass(), known to be " \
"part of base library DLL") \ "part of base library DLL") \
\ \
develop(bool, InlineObjectCopy, true, \ diagnostic(bool, InlineObjectCopy, true, \
"inline Object.clone and Arrays.copyOf[Range] intrinsics") \ "inline Object.clone and Arrays.copyOf[Range] intrinsics") \
\ \
develop(bool, SpecialStringCompareTo, true, \ diagnostic(bool, SpecialStringCompareTo, true, \
"special version of string compareTo") \ "special version of string compareTo") \
\ \
develop(bool, SpecialStringIndexOf, true, \ diagnostic(bool, SpecialStringIndexOf, true, \
"special version of string indexOf") \ "special version of string indexOf") \
\ \
develop(bool, SpecialStringEquals, true, \ diagnostic(bool, SpecialStringEquals, true, \
"special version of string equals") \ "special version of string equals") \
\ \
develop(bool, SpecialArraysEquals, true, \ diagnostic(bool, SpecialArraysEquals, true, \
"special version of Arrays.equals(char[],char[])") \ "special version of Arrays.equals(char[],char[])") \
\ \
product(bool, SpecialEncodeISOArray, true, \ diagnostic(bool, SpecialEncodeISOArray, true, \
"special version of ISO_8859_1$Encoder.encodeISOArray") \ "special version of ISO_8859_1$Encoder.encodeISOArray") \
\ \
develop(bool, BailoutToInterpreterForThrows, false, \ develop(bool, BailoutToInterpreterForThrows, false, \
@ -710,22 +710,22 @@
diagnostic(bool, OptimizeExpensiveOps, true, \ diagnostic(bool, OptimizeExpensiveOps, true, \
"Find best control for expensive operations") \ "Find best control for expensive operations") \
\ \
product(bool, UseMathExactIntrinsics, true, \ diagnostic(bool, UseMathExactIntrinsics, true, \
"Enables intrinsification of various java.lang.Math functions") \ "Enables intrinsification of various java.lang.Math functions") \
\ \
product(bool, UseMultiplyToLenIntrinsic, false, \ diagnostic(bool, UseMultiplyToLenIntrinsic, false, \
"Enables intrinsification of BigInteger.multiplyToLen()") \ "Enables intrinsification of BigInteger.multiplyToLen()") \
\ \
product(bool, UseSquareToLenIntrinsic, false, \ diagnostic(bool, UseSquareToLenIntrinsic, false, \
"Enables intrinsification of BigInteger.squareToLen()") \ "Enables intrinsification of BigInteger.squareToLen()") \
\ \
product(bool, UseMulAddIntrinsic, false, \ diagnostic(bool, UseMulAddIntrinsic, false, \
"Enables intrinsification of BigInteger.mulAdd()") \ "Enables intrinsification of BigInteger.mulAdd()") \
\ \
product(bool, UseMontgomeryMultiplyIntrinsic, false, \ diagnostic(bool, UseMontgomeryMultiplyIntrinsic, false, \
"Enables intrinsification of BigInteger.montgomeryMultiply()") \ "Enables intrinsification of BigInteger.montgomeryMultiply()") \
\ \
product(bool, UseMontgomerySquareIntrinsic, false, \ diagnostic(bool, UseMontgomerySquareIntrinsic, false, \
"Enables intrinsification of BigInteger.montgomerySquare()") \ "Enables intrinsification of BigInteger.montgomerySquare()") \
\ \
product(bool, UseTypeSpeculation, true, \ product(bool, UseTypeSpeculation, true, \

View file

@ -732,7 +732,7 @@ public:
"Control whether SHA instructions can be used " \ "Control whether SHA instructions can be used " \
"on SPARC, on ARM and on x86") \ "on SPARC, on ARM and on x86") \
\ \
product(bool, UseGHASHIntrinsics, false, \ diagnostic(bool, UseGHASHIntrinsics, false, \
"Use intrinsics for GHASH versions of crypto") \ "Use intrinsics for GHASH versions of crypto") \
\ \
product(size_t, LargePageSizeInBytes, 0, \ product(size_t, LargePageSizeInBytes, 0, \
@ -802,27 +802,27 @@ public:
product(bool, UseInlineCaches, true, \ product(bool, UseInlineCaches, true, \
"Use Inline Caches for virtual calls ") \ "Use Inline Caches for virtual calls ") \
\ \
develop(bool, InlineArrayCopy, true, \ diagnostic(bool, InlineArrayCopy, true, \
"Inline arraycopy native that is known to be part of " \ "Inline arraycopy native that is known to be part of " \
"base library DLL") \ "base library DLL") \
\ \
develop(bool, InlineObjectHash, true, \ diagnostic(bool, InlineObjectHash, true, \
"Inline Object::hashCode() native that is known to be part " \ "Inline Object::hashCode() native that is known to be part " \
"of base library DLL") \ "of base library DLL") \
\ \
develop(bool, InlineNatives, true, \ diagnostic(bool, InlineNatives, true, \
"Inline natives that are known to be part of base library DLL") \ "Inline natives that are known to be part of base library DLL") \
\ \
develop(bool, InlineMathNatives, true, \ diagnostic(bool, InlineMathNatives, true, \
"Inline SinD, CosD, etc.") \ "Inline SinD, CosD, etc.") \
\ \
develop(bool, InlineClassNatives, true, \ diagnostic(bool, InlineClassNatives, true, \
"Inline Class.isInstance, etc") \ "Inline Class.isInstance, etc") \
\ \
develop(bool, InlineThreadNatives, true, \ diagnostic(bool, InlineThreadNatives, true, \
"Inline Thread.currentThread, etc") \ "Inline Thread.currentThread, etc") \
\ \
develop(bool, InlineUnsafeOps, true, \ diagnostic(bool, InlineUnsafeOps, true, \
"Inline memory ops (native methods) from Unsafe") \ "Inline memory ops (native methods) from Unsafe") \
\ \
product(bool, CriticalJNINatives, true, \ product(bool, CriticalJNINatives, true, \
@ -831,34 +831,34 @@ public:
notproduct(bool, StressCriticalJNINatives, false, \ notproduct(bool, StressCriticalJNINatives, false, \
"Exercise register saving code in critical natives") \ "Exercise register saving code in critical natives") \
\ \
product(bool, UseAESIntrinsics, false, \ diagnostic(bool, UseAESIntrinsics, false, \
"Use intrinsics for AES versions of crypto") \ "Use intrinsics for AES versions of crypto") \
\ \
product(bool, UseAESCTRIntrinsics, false, \ diagnostic(bool, UseAESCTRIntrinsics, false, \
"Use intrinsics for the paralleled version of AES/CTR crypto") \ "Use intrinsics for the paralleled version of AES/CTR crypto") \
\ \
product(bool, UseSHA1Intrinsics, false, \ diagnostic(bool, UseSHA1Intrinsics, false, \
"Use intrinsics for SHA-1 crypto hash function. " \ "Use intrinsics for SHA-1 crypto hash function. " \
"Requires that UseSHA is enabled.") \ "Requires that UseSHA is enabled.") \
\ \
product(bool, UseSHA256Intrinsics, false, \ diagnostic(bool, UseSHA256Intrinsics, false, \
"Use intrinsics for SHA-224 and SHA-256 crypto hash functions. " \ "Use intrinsics for SHA-224 and SHA-256 crypto hash functions. " \
"Requires that UseSHA is enabled.") \ "Requires that UseSHA is enabled.") \
\ \
product(bool, UseSHA512Intrinsics, false, \ diagnostic(bool, UseSHA512Intrinsics, false, \
"Use intrinsics for SHA-384 and SHA-512 crypto hash functions. " \ "Use intrinsics for SHA-384 and SHA-512 crypto hash functions. " \
"Requires that UseSHA is enabled.") \ "Requires that UseSHA is enabled.") \
\ \
product(bool, UseCRC32Intrinsics, false, \ diagnostic(bool, UseCRC32Intrinsics, false, \
"use intrinsics for java.util.zip.CRC32") \ "use intrinsics for java.util.zip.CRC32") \
\ \
product(bool, UseCRC32CIntrinsics, false, \ diagnostic(bool, UseCRC32CIntrinsics, false, \
"use intrinsics for java.util.zip.CRC32C") \ "use intrinsics for java.util.zip.CRC32C") \
\ \
product(bool, UseAdler32Intrinsics, false, \ diagnostic(bool, UseAdler32Intrinsics, false, \
"use intrinsics for java.util.zip.Adler32") \ "use intrinsics for java.util.zip.Adler32") \
\ \
product(bool, UseVectorizedMismatchIntrinsic, false, \ diagnostic(bool, UseVectorizedMismatchIntrinsic, false, \
"Enables intrinsification of ArraysSupport.vectorizedMismatch()") \ "Enables intrinsification of ArraysSupport.vectorizedMismatch()") \
\ \
diagnostic(ccstrlist, DisableIntrinsic, "", \ diagnostic(ccstrlist, DisableIntrinsic, "", \

View file

@ -40,10 +40,11 @@ public abstract class AESIntrinsicsBase extends CommandLineOptionTest {
public static final String USE_AES_INTRINSICS = "UseAESIntrinsics"; public static final String USE_AES_INTRINSICS = "UseAESIntrinsics";
public static final String USE_SSE = "UseSSE"; public static final String USE_SSE = "UseSSE";
public static final String USE_VIS = "UseVIS"; public static final String USE_VIS = "UseVIS";
public static final String[] USE_DIAGNOSTIC_CMD
= {"-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintIntrinsics"};
public static final String[] TEST_AES_CMD public static final String[] TEST_AES_CMD
= {"-XX:+IgnoreUnrecognizedVMOptions", "-XX:+PrintFlagsFinal", = {"-XX:+IgnoreUnrecognizedVMOptions", "-XX:+PrintFlagsFinal",
"-Xbatch","-XX:+UnlockDiagnosticVMOptions", "-Xbatch", "-DcheckOutput=true", "-Dmode=CBC",
"-XX:+PrintIntrinsics", "-DcheckOutput=true", "-Dmode=CBC",
"TestAESMain"}; "TestAESMain"};
protected AESIntrinsicsBase(BooleanSupplier predicate) { protected AESIntrinsicsBase(BooleanSupplier predicate) {
@ -52,14 +53,18 @@ public abstract class AESIntrinsicsBase extends CommandLineOptionTest {
/** /**
* Prepares command for TestAESMain execution. * Prepares command for TestAESMain execution.
* Intrinsics flags are of diagnostic type
* and must be preceded by UnlockDiagnosticVMOptions.
* @param args flags that must be added to command * @param args flags that must be added to command
* @return command for TestAESMain execution * @return command for TestAESMain execution
*/ */
public static String[] prepareArguments(String... args) { public static String[] prepareArguments(String... args) {
String[] command = Arrays.copyOf(args, TEST_AES_CMD.length String[] command = Arrays.copyOf(USE_DIAGNOSTIC_CMD, args.length
+ args.length); + USE_DIAGNOSTIC_CMD.length + TEST_AES_CMD.length);
System.arraycopy(TEST_AES_CMD, 0, command, args.length, System.arraycopy(args, 0, command, USE_DIAGNOSTIC_CMD.length,
TEST_AES_CMD.length); args.length);
System.arraycopy(TEST_AES_CMD, 0, command, args.length
+ USE_DIAGNOSTIC_CMD.length, TEST_AES_CMD.length);
return command; return command;
} }
} }

View file

@ -28,7 +28,7 @@
* @summary Add C2 x86 intrinsic for BigInteger::mulAdd() method * @summary Add C2 x86 intrinsic for BigInteger::mulAdd() method
* *
* @run main/othervm/timeout=600 -XX:-TieredCompilation -Xbatch * @run main/othervm/timeout=600 -XX:-TieredCompilation -Xbatch
* -XX:+IgnoreUnrecognizedVMOptions -XX:-UseSquareToLenIntrinsic -XX:-UseMultiplyToLenIntrinsic * -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-UseSquareToLenIntrinsic -XX:-UseMultiplyToLenIntrinsic
* -XX:CompileCommand=dontinline,TestMulAdd::main * -XX:CompileCommand=dontinline,TestMulAdd::main
* -XX:CompileCommand=option,TestMulAdd::base_multiply,ccstr,DisableIntrinsic,_mulAdd * -XX:CompileCommand=option,TestMulAdd::base_multiply,ccstr,DisableIntrinsic,_mulAdd
* -XX:CompileCommand=option,java.math.BigInteger::multiply,ccstr,DisableIntrinsic,_mulAdd * -XX:CompileCommand=option,java.math.BigInteger::multiply,ccstr,DisableIntrinsic,_mulAdd

View file

@ -42,6 +42,11 @@ public class SHAOptionsBase extends CommandLineOptionTest {
protected static final String USE_SHA512_INTRINSICS_OPTION protected static final String USE_SHA512_INTRINSICS_OPTION
= "UseSHA512Intrinsics"; = "UseSHA512Intrinsics";
// Intrinsics flags are of diagnostic type
// and must be preceded by UnlockDiagnosticVMOptions.
protected static final String UNLOCK_DIAGNOSTIC_VM_OPTIONS
= "-XX:+UnlockDiagnosticVMOptions";
// Note that strings below will be passed to // Note that strings below will be passed to
// CommandLineOptionTest.verifySameJVMStartup and thus are regular // CommandLineOptionTest.verifySameJVMStartup and thus are regular
// expressions, not just a plain strings. // expressions, not just a plain strings.

View file

@ -50,11 +50,13 @@ public class GenericTestCaseForOtherCPU extends
CommandLineOptionTest.verifySameJVMStartup(null, CommandLineOptionTest.verifySameJVMStartup(null,
new String[] { ".*" + optionName + ".*" }, shouldPassMessage, new String[] { ".*" + optionName + ".*" }, shouldPassMessage,
shouldPassMessage, ExitCode.OK, shouldPassMessage, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
CommandLineOptionTest.verifySameJVMStartup(null, CommandLineOptionTest.verifySameJVMStartup(null,
new String[] { ".*" + optionName + ".*" }, shouldPassMessage, new String[] { ".*" + optionName + ".*" }, shouldPassMessage,
shouldPassMessage, ExitCode.OK, shouldPassMessage, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, false)); CommandLineOptionTest.prepareBooleanFlag(optionName, false));
} }
@ -63,13 +65,15 @@ public class GenericTestCaseForOtherCPU extends
// Verify that option is disabled by default. // Verify that option is disabled by default.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' should be disabled by default", String.format("Option '%s' should be disabled by default",
optionName)); optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS);
// Verify that option is disabled even if it was explicitly enabled // Verify that option is disabled even if it was explicitly enabled
// using CLI options. // using CLI options.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' should be off on unsupported " String.format("Option '%s' should be off on unsupported "
+ "CPU even if set to true directly", optionName), + "CPU even if set to true directly", optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
// Verify that option is disabled when it explicitly disabled // Verify that option is disabled when it explicitly disabled
@ -79,6 +83,7 @@ public class GenericTestCaseForOtherCPU extends
+ " even if '%s' flag set to JVM", optionName, + " even if '%s' flag set to JVM", optionName,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)), SHAOptionsBase.USE_SHA_OPTION, true)),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, false)); CommandLineOptionTest.prepareBooleanFlag(optionName, false));
} }
} }

View file

@ -49,6 +49,7 @@ public class GenericTestCaseForSupportedCPU extends
CommandLineOptionTest.verifySameJVMStartup(null, new String[] { CommandLineOptionTest.verifySameJVMStartup(null, new String[] {
SHAOptionsBase.getWarningForUnsupportedCPU(optionName) SHAOptionsBase.getWarningForUnsupportedCPU(optionName)
}, shouldPassMessage, shouldPassMessage, ExitCode.OK, }, shouldPassMessage, shouldPassMessage, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
// Verify that option could be disabled even if +UseSHA was passed to // Verify that option could be disabled even if +UseSHA was passed to
@ -60,6 +61,7 @@ public class GenericTestCaseForSupportedCPU extends
optionName, CommandLineOptionTest.prepareBooleanFlag( optionName, CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)), SHAOptionsBase.USE_SHA_OPTION, true)),
ExitCode.OK, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true), SHAOptionsBase.USE_SHA_OPTION, true),
CommandLineOptionTest.prepareBooleanFlag(optionName, false)); CommandLineOptionTest.prepareBooleanFlag(optionName, false));
@ -75,6 +77,7 @@ public class GenericTestCaseForSupportedCPU extends
optionName, optionName,
CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false)), CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false)),
ExitCode.OK, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false), CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false),
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
} }
@ -86,18 +89,21 @@ public class GenericTestCaseForSupportedCPU extends
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "true", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "true",
String.format("Option '%s' should be enabled by default", String.format("Option '%s' should be enabled by default",
optionName)); optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS);
// Verify that it is possible to explicitly enable the option. // Verify that it is possible to explicitly enable the option.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "true", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "true",
String.format("Option '%s' was set to have value 'true'", String.format("Option '%s' was set to have value 'true'",
optionName), optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
// Verify that it is possible to explicitly disable the option. // Verify that it is possible to explicitly disable the option.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' was set to have value 'false'", String.format("Option '%s' was set to have value 'false'",
optionName), optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, false)); CommandLineOptionTest.prepareBooleanFlag(optionName, false));
// verify that option is disabled when -UseSHA was passed to JVM. // verify that option is disabled when -UseSHA was passed to JVM.
@ -106,6 +112,7 @@ public class GenericTestCaseForSupportedCPU extends
+ " flag set to JVM", optionName, + " flag set to JVM", optionName,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, false)), SHAOptionsBase.USE_SHA_OPTION, false)),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true), CommandLineOptionTest.prepareBooleanFlag(optionName, true),
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, false)); SHAOptionsBase.USE_SHA_OPTION, false));
@ -117,6 +124,7 @@ public class GenericTestCaseForSupportedCPU extends
+ " even if %s flag set to JVM", optionName, + " even if %s flag set to JVM", optionName,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)), SHAOptionsBase.USE_SHA_OPTION, true)),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true), SHAOptionsBase.USE_SHA_OPTION, true),
CommandLineOptionTest.prepareBooleanFlag(optionName, false)); CommandLineOptionTest.prepareBooleanFlag(optionName, false));

View file

@ -47,6 +47,7 @@ public class GenericTestCaseForUnsupportedAArch64CPU extends
CommandLineOptionTest.verifySameJVMStartup(null, new String[] { CommandLineOptionTest.verifySameJVMStartup(null, new String[] {
SHAOptionsBase.getWarningForUnsupportedCPU(optionName) SHAOptionsBase.getWarningForUnsupportedCPU(optionName)
}, shouldPassMessage, shouldPassMessage, ExitCode.OK, }, shouldPassMessage, shouldPassMessage, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, false)); CommandLineOptionTest.prepareBooleanFlag(optionName, false));
shouldPassMessage = String.format("If JVM is started with '-XX:-" shouldPassMessage = String.format("If JVM is started with '-XX:-"
@ -62,6 +63,7 @@ public class GenericTestCaseForUnsupportedAArch64CPU extends
shouldPassMessage, shouldPassMessage,
shouldPassMessage, shouldPassMessage,
ExitCode.OK, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false), CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false),
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
} }
@ -72,13 +74,15 @@ public class GenericTestCaseForUnsupportedAArch64CPU extends
// Verify that option is disabled by default. // Verify that option is disabled by default.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' should be disabled by default", String.format("Option '%s' should be disabled by default",
optionName)); optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS);
// Verify that option is disabled even if it was explicitly enabled // Verify that option is disabled even if it was explicitly enabled
// using CLI options. // using CLI options.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' should be off on unsupported " String.format("Option '%s' should be off on unsupported "
+ "AArch64CPU even if set to true directly", optionName), + "AArch64CPU even if set to true directly", optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
// Verify that option is disabled when +UseSHA was passed to JVM. // Verify that option is disabled when +UseSHA was passed to JVM.
@ -87,6 +91,7 @@ public class GenericTestCaseForUnsupportedAArch64CPU extends
+ "AArch64CPU even if %s flag set to JVM", + "AArch64CPU even if %s flag set to JVM",
optionName, CommandLineOptionTest.prepareBooleanFlag( optionName, CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)), SHAOptionsBase.USE_SHA_OPTION, true)),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)); SHAOptionsBase.USE_SHA_OPTION, true));
} }

View file

@ -47,6 +47,7 @@ public class GenericTestCaseForUnsupportedSparcCPU extends
CommandLineOptionTest.verifySameJVMStartup(null, new String[] { CommandLineOptionTest.verifySameJVMStartup(null, new String[] {
SHAOptionsBase.getWarningForUnsupportedCPU(optionName) SHAOptionsBase.getWarningForUnsupportedCPU(optionName)
}, shouldPassMessage, shouldPassMessage, ExitCode.OK, }, shouldPassMessage, shouldPassMessage, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, false)); CommandLineOptionTest.prepareBooleanFlag(optionName, false));
// Verify that when the tested option is enabled, then // Verify that when the tested option is enabled, then
@ -58,6 +59,7 @@ public class GenericTestCaseForUnsupportedSparcCPU extends
shouldPassMessage, shouldPassMessage,
shouldPassMessage, shouldPassMessage,
ExitCode.OK, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false), CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false),
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
} }
@ -68,13 +70,15 @@ public class GenericTestCaseForUnsupportedSparcCPU extends
// Verify that option is disabled by default. // Verify that option is disabled by default.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' should be disabled by default", String.format("Option '%s' should be disabled by default",
optionName)); optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS);
// Verify that option is disabled even if it was explicitly enabled // Verify that option is disabled even if it was explicitly enabled
// using CLI options. // using CLI options.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' should be off on unsupported " String.format("Option '%s' should be off on unsupported "
+ "SparcCPU even if set to true directly", optionName), + "SparcCPU even if set to true directly", optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
// Verify that option is disabled when +UseSHA was passed to JVM. // Verify that option is disabled when +UseSHA was passed to JVM.
@ -83,6 +87,7 @@ public class GenericTestCaseForUnsupportedSparcCPU extends
+ "SparcCPU even if %s flag set to JVM", + "SparcCPU even if %s flag set to JVM",
optionName, CommandLineOptionTest.prepareBooleanFlag( optionName, CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)), SHAOptionsBase.USE_SHA_OPTION, true)),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)); SHAOptionsBase.USE_SHA_OPTION, true));
} }

View file

@ -49,6 +49,7 @@ public class GenericTestCaseForUnsupportedX86CPU
CommandLineOptionTest.verifySameJVMStartup(null, new String[] { CommandLineOptionTest.verifySameJVMStartup(null, new String[] {
SHAOptionsBase.getWarningForUnsupportedCPU(optionName) SHAOptionsBase.getWarningForUnsupportedCPU(optionName)
}, shouldPassMessage, shouldPassMessage, ExitCode.OK, }, shouldPassMessage, shouldPassMessage, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, false)); CommandLineOptionTest.prepareBooleanFlag(optionName, false));
// Verify that when the tested option is enabled, then // Verify that when the tested option is enabled, then
@ -60,6 +61,7 @@ public class GenericTestCaseForUnsupportedX86CPU
shouldPassMessage, shouldPassMessage,
shouldPassMessage, shouldPassMessage,
ExitCode.OK, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false), CommandLineOptionTest.prepareBooleanFlag(SHAOptionsBase.USE_SHA_OPTION, false),
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
} }
@ -70,12 +72,14 @@ public class GenericTestCaseForUnsupportedX86CPU
// Verify that the tested option is disabled by default. // Verify that the tested option is disabled by default.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' should be disabled by default", String.format("Option '%s' should be disabled by default",
optionName)); optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS);
// Verify that it is not possible to explicitly enable the option. // Verify that it is not possible to explicitly enable the option.
CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
String.format("Option '%s' should be off on unsupported " String.format("Option '%s' should be off on unsupported "
+ "X86CPU even if set to true directly", optionName), + "X86CPU even if set to true directly", optionName),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
// Verify that the tested option is disabled even if +UseSHA was passed // Verify that the tested option is disabled even if +UseSHA was passed
@ -85,6 +89,7 @@ public class GenericTestCaseForUnsupportedX86CPU
+ "X86CPU even if %s flag set to JVM", + "X86CPU even if %s flag set to JVM",
optionName, CommandLineOptionTest.prepareBooleanFlag( optionName, CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)), SHAOptionsBase.USE_SHA_OPTION, true)),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)); SHAOptionsBase.USE_SHA_OPTION, true));
} }

View file

@ -59,6 +59,7 @@ public class UseSHAIntrinsicsSpecificTestCaseForUnsupportedCPU
CommandLineOptionTest.verifySameJVMStartup(new String[] { CommandLineOptionTest.verifySameJVMStartup(new String[] {
SHAOptionsBase.getWarningForUnsupportedCPU(optionName) SHAOptionsBase.getWarningForUnsupportedCPU(optionName)
}, null, shouldPassMessage, shouldPassMessage, ExitCode.OK, }, null, shouldPassMessage, shouldPassMessage, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag(optionName, true)); CommandLineOptionTest.prepareBooleanFlag(optionName, true));
} }
} }

View file

@ -57,6 +57,7 @@ public class UseSHASpecificTestCaseForSupportedCPU
CommandLineOptionTest.verifySameJVMStartup( CommandLineOptionTest.verifySameJVMStartup(
null, new String[] { ".*UseSHA.*" }, shouldPassMessage, null, new String[] { ".*UseSHA.*" }, shouldPassMessage,
shouldPassMessage, ExitCode.OK, shouldPassMessage, ExitCode.OK,
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true), SHAOptionsBase.USE_SHA_OPTION, true),
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
@ -75,6 +76,7 @@ public class UseSHASpecificTestCaseForSupportedCPU
SHAOptionsBase.USE_SHA_OPTION, "false", String.format( SHAOptionsBase.USE_SHA_OPTION, "false", String.format(
"'%s' option should be disabled when all UseSHA*Intrinsics are" "'%s' option should be disabled when all UseSHA*Intrinsics are"
+ " disabled", SHAOptionsBase.USE_SHA_OPTION), + " disabled", SHAOptionsBase.USE_SHA_OPTION),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA1_INTRINSICS_OPTION, false), SHAOptionsBase.USE_SHA1_INTRINSICS_OPTION, false),
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
@ -91,6 +93,7 @@ public class UseSHASpecificTestCaseForSupportedCPU
+ "to JVM", SHAOptionsBase.USE_SHA_OPTION, + "to JVM", SHAOptionsBase.USE_SHA_OPTION,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true)), SHAOptionsBase.USE_SHA_OPTION, true)),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true), SHAOptionsBase.USE_SHA_OPTION, true),
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
@ -109,6 +112,7 @@ public class UseSHASpecificTestCaseForSupportedCPU
SHAOptionsBase.USE_SHA_OPTION, SHAOptionsBase.USE_SHA_OPTION,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, false)), SHAOptionsBase.USE_SHA_OPTION, false)),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, false), SHAOptionsBase.USE_SHA_OPTION, false),
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(

View file

@ -68,6 +68,7 @@ public class UseSHASpecificTestCaseForUnsupportedCPU
"%s option should be disabled on unsupported CPU" "%s option should be disabled on unsupported CPU"
+ " even if all UseSHA*Intrinsics options were enabled.", + " even if all UseSHA*Intrinsics options were enabled.",
SHAOptionsBase.USE_SHA_OPTION), SHAOptionsBase.USE_SHA_OPTION),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA1_INTRINSICS_OPTION, true), SHAOptionsBase.USE_SHA1_INTRINSICS_OPTION, true),
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
@ -84,6 +85,7 @@ public class UseSHASpecificTestCaseForUnsupportedCPU
+ " and %s was enabled as well", + " and %s was enabled as well",
SHAOptionsBase.USE_SHA_OPTION, SHAOptionsBase.USE_SHA_OPTION,
SHAOptionsBase.USE_SHA_OPTION), SHAOptionsBase.USE_SHA_OPTION),
SHAOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(
SHAOptionsBase.USE_SHA_OPTION, true), SHAOptionsBase.USE_SHA_OPTION, true),
CommandLineOptionTest.prepareBooleanFlag( CommandLineOptionTest.prepareBooleanFlag(

View file

@ -27,7 +27,7 @@
* @bug 6859338 * @bug 6859338
* @summary Assertion failure in sharedRuntime.cpp * @summary Assertion failure in sharedRuntime.cpp
* *
* @run main/othervm -Xcomp -XX:+IgnoreUnrecognizedVMOptions -XX:-InlineObjectHash -Xbatch -XX:-ProfileInterpreter Test6859338 * @run main/othervm -Xcomp -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-InlineObjectHash -Xbatch -XX:-ProfileInterpreter Test6859338
*/ */
public class Test6859338 { public class Test6859338 {