annotate test/compiler/6797305/Test6797305.java @ 3237:399aa66d375e

Fixed a bug in which the valueEquals method was misused. The method does only check the equality of the node data and not full GVN equality by taking inputs and successors into account.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 27 Jul 2011 14:16:38 -0700
parents c18cbe5936b8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
624
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
1 /*
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 624
diff changeset
2 * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
624
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
4 *
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
7 * published by the Free Software Foundation.
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
8 *
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
13 * accompanied this code).
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
14 *
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 624
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 624
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 624
diff changeset
21 * questions.
624
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
22 */
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
23
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
24 /**
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
25 * @test
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
26 * @bug 6797305
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
27 * @summary Add LoadUB and LoadUI opcode class
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
28 *
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
29 * @run main/othervm -Xcomp -XX:CompileOnly=Test6797305.loadB,Test6797305.loadB2L,Test6797305.loadUB,Test6797305.loadUBmask,Test6797305.loadUB2L,Test6797305.loadS,Test6797305.loadS2L,Test6797305.loadUS,Test6797305.loadUSmask,Test6797305.loadUS2L,Test6797305.loadI,Test6797305.loadI2L,Test6797305.loadUI2L,Test6797305.loadL Test6797305
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
30 */
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
31
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
32 public class Test6797305 {
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
33 static final byte[] ba = new byte[] { -1 };
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
34 static final short[] sa = new short[] { -1 };
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
35 static final int[] ia = new int[] { -1 };
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
36 static final long[] la = new long[] { -1 };
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
37
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
38 public static void main(String[] args)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
39 {
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
40 long b = loadB(ba);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
41 if (b != -1)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
42 throw new InternalError("loadB failed: " + b + " != " + -1);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
43
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
44 long b2l = loadB2L(ba);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
45 if (b2l != -1L)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
46 throw new InternalError("loadB2L failed: " + b2l + " != " + -1L);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
47
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
48 int ub = loadUB(ba);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
49 if (ub != 0xFF)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
50 throw new InternalError("loadUB failed: " + ub + " != " + 0xFF);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
51
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
52 int ubmask = loadUBmask(ba);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
53 if (ubmask != 0xFE)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
54 throw new InternalError("loadUBmask failed: " + ubmask + " != " + 0xFE);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
55
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
56 long ub2l = loadUB2L(ba);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
57 if (ub2l != 0xFFL)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
58 throw new InternalError("loadUB2L failed: " + ub2l + " != " + 0xFFL);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
59
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
60 int s = loadS(sa);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
61 if (s != -1)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
62 throw new InternalError("loadS failed: " + s + " != " + -1);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
63
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
64 long s2l = loadS2L(sa);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
65 if (s2l != -1L)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
66 throw new InternalError("loadS2L failed: " + s2l + " != " + -1L);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
67
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
68 int us = loadUS(sa);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
69 if (us != 0xFFFF)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
70 throw new InternalError("loadUS failed: " + us + " != " + 0xFFFF);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
71
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
72 int usmask = loadUSmask(sa);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
73 if (usmask != 0xFFFE)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
74 throw new InternalError("loadUBmask failed: " + ubmask + " != " + 0xFFFE);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
75
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
76 long us2l = loadUS2L(sa);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
77 if (us2l != 0xFFFFL)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
78 throw new InternalError("loadUS2L failed: " + us2l + " != " + 0xFFFFL);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
79
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
80 int i = loadI(ia);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
81 if (i != -1)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
82 throw new InternalError("loadI failed: " + i + " != " + -1);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
83
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
84 long i2l = loadI2L(ia);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
85 if (i2l != -1L)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
86 throw new InternalError("loadI2L failed: " + i2l + " != " + -1L);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
87
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
88 long ui2l = loadUI2L(ia);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
89 if (ui2l != 0xFFFFFFFFL)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
90 throw new InternalError("loadUI2L failed: " + ui2l + " != " + 0xFFFFFFFFL);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
91
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
92 long l = loadL(la);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
93 if (l != -1L)
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
94 throw new InternalError("loadL failed: " + l + " != " + -1L);
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
95 }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
96
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
97 static int loadB (byte[] ba) { return ba[0]; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
98 static long loadB2L (byte[] ba) { return ba[0]; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
99 static int loadUB (byte[] ba) { return ba[0] & 0xFF; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
100 static int loadUBmask(byte[] ba) { return ba[0] & 0xFE; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
101 static long loadUB2L (byte[] ba) { return ba[0] & 0xFF; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
102
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
103 static int loadS (short[] sa) { return sa[0]; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
104 static long loadS2L (short[] sa) { return sa[0]; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
105 static int loadUS (short[] sa) { return sa[0] & 0xFFFF; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
106 static int loadUSmask(short[] sa) { return sa[0] & 0xFFFE; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
107 static long loadUS2L (short[] sa) { return sa[0] & 0xFFFF; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
108
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
109 static int loadI (int[] ia) { return ia[0]; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
110 static long loadI2L (int[] ia) { return ia[0]; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
111 static long loadUI2L (int[] ia) { return ia[0] & 0xFFFFFFFFL; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
112
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
113 static long loadL (long[] la) { return la[0]; }
337400e7a5dd 6797305: Add LoadUB and LoadUI opcode class
twisti
parents:
diff changeset
114 }