comparison test/compiler/7184394/TestAESMain.java @ 17670:04d32e7fad07

8002074: Support for AES on SPARC Summary: Add intrinsics/stub routines support for single-block and multi-block (as used by Cipher Block Chaining mode) AES encryption and decryption operations on the SPARC platform. Reviewed-by: kvn, roland Contributed-by: shrinivas.joshi@oracle.com
author kvn
date Tue, 14 Jan 2014 17:46:48 -0800
parents 2c7f594145dc
children 4ca6dc0799b6 03214612e77e
comparison
equal deleted inserted replaced
17669:2996010c4820 17670:04d32e7fad07
1 /* 1 /*
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2012, 2014 Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
37 public static void main(String[] args) { 37 public static void main(String[] args) {
38 int iters = (args.length > 0 ? Integer.valueOf(args[0]) : 1000000); 38 int iters = (args.length > 0 ? Integer.valueOf(args[0]) : 1000000);
39 System.out.println(iters + " iterations"); 39 System.out.println(iters + " iterations");
40 TestAESEncode etest = new TestAESEncode(); 40 TestAESEncode etest = new TestAESEncode();
41 etest.prepare(); 41 etest.prepare();
42 // warm-up for 20K iterations
43 System.out.println("Starting encryption warm-up");
44 for (int i=0; i<20000; i++) {
45 etest.run();
46 }
47 System.out.println("Finished encryption warm-up");
42 long start = System.nanoTime(); 48 long start = System.nanoTime();
43 for (int i=0; i<iters; i++) { 49 for (int i=0; i<iters; i++) {
44 etest.run(); 50 etest.run();
45 } 51 }
46 long end = System.nanoTime(); 52 long end = System.nanoTime();
47 System.out.println("TestAESEncode runtime was " + (double)((end - start)/1000000000.0) + " ms"); 53 System.out.println("TestAESEncode runtime was " + (double)((end - start)/1000000.0) + " ms");
48 54
49 TestAESDecode dtest = new TestAESDecode(); 55 TestAESDecode dtest = new TestAESDecode();
50 dtest.prepare(); 56 dtest.prepare();
57 // warm-up for 20K iterations
58 System.out.println("Starting decryption warm-up");
59 for (int i=0; i<20000; i++) {
60 dtest.run();
61 }
62 System.out.println("Finished decryption warm-up");
51 start = System.nanoTime(); 63 start = System.nanoTime();
52 for (int i=0; i<iters; i++) { 64 for (int i=0; i<iters; i++) {
53 dtest.run(); 65 dtest.run();
54 } 66 }
55 end = System.nanoTime(); 67 end = System.nanoTime();
56 System.out.println("TestAESDecode runtime was " + (double)((end - start)/1000000000.0) + " ms"); 68 System.out.println("TestAESDecode runtime was " + (double)((end - start)/1000000.0) + " ms");
57 } 69 }
58 } 70 }