Thu, 25 Aug 2011 17:17:59 -0700
Added tag jdk8-b02 for changeset 31e253c1da42
never@1831 | 1 | /* |
trims@2384 | 2 | * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. |
never@1831 | 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
never@1831 | 4 | * |
never@1831 | 5 | * This code is free software; you can redistribute it and/or modify it |
never@1831 | 6 | * under the terms of the GNU General Public License version 2 only, as |
never@1831 | 7 | * published by the Free Software Foundation. |
never@1831 | 8 | * |
never@1831 | 9 | * This code is distributed in the hope that it will be useful, but WITHOUT |
never@1831 | 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
never@1831 | 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
never@1831 | 12 | * version 2 for more details (a copy is included in the LICENSE file that |
never@1831 | 13 | * accompanied this code). |
never@1831 | 14 | * |
never@1831 | 15 | * You should have received a copy of the GNU General Public License version |
never@1831 | 16 | * 2 along with this work; if not, write to the Free Software Foundation, |
never@1831 | 17 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
never@1831 | 18 | * |
trims@1907 | 19 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
trims@1907 | 20 | * or visit www.oracle.com if you need additional information or have any |
trims@1907 | 21 | * questions. |
never@1831 | 22 | * |
never@1831 | 23 | */ |
never@1831 | 24 | |
never@1831 | 25 | /* |
never@1831 | 26 | * @test |
never@1831 | 27 | * @bug 6431242 |
never@1831 | 28 | * @run main/othervm -server -XX:+PrintCompilation Test |
never@1831 | 29 | */ |
never@1831 | 30 | |
never@1831 | 31 | public class Test{ |
never@1831 | 32 | |
never@1831 | 33 | int _len = 8; |
never@1831 | 34 | int[] _arr_i = new int[_len]; |
never@1831 | 35 | long[] _arr_l = new long[_len]; |
never@1831 | 36 | |
never@1831 | 37 | int[] _arr_i_cp = new int [_len]; |
never@1831 | 38 | long[] _arr_l_cp = new long [_len]; |
never@1831 | 39 | |
never@1831 | 40 | int _k = 0x12345678; |
never@1831 | 41 | int _j = 0; |
never@1831 | 42 | int _ir = 0x78563412; |
never@1831 | 43 | int _ir1 = 0x78563413; |
never@1831 | 44 | int _ir2 = 0x79563412; |
never@1831 | 45 | |
never@1831 | 46 | long _m = 0x123456789abcdef0L; |
never@1831 | 47 | long _l = 0L; |
never@1831 | 48 | long _lr = 0xf0debc9a78563412L; |
never@1831 | 49 | long _lr1 = 0xf0debc9a78563413L; |
never@1831 | 50 | long _lr2 = 0xf1debc9a78563412L; |
never@1831 | 51 | |
never@1831 | 52 | void init() { |
never@1831 | 53 | for (int i=0; i<_arr_i.length; i++) { |
never@1831 | 54 | _arr_i[i] = _k; |
never@1831 | 55 | _arr_l[i] = _m; |
never@1831 | 56 | } |
never@1831 | 57 | } |
never@1831 | 58 | |
never@1831 | 59 | public int test_int_reversed(int i) { |
never@1831 | 60 | return Integer.reverseBytes(i); |
never@1831 | 61 | } |
never@1831 | 62 | |
never@1831 | 63 | public long test_long_reversed(long i) { |
never@1831 | 64 | return Long.reverseBytes(i); |
never@1831 | 65 | } |
never@1831 | 66 | |
never@1831 | 67 | public void test_copy_ints(int[] dst, int[] src) { |
never@1831 | 68 | for(int i=0; i<src.length; i++) { |
never@1831 | 69 | dst[i] = Integer.reverseBytes(src[i]); |
never@1831 | 70 | } |
never@1831 | 71 | } |
never@1831 | 72 | |
never@1831 | 73 | public void test_copy_ints_reversed(int[] dst, int[] src) { |
never@1831 | 74 | for (int i=0; i<src.length; i++) { |
never@1831 | 75 | dst[i] = 1 + Integer.reverseBytes(src[i]); |
never@1831 | 76 | } |
never@1831 | 77 | } |
never@1831 | 78 | |
never@1831 | 79 | public void test_copy_ints_store_reversed(int[] dst, int[] src) { |
never@1831 | 80 | for(int i=0; i<src.length; i++) { |
never@1831 | 81 | dst[i] = Integer.reverseBytes(1 + src[i]); |
never@1831 | 82 | } |
never@1831 | 83 | } |
never@1831 | 84 | |
never@1831 | 85 | public void test_copy_longs(long[] dst, long[] src) { |
never@1831 | 86 | for(int i=0; i<src.length; i++) { |
never@1831 | 87 | dst[i] = Long.reverseBytes(src[i]); |
never@1831 | 88 | } |
never@1831 | 89 | } |
never@1831 | 90 | |
never@1831 | 91 | public void test_copy_longs_reversed(long[] dst, long[] src) { |
never@1831 | 92 | for (int i=0; i<src.length; i++) { |
never@1831 | 93 | dst[i] = 1 + Long.reverseBytes(src[i]); |
never@1831 | 94 | } |
never@1831 | 95 | } |
never@1831 | 96 | |
never@1831 | 97 | public void test_copy_longs_store_reversed(long[] dst, long[] src) { |
never@1831 | 98 | for(int i=0; i<src.length; i++) { |
never@1831 | 99 | dst[i] = Long.reverseBytes(1 + src[i]); |
never@1831 | 100 | } |
never@1831 | 101 | } |
never@1831 | 102 | |
never@1831 | 103 | public void test() throws Exception { |
never@1831 | 104 | int up_limit=90000; |
never@1831 | 105 | |
never@1831 | 106 | |
never@1831 | 107 | //test single |
never@1831 | 108 | |
never@1831 | 109 | for (int loop=0; loop<up_limit; loop++) { |
never@1831 | 110 | _j = test_int_reversed(_k); |
never@1831 | 111 | if (_j != _ir ) { |
never@1831 | 112 | throw new Exception("Interger.reverseBytes failed " + _j + " iter " + loop); |
never@1831 | 113 | } |
never@1831 | 114 | _l = test_long_reversed(_m); |
never@1831 | 115 | if (_l != _lr ) { |
never@1831 | 116 | throw new Exception("Long.reverseBytes failed " + _l + " iter " + loop); |
never@1831 | 117 | } |
never@1831 | 118 | } |
never@1831 | 119 | |
never@1831 | 120 | // test scalar load/store |
never@1831 | 121 | for (int loop=0; loop<up_limit; loop++) { |
never@1831 | 122 | |
never@1831 | 123 | test_copy_ints(_arr_i_cp, _arr_i); |
never@1831 | 124 | for (int j=0; j< _arr_i.length; j++) { |
never@1831 | 125 | if (_arr_i_cp[j] != _ir) { |
never@1831 | 126 | throw new Exception("Interger.reverseBytes failed test_copy_ints iter " + loop); |
never@1831 | 127 | } |
never@1831 | 128 | } |
never@1831 | 129 | |
never@1831 | 130 | test_copy_ints_reversed(_arr_i_cp, _arr_i); |
never@1831 | 131 | for (int j=0; j< _arr_i.length; j++) { |
never@1831 | 132 | if (_arr_i_cp[j] != _ir1) { |
never@1831 | 133 | throw new Exception("Interger.reverseBytes failed test_copy_ints_reversed iter " + loop); |
never@1831 | 134 | } |
never@1831 | 135 | } |
never@1831 | 136 | test_copy_ints_store_reversed(_arr_i_cp, _arr_i); |
never@1831 | 137 | for (int j=0; j< _arr_i.length; j++) { |
never@1831 | 138 | if (_arr_i_cp[j] != _ir2) { |
never@1831 | 139 | throw new Exception("Interger.reverseBytes failed test_copy_ints_store_reversed iter " + loop); |
never@1831 | 140 | } |
never@1831 | 141 | } |
never@1831 | 142 | |
never@1831 | 143 | test_copy_longs(_arr_l_cp, _arr_l); |
never@1831 | 144 | for (int j=0; j< _arr_i.length; j++) { |
never@1831 | 145 | if (_arr_l_cp[j] != _lr) { |
never@1831 | 146 | throw new Exception("Long.reverseBytes failed test_copy_longs iter " + loop); |
never@1831 | 147 | } |
never@1831 | 148 | } |
never@1831 | 149 | test_copy_longs_reversed(_arr_l_cp, _arr_l); |
never@1831 | 150 | for (int j=0; j< _arr_i.length; j++) { |
never@1831 | 151 | if (_arr_l_cp[j] != _lr1) { |
never@1831 | 152 | throw new Exception("Long.reverseBytes failed test_copy_longs_reversed iter " + loop); |
never@1831 | 153 | } |
never@1831 | 154 | } |
never@1831 | 155 | test_copy_longs_store_reversed(_arr_l_cp, _arr_l); |
never@1831 | 156 | for (int j=0; j< _arr_i.length; j++) { |
never@1831 | 157 | if (_arr_l_cp[j] != _lr2) { |
never@1831 | 158 | throw new Exception("Long.reverseBytes failed test_copy_longs_store_reversed iter " + loop); |
never@1831 | 159 | } |
never@1831 | 160 | } |
never@1831 | 161 | |
never@1831 | 162 | } |
never@1831 | 163 | } |
never@1831 | 164 | |
never@1831 | 165 | public static void main(String args[]) { |
never@1831 | 166 | try { |
never@1831 | 167 | Test t = new Test(); |
never@1831 | 168 | t.init(); |
never@1831 | 169 | t.test(); |
never@1831 | 170 | System.out.println("Passed"); |
never@1831 | 171 | }catch (Exception e) { |
never@1831 | 172 | e.printStackTrace(); |
never@1831 | 173 | System.out.println("Failed"); |
never@1831 | 174 | } |
never@1831 | 175 | } |
never@1831 | 176 | } |