annotate graal/com.oracle.graal.word/src/com/oracle/graal/word/Word.java @ 9526:ae5cd887e67c

Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
author Christian Wimmer <christian.wimmer@oracle.com>
date Thu, 02 May 2013 12:12:51 -0700
parents cc433555c5a3
children 06dc2d2324d6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1 /*
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
2 * Copyright (c) 2012, 2012, Oracle and/or its affiliates. All rights reserved.
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
4 *
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
8 *
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
13 * accompanied this code).
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
14 *
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
18 *
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
21 * questions.
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
22 */
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
23 package com.oracle.graal.word;
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
24
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
25 import static com.oracle.graal.graph.UnsafeAccess.*;
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
26
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
27 import java.lang.annotation.*;
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
28
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
29 import com.oracle.graal.api.code.*;
7701
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
30 import com.oracle.graal.graph.*;
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
31 import com.oracle.graal.nodes.*;
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
32 import com.oracle.graal.nodes.calc.*;
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
33 import com.oracle.graal.nodes.extended.LocationNode.LocationIdentity;
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
34
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
35 public abstract class Word implements Signed, Unsigned, Pointer {
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
36
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
37 /**
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
38 * Links a method to a canonical operation represented by an {@link Opcode} val.
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
39 */
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
40 @Retention(RetentionPolicy.RUNTIME)
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
41 @Target(ElementType.METHOD)
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
42 public @interface Operation {
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
43
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
44 Class<? extends ValueNode> node() default ValueNode.class;
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
45
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
46 boolean rightOperandIsInt() default false;
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
47
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
48 Opcode opcode() default Opcode.NODE_CLASS;
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
49
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
50 Condition condition() default Condition.EQ;
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
51 }
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
52
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
53 /**
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
54 * The canonical {@link Operation} represented by a method in the {@link Word} class.
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
55 */
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
56 // @formatter:off
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
57 public enum Opcode {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
58 NODE_CLASS,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
59 COMPARISON,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
60 NOT,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
61 READ,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
62 WRITE,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
63 ZERO,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
64 FROM_UNSIGNED,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
65 FROM_SIGNED,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
66 FROM_OBJECT,
8492
286a49d423c9 -Snippetization of CMS WriteBarriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 7710
diff changeset
67 FROM_ARRAY,
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
68 TO_OBJECT,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
69 TO_RAW_VALUE,
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
70 }
7521
d4bc143c575a replaced use of <br> in javadoc with <p>
Doug Simon <doug.simon@oracle.com>
parents: 7303
diff changeset
71 // @formatter:on
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
72
8472
f71fec3fadae made method substitutions for Thread be interpretable
Doug Simon <doug.simon@oracle.com>
parents: 8451
diff changeset
73 public static Word box(long val) {
f71fec3fadae made method substitutions for Thread be interpretable
Doug Simon <doug.simon@oracle.com>
parents: 8451
diff changeset
74 return HostedWord.boxLong(val);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
75 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
76
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
77 protected abstract long unbox();
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
78
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
79 private static Word intParam(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
80 return box(val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
81 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
82
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
83 /**
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
84 * The constant 0, i.e., the word with no bits set. There is no difference between a signed and
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
85 * unsigned zero.
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
86 *
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
87 * @return the constant 0.
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
88 */
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
89 @Operation(opcode = Opcode.ZERO)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
90 public static Word zero() {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
91 return box(0L);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
92 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
93
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
94 /**
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
95 * Unsafe conversion from a Java long value to a Word. The parameter is treated as an unsigned
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
96 * 64-bit value (in contrast to the semantics of a Java long).
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
97 *
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
98 * @param val a 64 bit unsigned value
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
99 * @return the value cast to Word
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
100 */
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
101 @Operation(opcode = Opcode.FROM_UNSIGNED)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
102 public static Word unsigned(long val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
103 return box(val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
104 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
105
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
106 /**
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
107 * Unsafe conversion from a Java int value to a Word. The parameter is treated as an unsigned
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
108 * 32-bit value (in contrast to the semantics of a Java int).
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
109 *
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
110 * @param val a 32 bit unsigned value
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
111 * @return the value cast to Word
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
112 */
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
113 @Operation(opcode = Opcode.FROM_UNSIGNED)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
114 public static Word unsigned(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
115 return box(val & 0xffffffffL);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
116 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
117
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
118 /**
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
119 * Unsafe conversion from a Java long value to a Word. The parameter is treated as a signed
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
120 * 64-bit value (unchanged semantics of a Java long).
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
121 *
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
122 * @param val a 64 bit signed value
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
123 * @return the value cast to Word
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
124 */
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
125 @Operation(opcode = Opcode.FROM_SIGNED)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
126 public static Word signed(long val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
127 return box(val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
128 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
129
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
130 /**
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
131 * Unsafe conversion from a Java int value to a Word. The parameter is treated as a signed
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
132 * 32-bit value (unchanged semantics of a Java int).
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
133 *
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
134 * @param val a 32 bit signed value
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
135 * @return the value cast to Word
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
136 */
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
137 @Operation(opcode = Opcode.FROM_SIGNED)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
138 public static Word signed(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
139 return box(val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
140 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
141
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
142 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
143 @Operation(opcode = Opcode.TO_RAW_VALUE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
144 public long rawValue() {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
145 return unbox();
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
146 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
147
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
148 @Operation(opcode = Opcode.FROM_OBJECT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
149 public static native Pointer fromObject(Object val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
150
8492
286a49d423c9 -Snippetization of CMS WriteBarriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 7710
diff changeset
151 @Operation(opcode = Opcode.FROM_ARRAY)
286a49d423c9 -Snippetization of CMS WriteBarriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 7710
diff changeset
152 public static native Pointer fromArray(Object oop, Object location);
286a49d423c9 -Snippetization of CMS WriteBarriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 7710
diff changeset
153
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
154 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
155 @Operation(opcode = Opcode.TO_OBJECT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
156 public native Object toObject();
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
157
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
158 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
159 @Operation(node = IntegerAddNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
160 public Word add(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
161 return add((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
162 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
163
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
164 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
165 @Operation(node = IntegerAddNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
166 public Word add(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
167 return add((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
168 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
169
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
170 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
171 @Operation(node = IntegerAddNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
172 public Word add(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
173 return add(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
174 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
175
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
176 @Operation(node = IntegerAddNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
177 public Word add(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
178 return box(unbox() + val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
179 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
180
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
181 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
182 @Operation(node = IntegerSubNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
183 public Word subtract(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
184 return subtract((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
185 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
186
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
187 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
188 @Operation(node = IntegerSubNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
189 public Word subtract(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
190 return subtract((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
191 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
192
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
193 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
194 @Operation(node = IntegerSubNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
195 public Word subtract(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
196 return subtract(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
197 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
198
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
199 @Operation(node = IntegerSubNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
200 public Word subtract(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
201 return box(unbox() - val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
202 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
203
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
204 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
205 @Operation(node = IntegerMulNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
206 public Word multiply(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
207 return multiply((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
208 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
209
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
210 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
211 @Operation(node = IntegerMulNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
212 public Word multiply(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
213 return multiply((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
214 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
215
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
216 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
217 @Operation(node = IntegerMulNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
218 public Word multiply(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
219 return multiply(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
220 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
221
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
222 @Operation(node = IntegerMulNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
223 public Word multiply(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
224 return box(unbox() * val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
225 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
226
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
227 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
228 @Operation(node = IntegerDivNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
229 public Word signedDivide(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
230 return signedDivide((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
231 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
232
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
233 @Override
7303
7952e3cfa6ed Fix wrong @Operation annotations
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7300
diff changeset
234 @Operation(node = IntegerDivNode.class)
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
235 public Word signedDivide(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
236 return signedDivide(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
237 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
238
7303
7952e3cfa6ed Fix wrong @Operation annotations
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7300
diff changeset
239 @Operation(node = IntegerDivNode.class)
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
240 public Word signedDivide(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
241 return box(unbox() / val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
242 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
243
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
244 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
245 @Operation(node = UnsignedDivNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
246 public Word unsignedDivide(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
247 return unsignedDivide((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
248 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
249
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
250 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
251 @Operation(node = UnsignedDivNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
252 public Word unsignedDivide(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
253 return signedDivide(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
254 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
255
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
256 @Operation(node = UnsignedDivNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
257 public Word unsignedDivide(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
258 return box(UnsignedMath.divide(unbox(), val.unbox()));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
259 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
260
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
261 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
262 @Operation(node = IntegerRemNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
263 public Word signedRemainder(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
264 return signedRemainder((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
265 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
266
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
267 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
268 @Operation(node = IntegerRemNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
269 public Word signedRemainder(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
270 return signedRemainder(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
271 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
272
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
273 @Operation(node = IntegerRemNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
274 public Word signedRemainder(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
275 return box(unbox() % val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
276 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
277
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
278 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
279 @Operation(node = UnsignedRemNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
280 public Word unsignedRemainder(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
281 return unsignedRemainder((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
282 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
283
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
284 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
285 @Operation(node = UnsignedRemNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
286 public Word unsignedRemainder(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
287 return signedRemainder(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
288 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
289
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
290 @Operation(node = UnsignedRemNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
291 public Word unsignedRemainder(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
292 return box(UnsignedMath.remainder(unbox(), val.unbox()));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
293 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
294
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
295 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
296 @Operation(node = LeftShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
297 public Word shiftLeft(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
298 return shiftLeft((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
299 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
300
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
301 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
302 @Operation(node = LeftShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
303 public Word shiftLeft(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
304 return shiftLeft(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
305 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
306
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
307 @Operation(node = LeftShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
308 public Word shiftLeft(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
309 return box(unbox() << val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
310 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
311
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
312 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
313 @Operation(node = RightShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
314 public Word signedShiftRight(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
315 return signedShiftRight((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
316 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
317
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
318 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
319 @Operation(node = RightShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
320 public Word signedShiftRight(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
321 return signedShiftRight(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
322 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
323
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
324 @Operation(node = RightShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
325 public Word signedShiftRight(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
326 return box(unbox() >> val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
327 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
328
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
329 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
330 @Operation(node = UnsignedRightShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
331 public Word unsignedShiftRight(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
332 return unsignedShiftRight((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
333 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
334
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
335 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
336 @Operation(node = UnsignedRightShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
337 public Word unsignedShiftRight(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
338 return unsignedShiftRight(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
339 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
340
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
341 @Operation(node = UnsignedRightShiftNode.class, rightOperandIsInt = true)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
342 public Word unsignedShiftRight(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
343 return box(unbox() >>> val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
344 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
345
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
346 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
347 @Operation(node = AndNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
348 public Word and(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
349 return and((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
350 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
351
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
352 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
353 @Operation(node = AndNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
354 public Word and(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
355 return and((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
356 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
357
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
358 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
359 @Operation(node = AndNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
360 public Word and(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
361 return and(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
362 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
363
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
364 @Operation(node = AndNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
365 public Word and(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
366 return box(unbox() & val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
367 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
368
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
369 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
370 @Operation(node = OrNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
371 public Word or(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
372 return or((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
373 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
374
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
375 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
376 @Operation(node = OrNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
377 public Word or(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
378 return or((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
379 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
380
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
381 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
382 @Operation(node = OrNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
383 public Word or(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
384 return or(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
385 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
386
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
387 @Operation(node = OrNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
388 public Word or(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
389 return box(unbox() | val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
390 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
391
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
392 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
393 @Operation(node = XorNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
394 public Word xor(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
395 return xor((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
396 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
397
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
398 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
399 @Operation(node = XorNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
400 public Word xor(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
401 return xor((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
402 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
403
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
404 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
405 @Operation(node = XorNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
406 public Word xor(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
407 return xor(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
408 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
409
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
410 @Operation(node = XorNode.class)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
411 public Word xor(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
412 return box(unbox() ^ val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
413 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
414
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
415 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
416 @Operation(opcode = Opcode.NOT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
417 public Word not() {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
418 return box(~unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
419 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
420
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
421 @Override
7701
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
422 @Operation(opcode = Opcode.COMPARISON, condition = Condition.EQ)
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
423 public boolean equal(Signed val) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
424 return equal((Word) val);
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
425 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
426
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
427 @Override
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
428 @Operation(opcode = Opcode.COMPARISON, condition = Condition.EQ)
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
429 public boolean equal(Unsigned val) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
430 return equal((Word) val);
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
431 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
432
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
433 @Override
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
434 @Operation(opcode = Opcode.COMPARISON, condition = Condition.EQ)
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
435 public boolean equal(int val) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
436 return equal(intParam(val));
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
437 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
438
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
439 @Operation(opcode = Opcode.COMPARISON, condition = Condition.EQ)
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
440 public boolean equal(Word val) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
441 return unbox() == val.unbox();
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
442 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
443
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
444 @Override
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
445 @Operation(opcode = Opcode.COMPARISON, condition = Condition.NE)
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
446 public boolean notEqual(Signed val) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
447 return notEqual((Word) val);
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
448 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
449
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
450 @Override
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
451 @Operation(opcode = Opcode.COMPARISON, condition = Condition.NE)
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
452 public boolean notEqual(Unsigned val) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
453 return notEqual((Word) val);
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
454 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
455
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
456 @Override
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
457 @Operation(opcode = Opcode.COMPARISON, condition = Condition.NE)
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
458 public boolean notEqual(int val) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
459 return notEqual(intParam(val));
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
460 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
461
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
462 @Operation(opcode = Opcode.COMPARISON, condition = Condition.NE)
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
463 public boolean notEqual(Word val) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
464 return unbox() != val.unbox();
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
465 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
466
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
467 @Override
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
468 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
469 public boolean lessThan(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
470 return lessThan((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
471 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
472
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
473 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
474 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
475 public boolean lessThan(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
476 return lessThan(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
477 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
478
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
479 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
480 public boolean lessThan(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
481 return unbox() < val.unbox();
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
482 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
483
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
484 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
485 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
486 public boolean lessOrEqual(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
487 return lessOrEqual((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
488 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
489
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
490 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
491 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
492 public boolean lessOrEqual(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
493 return lessOrEqual(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
494 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
495
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
496 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
497 public boolean lessOrEqual(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
498 return unbox() <= val.unbox();
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
499 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
500
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
501 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
502 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
503 public boolean greaterThan(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
504 return greaterThan((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
505 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
506
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
507 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
508 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
509 public boolean greaterThan(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
510 return greaterThan(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
511 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
512
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
513 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
514 public boolean greaterThan(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
515 return unbox() > val.unbox();
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
516 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
517
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
518 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
519 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
520 public boolean greaterOrEqual(Signed val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
521 return greaterOrEqual((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
522 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
523
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
524 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
525 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
526 public boolean greaterOrEqual(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
527 return greaterOrEqual(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
528 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
529
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
530 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
531 public boolean greaterOrEqual(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
532 return unbox() >= val.unbox();
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
533 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
534
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
535 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
536 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
537 public boolean belowThan(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
538 return belowThan((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
539 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
540
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
541 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
542 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
543 public boolean belowThan(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
544 return belowThan(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
545 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
546
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
547 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
548 public boolean belowThan(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
549 return UnsignedMath.belowThan(unbox(), val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
550 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
551
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
552 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
553 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
554 public boolean belowOrEqual(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
555 return belowOrEqual((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
556 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
557
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
558 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
559 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
560 public boolean belowOrEqual(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
561 return belowOrEqual(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
562 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
563
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
564 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
565 public boolean belowOrEqual(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
566 return UnsignedMath.belowOrEqual(unbox(), val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
567 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
568
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
569 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
570 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
571 public boolean aboveThan(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
572 return aboveThan((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
573 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
574
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
575 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
576 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
577 public boolean aboveThan(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
578 return aboveThan(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
579 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
580
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
581 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AT)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
582 public boolean aboveThan(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
583 return UnsignedMath.aboveThan(unbox(), val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
584 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
585
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
586 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
587 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
588 public boolean aboveOrEqual(Unsigned val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
589 return aboveOrEqual((Word) val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
590 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
591
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
592 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
593 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
594 public boolean aboveOrEqual(int val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
595 return aboveOrEqual(intParam(val));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
596 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
597
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
598 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AE)
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
599 public boolean aboveOrEqual(Word val) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
600 return UnsignedMath.aboveOrEqual(unbox(), val.unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
601 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
602
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
603 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
604 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
605 public byte readByte(WordBase offset, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
606 return unsafe.getByte(add((Word) offset).unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
607 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
608
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
609 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
610 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
611 public char readChar(WordBase offset, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
612 return unsafe.getChar(add((Word) offset).unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
613 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
614
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
615 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
616 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
617 public short readShort(WordBase offset, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
618 return unsafe.getShort(add((Word) offset).unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
619 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
620
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
621 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
622 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
623 public int readInt(WordBase offset, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
624 return unsafe.getInt(add((Word) offset).unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
625 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
626
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
627 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
628 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
629 public long readLong(WordBase offset, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
630 return unsafe.getLong(add((Word) offset).unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
631 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
632
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
633 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
634 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
635 public float readFloat(WordBase offset, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
636 return unsafe.getFloat(add((Word) offset).unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
637 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
638
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
639 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
640 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
641 public double readDouble(WordBase offset, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
642 return unsafe.getDouble(add((Word) offset).unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
643 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
644
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
645 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
646 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
647 public Word readWord(WordBase offset, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
648 return box(unsafe.getAddress(add((Word) offset).unbox()));
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
649 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
650
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
651 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
652 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
653 public Object readObject(WordBase offset, LocationIdentity locationIdentity) {
8475
7919bd029d12 removed use of CurrentThread from Thread method substitutions
Doug Simon <doug.simon@oracle.com>
parents: 8472
diff changeset
654 return unsafe.getObject(null, add((Word) offset).unbox());
7919bd029d12 removed use of CurrentThread from Thread method substitutions
Doug Simon <doug.simon@oracle.com>
parents: 8472
diff changeset
655 }
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
656
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
657 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
658 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
659 public byte readByte(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
660 return readByte(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
661 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
662
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
663 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
664 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
665 public char readChar(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
666 return readChar(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
667 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
668
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
669 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
670 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
671 public short readShort(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
672 return readShort(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
673 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
674
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
675 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
676 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
677 public int readInt(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
678 return readInt(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
679 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
680
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
681 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
682 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
683 public long readLong(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
684 return readLong(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
685 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
686
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
687 @Override
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
688 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
689 public float readFloat(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
690 return readFloat(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
691 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
692
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
693 @Override
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
694 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
695 public double readDouble(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
696 return readDouble(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
697 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
698
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
699 @Override
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
700 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
701 public Word readWord(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
702 return readWord(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
703 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
704
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
705 @Override
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
706 @Operation(opcode = Opcode.READ)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
707 public Object readObject(int offset, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
708 return readObject(signed(offset), locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
709 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
710
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
711 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
712 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
713 public void writeByte(WordBase offset, byte val, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
714 unsafe.putByte(add((Word) offset).unbox(), val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
715 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
716
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
717 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
718 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
719 public void writeChar(WordBase offset, char val, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
720 unsafe.putChar(add((Word) offset).unbox(), val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
721 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
722
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
723 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
724 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
725 public void writeShort(WordBase offset, short val, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
726 unsafe.putShort(add((Word) offset).unbox(), val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
727 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
728
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
729 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
730 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
731 public void writeInt(WordBase offset, int val, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
732 unsafe.putInt(add((Word) offset).unbox(), val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
733 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
734
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
735 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
736 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
737 public void writeLong(WordBase offset, long val, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
738 unsafe.putLong(add((Word) offset).unbox(), val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
739 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
740
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
741 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
742 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
743 public void writeFloat(WordBase offset, float val, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
744 unsafe.putFloat(add((Word) offset).unbox(), val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
745 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
746
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
747 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
748 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
749 public void writeDouble(WordBase offset, double val, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
750 unsafe.putDouble(add((Word) offset).unbox(), val);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
751 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
752
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
753 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
754 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
755 public void writeWord(WordBase offset, WordBase val, LocationIdentity locationIdentity) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
756 unsafe.putAddress(add((Word) offset).unbox(), ((Word) val).unbox());
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
757 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
758
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
759 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
760 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
761 public native void writeObject(WordBase offset, Object val, LocationIdentity locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
762
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
763 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
764 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
765 public void writeByte(int offset, byte val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
766 writeByte(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
767 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
768
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
769 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
770 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
771 public void writeChar(int offset, char val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
772 writeChar(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
773 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
774
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
775 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
776 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
777 public void writeShort(int offset, short val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
778 writeShort(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
779 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
780
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
781 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
782 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
783 public void writeInt(int offset, int val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
784 writeInt(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
785 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
786
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
787 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
788 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
789 public void writeLong(int offset, long val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
790 writeLong(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
791 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
792
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
793 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
794 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
795 public void writeFloat(int offset, float val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
796 writeFloat(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
797 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
798
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
799 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
800 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
801 public void writeDouble(int offset, double val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
802 writeDouble(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
803 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
804
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
805 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
806 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
807 public void writeWord(int offset, WordBase val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
808 writeWord(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
809 }
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
810
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
811 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
812 @Operation(opcode = Opcode.WRITE)
9526
ae5cd887e67c Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents: 8522
diff changeset
813 public void writeObject(int offset, Object val, LocationIdentity locationIdentity) {
7868
7a5bbcc36bb2 add location identity to Pointer read and write operations
Lukas Stadler <lukas.stadler@jku.at>
parents: 7710
diff changeset
814 writeObject(signed(offset), val, locationIdentity);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
815 }
7701
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
816
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
817 @Override
7904
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
818 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
819 public byte readByte(WordBase offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
820 return unsafe.getByte(add((Word) offset).unbox());
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
821 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
822
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
823 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
824 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
825 public char readChar(WordBase offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
826 return unsafe.getChar(add((Word) offset).unbox());
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
827 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
828
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
829 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
830 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
831 public short readShort(WordBase offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
832 return unsafe.getShort(add((Word) offset).unbox());
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
833 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
834
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
835 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
836 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
837 public int readInt(WordBase offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
838 return unsafe.getInt(add((Word) offset).unbox());
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
839 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
840
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
841 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
842 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
843 public long readLong(WordBase offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
844 return unsafe.getLong(add((Word) offset).unbox());
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
845 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
846
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
847 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
848 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
849 public float readFloat(WordBase offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
850 return unsafe.getFloat(add((Word) offset).unbox());
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
851 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
852
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
853 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
854 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
855 public double readDouble(WordBase offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
856 return unsafe.getDouble(add((Word) offset).unbox());
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
857 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
858
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
859 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
860 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
861 public Word readWord(WordBase offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
862 return box(unsafe.getAddress(add((Word) offset).unbox()));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
863 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
864
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
865 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
866 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
867 public native Object readObject(WordBase offset);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
868
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
869 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
870 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
871 public byte readByte(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
872 return readByte(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
873 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
874
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
875 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
876 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
877 public char readChar(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
878 return readChar(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
879 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
880
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
881 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
882 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
883 public short readShort(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
884 return readShort(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
885 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
886
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
887 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
888 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
889 public int readInt(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
890 return readInt(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
891 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
892
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
893 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
894 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
895 public long readLong(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
896 return readLong(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
897 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
898
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
899 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
900 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
901 public float readFloat(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
902 return readFloat(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
903 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
904
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
905 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
906 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
907 public double readDouble(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
908 return readDouble(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
909 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
910
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
911 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
912 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
913 public Word readWord(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
914 return readWord(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
915 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
916
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
917 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
918 @Operation(opcode = Opcode.READ)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
919 public Object readObject(int offset) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
920 return readObject(signed(offset));
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
921 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
922
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
923 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
924 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
925 public void writeByte(WordBase offset, byte val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
926 unsafe.putByte(add((Word) offset).unbox(), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
927 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
928
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
929 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
930 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
931 public void writeChar(WordBase offset, char val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
932 unsafe.putChar(add((Word) offset).unbox(), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
933 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
934
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
935 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
936 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
937 public void writeShort(WordBase offset, short val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
938 unsafe.putShort(add((Word) offset).unbox(), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
939 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
940
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
941 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
942 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
943 public void writeInt(WordBase offset, int val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
944 unsafe.putInt(add((Word) offset).unbox(), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
945 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
946
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
947 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
948 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
949 public void writeLong(WordBase offset, long val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
950 unsafe.putLong(add((Word) offset).unbox(), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
951 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
952
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
953 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
954 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
955 public void writeFloat(WordBase offset, float val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
956 unsafe.putFloat(add((Word) offset).unbox(), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
957 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
958
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
959 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
960 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
961 public void writeDouble(WordBase offset, double val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
962 unsafe.putDouble(add((Word) offset).unbox(), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
963 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
964
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
965 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
966 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
967 public void writeWord(WordBase offset, WordBase val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
968 unsafe.putAddress(add((Word) offset).unbox(), ((Word) val).unbox());
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
969 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
970
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
971 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
972 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
973 public native void writeObject(WordBase offset, Object val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
974
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
975 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
976 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
977 public void writeByte(int offset, byte val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
978 writeByte(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
979 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
980
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
981 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
982 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
983 public void writeChar(int offset, char val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
984 writeChar(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
985 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
986
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
987 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
988 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
989 public void writeShort(int offset, short val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
990 writeShort(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
991 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
992
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
993 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
994 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
995 public void writeInt(int offset, int val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
996 writeInt(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
997 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
998
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
999 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1000 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1001 public void writeLong(int offset, long val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1002 writeLong(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1003 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1004
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1005 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1006 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1007 public void writeFloat(int offset, float val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1008 writeFloat(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1009 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1010
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1011 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1012 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1013 public void writeDouble(int offset, double val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1014 writeDouble(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1015 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1016
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1017 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1018 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1019 public void writeWord(int offset, WordBase val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1020 writeWord(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1021 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1022
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1023 @Override
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1024 @Operation(opcode = Opcode.WRITE)
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1025 public void writeObject(int offset, Object val) {
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1026 writeObject(signed(offset), val);
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1027 }
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1028
c8f2002d2194 reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents: 7903
diff changeset
1029 @Override
7701
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1030 public final boolean equals(Object obj) {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1031 throw GraalInternalError.shouldNotReachHere("equals must not be called on words");
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1032 }
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1033
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1034 @Override
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1035 public final int hashCode() {
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1036 throw GraalInternalError.shouldNotReachHere("hashCode must not be called on words");
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1037 }
7710
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1038
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1039 @Override
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1040 public String toString() {
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1041 throw GraalInternalError.shouldNotReachHere("toString must not be called on words");
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1042 }
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1043 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1044
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1045 final class HostedWord extends Word {
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
1046
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1047 private static final int SMALL_FROM = -1;
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1048 private static final int SMALL_TO = 100;
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1049
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1050 private static final HostedWord[] smallCache = new HostedWord[SMALL_TO - SMALL_FROM + 1];
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1051
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1052 static {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1053 for (int i = SMALL_FROM; i <= SMALL_TO; i++) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1054 smallCache[i - SMALL_FROM] = new HostedWord(i);
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1055 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1056 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1057
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1058 private final long rawValue;
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1059
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1060 private HostedWord(long rawValue) {
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7521
diff changeset
1061 this.rawValue = rawValue;
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1062 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1063
8472
f71fec3fadae made method substitutions for Thread be interpretable
Doug Simon <doug.simon@oracle.com>
parents: 8451
diff changeset
1064 protected static Word boxLong(long val) {
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1065 if (val >= SMALL_FROM && val <= SMALL_TO) {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1066 return smallCache[(int) val - SMALL_FROM];
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1067 }
7701
47467b2c3fc5 Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7530
diff changeset
1068 return new HostedWord(val);
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1069 }
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1070
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1071 @Override
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1072 protected long unbox() {
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1073 return rawValue;
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1074 }
7710
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1075
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1076 @Override
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1077 public String toString() {
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1078 return "Word<" + rawValue + ">";
09dd65d5e474 Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents: 7701
diff changeset
1079 }
7300
2912b72d840a More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1080 }