Mercurial > hg > graal-compiler
annotate graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/PointerTest.java @ 19250:8ab925a6f724
made Assumptions be part of a StructuredGraph
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 11 Feb 2015 10:13:08 +0100 |
parents | d138867d61c4 |
children | 835e950b38b9 |
rev | line source |
---|---|
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
1 /* |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
4 * |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
8 * |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
13 * accompanied this code). |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
14 * |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
18 * |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
21 * questions. |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
22 */ |
8944
e7766460ddb3
Move tests into *.test packages.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
8635
diff
changeset
|
23 package com.oracle.graal.replacements.test; |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
24 |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
25 import static com.oracle.graal.api.code.Assumptions.*; |
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
26 |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
27 import org.junit.*; |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
28 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
29 import com.oracle.graal.api.code.*; |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
30 import com.oracle.graal.api.meta.*; |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
31 import com.oracle.graal.compiler.test.*; |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
32 import com.oracle.graal.nodes.*; |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
33 import com.oracle.graal.nodes.calc.*; |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
34 import com.oracle.graal.nodes.extended.*; |
11800
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
35 import com.oracle.graal.phases.*; |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
36 import com.oracle.graal.phases.common.*; |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
37 import com.oracle.graal.phases.tiers.*; |
8944
e7766460ddb3
Move tests into *.test packages.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
8635
diff
changeset
|
38 import com.oracle.graal.replacements.*; |
14991
64dcb92ee75a
Truffle: Change signature for Truffle calls from (PackedFrame, Arguments) to (Object[]).
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
14945
diff
changeset
|
39 import com.oracle.graal.replacements.ReplacementsImpl.FrameStateProcessing; |
11800
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
40 import com.oracle.graal.replacements.Snippet.SnippetInliningPolicy; |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
41 import com.oracle.graal.word.*; |
11752
7e7edb86fb43
Refactor the handling of unsafe casts to distinguish between word-object-conversions, PiNode-like type information, and real unsafe casts.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11717
diff
changeset
|
42 import com.oracle.graal.word.nodes.*; |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
43 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
44 /** |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
45 * Tests for the {@link Pointer} read and write operations. |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
46 */ |
8413
d9347ee39fbe
rename: SnippetsInterface -> Snippets
Doug Simon <doug.simon@oracle.com>
parents:
8410
diff
changeset
|
47 public class PointerTest extends GraalCompilerTest implements Snippets { |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
48 |
18307
85f5227a7a37
add mutable/immutable factory methods to NamedLocationIdentity
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
18259
diff
changeset
|
49 private static final LocationIdentity ID = NamedLocationIdentity.mutable("ID"); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
50 private static final Kind[] KINDS = new Kind[]{Kind.Byte, Kind.Char, Kind.Short, Kind.Int, Kind.Long, Kind.Float, Kind.Double, Kind.Object}; |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
51 private final TargetDescription target; |
8628
77de2f3df379
renames: [HotSpot]ReplacementsInstaller -> [HotSpot]ReplacementsImpl
Doug Simon <doug.simon@oracle.com>
parents:
8416
diff
changeset
|
52 private final ReplacementsImpl installer; |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
53 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
54 public PointerTest() { |
12429
5124eeec1a7b
split HotSpotRuntime into separate provider implementations
Doug Simon <doug.simon@oracle.com>
parents:
12362
diff
changeset
|
55 target = getCodeCache().getTarget(); |
15018
db4254246f9a
Remove Constant.forObject and Constant.asObject to improve compiler/VM separation
Christian Wimmer <christian.wimmer@oracle.com>
parents:
14991
diff
changeset
|
56 installer = new ReplacementsImpl(getProviders(), getSnippetReflection(), new Assumptions(false), getTarget()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
57 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
58 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
59 private static final ThreadLocal<SnippetInliningPolicy> inliningPolicy = new ThreadLocal<>(); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
60 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
61 @Override |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
62 protected StructuredGraph parseEager(ResolvedJavaMethod m, boolean allowOptimisticAssumptions) { |
18120
86ec7f6f71b3
refactored GraalCompilerTest API to be in terms of ResolvedJavaMethod instead of Method
Doug Simon <doug.simon@oracle.com>
parents:
17328
diff
changeset
|
63 return installer.makeGraph(m, null, inliningPolicy.get(), FrameStateProcessing.CollapseFrameForSingleSideEffect); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
64 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
65 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
66 @Test |
10513
00b70a864d3b
updated Checkstyle rules to prohibit underscores in method names and fixed current violations
Doug Simon <doug.simon@oracle.com>
parents:
9792
diff
changeset
|
67 public void testRead1() { |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
68 for (Kind kind : KINDS) { |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
69 assertRead(parseEager("read" + kind.name() + "1", ALLOW_OPTIMISTIC_ASSUMPTIONS), kind, true, ID); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
70 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
71 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
72 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
73 @Test |
10513
00b70a864d3b
updated Checkstyle rules to prohibit underscores in method names and fixed current violations
Doug Simon <doug.simon@oracle.com>
parents:
9792
diff
changeset
|
74 public void testRead2() { |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
75 for (Kind kind : KINDS) { |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
76 assertRead(parseEager("read" + kind.name() + "2", ALLOW_OPTIMISTIC_ASSUMPTIONS), kind, true, ID); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
77 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
78 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
79 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
80 @Test |
10513
00b70a864d3b
updated Checkstyle rules to prohibit underscores in method names and fixed current violations
Doug Simon <doug.simon@oracle.com>
parents:
9792
diff
changeset
|
81 public void testRead3() { |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
82 for (Kind kind : KINDS) { |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
83 assertRead(parseEager("read" + kind.name() + "3", ALLOW_OPTIMISTIC_ASSUMPTIONS), kind, true, LocationIdentity.ANY_LOCATION); |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
84 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
85 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
86 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
87 @Test |
10513
00b70a864d3b
updated Checkstyle rules to prohibit underscores in method names and fixed current violations
Doug Simon <doug.simon@oracle.com>
parents:
9792
diff
changeset
|
88 public void testWrite1() { |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
89 for (Kind kind : KINDS) { |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
90 assertWrite(parseEager("write" + kind.name() + "1", ALLOW_OPTIMISTIC_ASSUMPTIONS), true, ID); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
91 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
92 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
93 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
94 @Test |
10513
00b70a864d3b
updated Checkstyle rules to prohibit underscores in method names and fixed current violations
Doug Simon <doug.simon@oracle.com>
parents:
9792
diff
changeset
|
95 public void testWrite2() { |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
96 for (Kind kind : KINDS) { |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
97 assertWrite(parseEager("write" + kind.name() + "2", ALLOW_OPTIMISTIC_ASSUMPTIONS), true, ID); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
98 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
99 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
100 |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
101 @Test |
10513
00b70a864d3b
updated Checkstyle rules to prohibit underscores in method names and fixed current violations
Doug Simon <doug.simon@oracle.com>
parents:
9792
diff
changeset
|
102 public void testWrite3() { |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
103 for (Kind kind : KINDS) { |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
104 assertWrite(parseEager("write" + kind.name() + "3", ALLOW_OPTIMISTIC_ASSUMPTIONS), true, LocationIdentity.ANY_LOCATION); |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
105 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
106 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
107 |
9526
ae5cd887e67c
Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents:
9525
diff
changeset
|
108 private void assertRead(StructuredGraph graph, Kind kind, boolean indexConvert, LocationIdentity locationIdentity) { |
11752
7e7edb86fb43
Refactor the handling of unsafe casts to distinguish between word-object-conversions, PiNode-like type information, and real unsafe casts.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11717
diff
changeset
|
109 WordCastNode cast = (WordCastNode) graph.start().next(); |
7e7edb86fb43
Refactor the handling of unsafe casts to distinguish between word-object-conversions, PiNode-like type information, and real unsafe casts.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11717
diff
changeset
|
110 |
14945
b14cb2d9253d
Make compression and uncompression explicit in the high level graph.
Roland Schatz <roland.schatz@oracle.com>
parents:
14000
diff
changeset
|
111 JavaReadNode read = (JavaReadNode) cast.next(); |
14000
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
112 Assert.assertEquals(kind.getStackKind(), read.stamp().getStackKind()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
113 |
11752
7e7edb86fb43
Refactor the handling of unsafe casts to distinguish between word-object-conversions, PiNode-like type information, and real unsafe casts.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11717
diff
changeset
|
114 Assert.assertEquals(cast, read.object()); |
13614
0774f3303c2e
rename LocalNode to ParameterNode
Lukas Stadler <lukas.stadler@jku.at>
parents:
13135
diff
changeset
|
115 Assert.assertEquals(graph.getParameter(0), cast.getInput()); |
14000
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
116 Assert.assertEquals(target.wordKind, cast.stamp().getStackKind()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
117 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
118 IndexedLocationNode location = (IndexedLocationNode) read.location(); |
9525
038fa65cbd8d
Consistent naming of accessor methods in the LocationNode class hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
8944
diff
changeset
|
119 Assert.assertEquals(locationIdentity, location.getLocationIdentity()); |
038fa65cbd8d
Consistent naming of accessor methods in the LocationNode class hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
8944
diff
changeset
|
120 Assert.assertEquals(1, location.getIndexScaling()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
121 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
122 if (indexConvert) { |
14000
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
123 SignExtendNode convert = (SignExtendNode) location.getIndex(); |
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
124 Assert.assertEquals(convert.getInputBits(), 32); |
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
125 Assert.assertEquals(convert.getResultBits(), 64); |
16156
0993768dfc8e
new UnaryNode base class
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15263
diff
changeset
|
126 Assert.assertEquals(graph.getParameter(1), convert.getValue()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
127 } else { |
13614
0774f3303c2e
rename LocalNode to ParameterNode
Lukas Stadler <lukas.stadler@jku.at>
parents:
13135
diff
changeset
|
128 Assert.assertEquals(graph.getParameter(1), location.getIndex()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
129 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
130 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
131 ReturnNode ret = (ReturnNode) read.next(); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
132 Assert.assertEquals(read, ret.result()); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
133 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
134 |
18649
d138867d61c4
Remove getValueKind() from LocationNode.
Roland Schatz <roland.schatz@oracle.com>
parents:
18307
diff
changeset
|
135 private void assertWrite(StructuredGraph graph, boolean indexConvert, LocationIdentity locationIdentity) { |
11752
7e7edb86fb43
Refactor the handling of unsafe casts to distinguish between word-object-conversions, PiNode-like type information, and real unsafe casts.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11717
diff
changeset
|
136 WordCastNode cast = (WordCastNode) graph.start().next(); |
7e7edb86fb43
Refactor the handling of unsafe casts to distinguish between word-object-conversions, PiNode-like type information, and real unsafe casts.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11717
diff
changeset
|
137 |
14945
b14cb2d9253d
Make compression and uncompression explicit in the high level graph.
Roland Schatz <roland.schatz@oracle.com>
parents:
14000
diff
changeset
|
138 JavaWriteNode write = (JavaWriteNode) cast.next(); |
13614
0774f3303c2e
rename LocalNode to ParameterNode
Lukas Stadler <lukas.stadler@jku.at>
parents:
13135
diff
changeset
|
139 Assert.assertEquals(graph.getParameter(2), write.value()); |
17328
c9bb0da795d4
Backed out of changeset 17322:655f3e6b467b
Doug Simon <doug.simon@oracle.com>
parents:
17327
diff
changeset
|
140 Assert.assertEquals(BytecodeFrame.AFTER_BCI, write.stateAfter().bci); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
141 |
11752
7e7edb86fb43
Refactor the handling of unsafe casts to distinguish between word-object-conversions, PiNode-like type information, and real unsafe casts.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11717
diff
changeset
|
142 Assert.assertEquals(cast, write.object()); |
13614
0774f3303c2e
rename LocalNode to ParameterNode
Lukas Stadler <lukas.stadler@jku.at>
parents:
13135
diff
changeset
|
143 Assert.assertEquals(graph.getParameter(0), cast.getInput()); |
14000
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
144 Assert.assertEquals(target.wordKind, cast.stamp().getStackKind()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
145 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
146 IndexedLocationNode location = (IndexedLocationNode) write.location(); |
9525
038fa65cbd8d
Consistent naming of accessor methods in the LocationNode class hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
8944
diff
changeset
|
147 Assert.assertEquals(locationIdentity, location.getLocationIdentity()); |
038fa65cbd8d
Consistent naming of accessor methods in the LocationNode class hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
8944
diff
changeset
|
148 Assert.assertEquals(1, location.getIndexScaling()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
149 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
150 if (indexConvert) { |
14000
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
151 SignExtendNode convert = (SignExtendNode) location.getIndex(); |
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
152 Assert.assertEquals(convert.getInputBits(), 32); |
958c99d0790c
Split convert node into separate nodes for different conversions.
Roland Schatz <roland.schatz@oracle.com>
parents:
13618
diff
changeset
|
153 Assert.assertEquals(convert.getResultBits(), 64); |
16156
0993768dfc8e
new UnaryNode base class
Lukas Stadler <lukas.stadler@oracle.com>
parents:
15263
diff
changeset
|
154 Assert.assertEquals(graph.getParameter(1), convert.getValue()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
155 } else { |
13614
0774f3303c2e
rename LocalNode to ParameterNode
Lukas Stadler <lukas.stadler@jku.at>
parents:
13135
diff
changeset
|
156 Assert.assertEquals(graph.getParameter(1), location.getIndex()); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
157 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
158 |
11717
8a3b59397044
The SnippetFrameStateCleanupPhase now sets invalid framestates on the paths of side effecting instruction except for the last one where an AFTER_BCI is used.
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
10513
diff
changeset
|
159 ReturnNode ret = (ReturnNode) write.next(); |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
160 Assert.assertEquals(null, ret.result()); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
161 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
162 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
163 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
164 public static byte readByte1(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
165 return Word.fromObject(o).readByte(offset, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
166 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
167 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
168 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
169 public static byte readByte2(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
170 return Word.fromObject(o).readByte(Word.signed(offset), ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
171 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
172 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
173 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
174 public static byte readByte3(Object o, int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
175 return Word.fromObject(o).readByte(offset); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
176 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
177 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
178 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
179 public static void writeByte1(Object o, int offset, byte value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
180 Word.fromObject(o).writeByte(offset, value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
181 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
182 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
183 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
184 public static void writeByte2(Object o, int offset, byte value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
185 Word.fromObject(o).writeByte(Word.signed(offset), value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
186 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
187 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
188 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
189 public static void writeByte3(Object o, int offset, byte value) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
190 Word.fromObject(o).writeByte(offset, value); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
191 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
192 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
193 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
194 public static char readChar1(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
195 return Word.fromObject(o).readChar(offset, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
196 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
197 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
198 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
199 public static char readChar2(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
200 return Word.fromObject(o).readChar(Word.signed(offset), ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
201 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
202 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
203 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
204 public static char readChar3(Object o, int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
205 return Word.fromObject(o).readChar(offset); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
206 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
207 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
208 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
209 public static void writeChar1(Object o, int offset, char value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
210 Word.fromObject(o).writeChar(offset, value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
211 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
212 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
213 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
214 public static void writeChar2(Object o, int offset, char value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
215 Word.fromObject(o).writeChar(Word.signed(offset), value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
216 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
217 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
218 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
219 public static void writeChar3(Object o, int offset, char value) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
220 Word.fromObject(o).writeChar(offset, value); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
221 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
222 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
223 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
224 public static short readShort1(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
225 return Word.fromObject(o).readShort(offset, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
226 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
227 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
228 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
229 public static short readShort2(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
230 return Word.fromObject(o).readShort(Word.signed(offset), ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
231 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
232 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
233 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
234 public static short readShort3(Object o, int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
235 return Word.fromObject(o).readShort(offset); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
236 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
237 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
238 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
239 public static void writeShort1(Object o, int offset, short value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
240 Word.fromObject(o).writeShort(offset, value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
241 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
242 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
243 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
244 public static void writeShort2(Object o, int offset, short value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
245 Word.fromObject(o).writeShort(Word.signed(offset), value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
246 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
247 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
248 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
249 public static void writeShort3(Object o, int offset, short value) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
250 Word.fromObject(o).writeShort(offset, value); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
251 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
252 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
253 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
254 public static int readInt1(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
255 return Word.fromObject(o).readInt(offset, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
256 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
257 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
258 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
259 public static int readInt2(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
260 return Word.fromObject(o).readInt(Word.signed(offset), ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
261 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
262 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
263 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
264 public static int readInt3(Object o, int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
265 return Word.fromObject(o).readInt(offset); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
266 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
267 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
268 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
269 public static void writeInt1(Object o, int offset, int value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
270 Word.fromObject(o).writeInt(offset, value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
271 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
272 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
273 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
274 public static void writeInt2(Object o, int offset, int value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
275 Word.fromObject(o).writeInt(Word.signed(offset), value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
276 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
277 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
278 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
279 public static void writeInt3(Object o, int offset, int value) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
280 Word.fromObject(o).writeInt(offset, value); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
281 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
282 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
283 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
284 public static long readLong1(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
285 return Word.fromObject(o).readLong(offset, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
286 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
287 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
288 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
289 public static long readLong2(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
290 return Word.fromObject(o).readLong(Word.signed(offset), ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
291 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
292 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
293 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
294 public static long readLong3(Object o, int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
295 return Word.fromObject(o).readLong(offset); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
296 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
297 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
298 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
299 public static void writeLong1(Object o, int offset, long value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
300 Word.fromObject(o).writeLong(offset, value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
301 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
302 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
303 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
304 public static void writeLong2(Object o, int offset, long value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
305 Word.fromObject(o).writeLong(Word.signed(offset), value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
306 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
307 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
308 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
309 public static void writeLong3(Object o, int offset, long value) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
310 Word.fromObject(o).writeLong(offset, value); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
311 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
312 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
313 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
314 public static float readFloat1(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
315 return Word.fromObject(o).readFloat(offset, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
316 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
317 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
318 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
319 public static float readFloat2(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
320 return Word.fromObject(o).readFloat(Word.signed(offset), ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
321 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
322 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
323 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
324 public static float readFloat3(Object o, int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
325 return Word.fromObject(o).readFloat(offset); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
326 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
327 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
328 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
329 public static void writeFloat1(Object o, int offset, float value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
330 Word.fromObject(o).writeFloat(offset, value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
331 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
332 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
333 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
334 public static void writeFloat2(Object o, int offset, float value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
335 Word.fromObject(o).writeFloat(Word.signed(offset), value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
336 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
337 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
338 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
339 public static void writeFloat3(Object o, int offset, float value) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
340 Word.fromObject(o).writeFloat(offset, value); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
341 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
342 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
343 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
344 public static double readDouble1(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
345 return Word.fromObject(o).readDouble(offset, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
346 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
347 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
348 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
349 public static double readDouble2(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
350 return Word.fromObject(o).readDouble(Word.signed(offset), ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
351 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
352 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
353 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
354 public static double readDouble3(Object o, int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
355 return Word.fromObject(o).readDouble(offset); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
356 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
357 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
358 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
359 public static void writeDouble1(Object o, int offset, double value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
360 Word.fromObject(o).writeDouble(offset, value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
361 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
362 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
363 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
364 public static void writeDouble2(Object o, int offset, double value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
365 Word.fromObject(o).writeDouble(Word.signed(offset), value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
366 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
367 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
368 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
369 public static void writeDouble3(Object o, int offset, double value) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
370 Word.fromObject(o).writeDouble(offset, value); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
371 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
372 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
373 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
374 public static Object readObject1(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
375 return Word.fromObject(o).readObject(offset, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
376 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
377 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
378 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
379 public static Object readObject2(Object o, int offset) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
380 return Word.fromObject(o).readObject(Word.signed(offset), ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
381 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
382 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
383 @Snippet |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
384 public static Object readObject3(Object o, int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
385 return Word.fromObject(o).readObject(offset); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
386 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
387 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
388 @Snippet |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
389 public static void writeObject1(Object o, int offset, Object value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
390 Word.fromObject(o).writeObject(offset, value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
391 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
392 |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
393 @Snippet |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
394 public static void writeObject2(Object o, int offset, Object value) { |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
395 Word.fromObject(o).writeObject(Word.signed(offset), value, ID); |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
396 } |
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
397 |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
398 @Snippet |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
399 public static void writeObject3(Object o, int offset, Object value) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
400 Word.fromObject(o).writeObject(offset, value); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
401 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
402 |
11800
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
403 private void assertNumWordCasts(String snippetName, int expectedWordCasts) { |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
404 HighTierContext context = new HighTierContext(getProviders(), null, null, OptimisticOptimizations.ALL); |
11800
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
405 |
19250
8ab925a6f724
made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents:
18649
diff
changeset
|
406 StructuredGraph graph = parseEager(snippetName, ALLOW_OPTIMISTIC_ASSUMPTIONS); |
11800
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
407 new CanonicalizerPhase(false).apply(graph, context); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
408 Assert.assertEquals(expectedWordCasts, graph.getNodes().filter(WordCastNode.class).count()); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
409 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
410 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
411 @Test |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
412 public void testUnusedFromObject() { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
413 assertNumWordCasts("unusedFromObject", 0); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
414 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
415 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
416 @Snippet |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
417 public static void unusedFromObject(Object o) { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
418 Word.fromObject(o); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
419 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
420 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
421 @Test |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
422 public void testUnusedRawValue() { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
423 assertNumWordCasts("unusedRawValue", 0); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
424 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
425 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
426 @Snippet |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
427 public static void unusedRawValue(Object o) { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
428 Word.fromObject(o).rawValue(); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
429 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
430 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
431 @Test |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
432 public void testUsedRawValue() { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
433 assertNumWordCasts("usedRawValue", 1); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
434 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
435 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
436 @Snippet |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
437 public static long usedRawValue(Object o) { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
438 return Word.fromObject(o).rawValue(); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
439 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
440 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
441 @Test |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
442 public void testUnusedToObject() { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
443 assertNumWordCasts("unusedToObject", 0); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
444 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
445 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
446 @Snippet |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
447 public static void unusedToObject(Word w) { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
448 w.toObject(); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
449 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
450 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
451 @Test |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
452 public void testUsedToObject() { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
453 assertNumWordCasts("usedToObject", 1); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
454 } |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
455 |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
456 @Snippet |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
457 public static Object usedToObject(Word w) { |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
458 return w.toObject(); |
a28f24553ffa
Improvements to recent unsafe cast node changes
Christian Wimmer <christian.wimmer@oracle.com>
parents:
11752
diff
changeset
|
459 } |
7903
f19c4d447e73
more bug fixes and tests for Word read/write operations
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
460 } |