19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 package compiler.cpuflags;
25
26 import compiler.codegen.aes.TestAESMain;
27 import java.util.Arrays;
28
29 public abstract class AESIntrinsicsBase {
30 public static final String CIPHER_INTRINSIC = "com\\.sun\\.crypto\\"
31 + ".provider\\.CipherBlockChaining::"
32 + "(implEncrypt|implDecrypt) \\([0-9]+ bytes\\)\\s+\\(intrinsic[,\\)]";
33 public static final String AES_INTRINSIC = "com\\.sun\\.crypto\\"
34 + ".provider\\.AESCrypt::(implEncryptBlock|implDecryptBlock) \\([0-9]+ "
35 + "bytes\\)\\s+\\(intrinsic[,\\)]";
36 public static final String USE_AES = "UseAES";
37 public static final String USE_AES_INTRINSICS = "UseAESIntrinsics";
38 public static final String USE_SSE = "UseSSE";
39 public static final String USE_VIS = "UseVIS";
40 public static final String[] USE_DIAGNOSTIC_CMD
41 = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintIntrinsics"};
42 public static final String[] TEST_AES_CMD
43 = {"-XX:+IgnoreUnrecognizedVMOptions", "-XX:+PrintFlagsFinal",
44 "-Xbatch", "-XX:CompileThresholdScaling=0.01", "-DcheckOutput=true", "-Dmode=CBC",
45 TestAESMain.class.getName(), "100", "1000"};
46
47 /**
48 * Prepares command for TestAESMain execution.
49 * Intrinsics flags are of diagnostic type
50 * and must be preceded by UnlockDiagnosticVMOptions.
51 * @param args flags that must be added to command
52 * @return command for TestAESMain execution
53 */
54 public static String[] prepareArguments(String... args) {
55 String[] command = Arrays.copyOf(USE_DIAGNOSTIC_CMD, args.length
56 + USE_DIAGNOSTIC_CMD.length + TEST_AES_CMD.length);
57 System.arraycopy(args, 0, command, USE_DIAGNOSTIC_CMD.length,
58 args.length);
59 System.arraycopy(TEST_AES_CMD, 0, command, args.length
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 package compiler.cpuflags;
25
26 import compiler.codegen.aes.TestAESMain;
27 import java.util.Arrays;
28
29 public abstract class AESIntrinsicsBase {
30 public static final String CIPHER_INTRINSIC = "com\\.sun\\.crypto\\"
31 + ".provider\\.CipherBlockChaining::"
32 + "(implEncrypt|implDecrypt) \\([0-9]+ bytes\\)\\s+\\(intrinsic[,\\)]";
33 public static final String AES_INTRINSIC = "com\\.sun\\.crypto\\"
34 + ".provider\\.AESCrypt::(implEncryptBlock|implDecryptBlock) \\([0-9]+ "
35 + "bytes\\)\\s+\\(intrinsic[,\\)]";
36 public static final String USE_AES = "UseAES";
37 public static final String USE_AES_INTRINSICS = "UseAESIntrinsics";
38 public static final String USE_SSE = "UseSSE";
39 public static final String[] USE_DIAGNOSTIC_CMD
40 = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintIntrinsics"};
41 public static final String[] TEST_AES_CMD
42 = {"-XX:+IgnoreUnrecognizedVMOptions", "-XX:+PrintFlagsFinal",
43 "-Xbatch", "-XX:CompileThresholdScaling=0.01", "-DcheckOutput=true", "-Dmode=CBC",
44 TestAESMain.class.getName(), "100", "1000"};
45
46 /**
47 * Prepares command for TestAESMain execution.
48 * Intrinsics flags are of diagnostic type
49 * and must be preceded by UnlockDiagnosticVMOptions.
50 * @param args flags that must be added to command
51 * @return command for TestAESMain execution
52 */
53 public static String[] prepareArguments(String... args) {
54 String[] command = Arrays.copyOf(USE_DIAGNOSTIC_CMD, args.length
55 + USE_DIAGNOSTIC_CMD.length + TEST_AES_CMD.length);
56 System.arraycopy(args, 0, command, USE_DIAGNOSTIC_CMD.length,
57 args.length);
58 System.arraycopy(TEST_AES_CMD, 0, command, args.length
|