Mercurial > hg > truffle
annotate graal/com.oracle.graal.word/src/com/oracle/graal/word/Word.java @ 21543:93c50cefb9e8
moved GraalInternalError to com.oracle.jvmci.common and renamed it to JVMCIError (JBS:GRAAL-53)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 25 May 2015 23:30:34 +0200 |
parents | 5e868236654f |
children | 48c1ebd24120 |
rev | line source |
---|---|
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1 /* |
21418
cba35d171cd1
Move memory related nodes to their own package.
Roland Schatz <roland.schatz@oracle.com>
parents:
19791
diff
changeset
|
2 * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. |
7300
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 |
21541
5e868236654f
moved UnsafeAccess to com.oracle.jvmci.common (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21418
diff
changeset
|
25 import static com.oracle.jvmci.common.UnsafeAccess.*; |
7300
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.*; |
9792
06dc2d2324d6
pulled LocationIdentity into a top level class and moved it to the api.meta project
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
30 import com.oracle.graal.api.meta.*; |
15200
97eed257999b
Move Condition to graal.compiler.common.
Josef Eisl <josef.eisl@jku.at>
parents:
15193
diff
changeset
|
31 import com.oracle.graal.compiler.common.calc.*; |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
32 import com.oracle.graal.nodes.*; |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
33 import com.oracle.graal.nodes.calc.*; |
21543
93c50cefb9e8
moved GraalInternalError to com.oracle.jvmci.common and renamed it to JVMCIError (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21541
diff
changeset
|
34 import com.oracle.graal.nodes.memory.HeapAccess.BarrierType; |
93c50cefb9e8
moved GraalInternalError to com.oracle.jvmci.common and renamed it to JVMCIError (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21541
diff
changeset
|
35 import com.oracle.jvmci.common.*; |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
36 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
37 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
|
38 |
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 * 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
|
41 */ |
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
42 @Retention(RetentionPolicy.RUNTIME) |
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
43 @Target(ElementType.METHOD) |
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
44 public @interface Operation { |
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
45 |
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
46 Class<? extends ValueNode> node() default ValueNode.class; |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
47 |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
48 boolean rightOperandIsInt() default false; |
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 Opcode opcode() default Opcode.NODE_CLASS; |
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 Condition condition() default Condition.EQ; |
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 |
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 * 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
|
57 */ |
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
58 // @formatter:off |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
59 public enum Opcode { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
60 NODE_CLASS, |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
61 COMPARISON, |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
62 NOT, |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
63 READ_POINTER, |
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
64 READ_OBJECT, |
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
65 READ_BARRIERED, |
10800
69e305a5cf09
Introduce new read opcode that allows compressed oops and read barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10759
diff
changeset
|
66 READ_HEAP, |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
67 WRITE_POINTER, |
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
68 WRITE_OBJECT, |
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
69 WRITE_BARRIERED, |
10759
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
70 INITIALIZE, |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
71 ZERO, |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
72 FROM_UNSIGNED, |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
73 FROM_SIGNED, |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
74 FROM_OBJECT, |
19791
14e703edb2ab
use GraphBuilderPlugins for method substitutions, intrinsics and snippets (GRAAL-982)
Doug Simon <doug.simon@oracle.com>
parents:
18401
diff
changeset
|
75 FROM_WORDBASE, |
8492
286a49d423c9
-Snippetization of CMS WriteBarriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
7710
diff
changeset
|
76 FROM_ARRAY, |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
77 TO_OBJECT, |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
78 TO_RAW_VALUE, |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
79 } |
7521
d4bc143c575a
replaced use of <br> in javadoc with <p>
Doug Simon <doug.simon@oracle.com>
parents:
7303
diff
changeset
|
80 // @formatter:on |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
81 |
11277
e75e8ffdf87c
Made Word.box() private: Outside users should use the different signed() and unsigned() methods to ensure proper expansion of 32-bit values on 64-bit systems.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
10828
diff
changeset
|
82 /* |
e75e8ffdf87c
Made Word.box() private: Outside users should use the different signed() and unsigned() methods to ensure proper expansion of 32-bit values on 64-bit systems.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
10828
diff
changeset
|
83 * Outside users should use the different signed() and unsigned() methods to ensure proper |
e75e8ffdf87c
Made Word.box() private: Outside users should use the different signed() and unsigned() methods to ensure proper expansion of 32-bit values on 64-bit systems.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
10828
diff
changeset
|
84 * expansion of 32-bit values on 64-bit systems. |
e75e8ffdf87c
Made Word.box() private: Outside users should use the different signed() and unsigned() methods to ensure proper expansion of 32-bit values on 64-bit systems.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
10828
diff
changeset
|
85 */ |
e75e8ffdf87c
Made Word.box() private: Outside users should use the different signed() and unsigned() methods to ensure proper expansion of 32-bit values on 64-bit systems.
Christian Wimmer <christian.wimmer@oracle.com>
parents:
10828
diff
changeset
|
86 private static Word box(long val) { |
8472
f71fec3fadae
made method substitutions for Thread be interpretable
Doug Simon <doug.simon@oracle.com>
parents:
8451
diff
changeset
|
87 return HostedWord.boxLong(val); |
7300
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 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
90 protected abstract long unbox(); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
91 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
92 private static Word intParam(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
93 return box(val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
94 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
95 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
96 /** |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
97 * 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
|
98 * unsigned zero. |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
99 * |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
100 * @return the constant 0. |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
101 */ |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
102 @Operation(opcode = Opcode.ZERO) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
103 public static Word zero() { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
104 return box(0L); |
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 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
107 /** |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
108 * 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
|
109 * 64-bit value (in contrast to the semantics of a Java long). |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
110 * |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
111 * @param val a 64 bit unsigned value |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
112 * @return the value cast to Word |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
113 */ |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
114 @Operation(opcode = Opcode.FROM_UNSIGNED) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
115 public static Word unsigned(long val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
116 return box(val); |
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 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
119 /** |
13504
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
120 * Unsafe conversion from a Java long value to a {@link PointerBase pointer}. The parameter is |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
121 * treated as an unsigned 64-bit value (in contrast to the semantics of a Java long). |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
122 * |
13504
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
123 * @param val a 64 bit unsigned value |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
124 * @return the value cast to PointerBase |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
125 */ |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
126 @Operation(opcode = Opcode.FROM_UNSIGNED) |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
127 @SuppressWarnings("unchecked") |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
128 public static <T extends PointerBase> T pointer(long val) { |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
129 return (T) box(val); |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
130 } |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
131 |
5aaae6e76a2a
Utility method to convert a long to a pointer
Christian Wimmer <christian.wimmer@oracle.com>
parents:
13130
diff
changeset
|
132 /** |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
133 * 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
|
134 * 32-bit value (in contrast to the semantics of a Java int). |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
135 * |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
136 * @param val a 32 bit unsigned value |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
137 * @return the value cast to Word |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
138 */ |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
139 @Operation(opcode = Opcode.FROM_UNSIGNED) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
140 public static Word unsigned(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
141 return box(val & 0xffffffffL); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
142 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
143 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
144 /** |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
145 * 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
|
146 * 64-bit value (unchanged semantics of a Java long). |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
147 * |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
148 * @param val a 64 bit signed value |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
149 * @return the value cast to Word |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
150 */ |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
151 @Operation(opcode = Opcode.FROM_SIGNED) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
152 public static Word signed(long val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
153 return box(val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
154 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
155 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
156 /** |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
157 * 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
|
158 * 32-bit value (unchanged semantics of a Java int). |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
159 * |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
160 * @param val a 32 bit signed value |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
161 * @return the value cast to Word |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
162 */ |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
163 @Operation(opcode = Opcode.FROM_SIGNED) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
164 public static Word signed(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
165 return box(val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
166 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
167 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
168 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
169 @Operation(opcode = Opcode.TO_RAW_VALUE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
170 public long rawValue() { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
171 return unbox(); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
172 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
173 |
19791
14e703edb2ab
use GraphBuilderPlugins for method substitutions, intrinsics and snippets (GRAAL-982)
Doug Simon <doug.simon@oracle.com>
parents:
18401
diff
changeset
|
174 @Operation(opcode = Opcode.FROM_WORDBASE) |
14e703edb2ab
use GraphBuilderPlugins for method substitutions, intrinsics and snippets (GRAAL-982)
Doug Simon <doug.simon@oracle.com>
parents:
18401
diff
changeset
|
175 public static native Word fromWordBase(WordBase val); |
14e703edb2ab
use GraphBuilderPlugins for method substitutions, intrinsics and snippets (GRAAL-982)
Doug Simon <doug.simon@oracle.com>
parents:
18401
diff
changeset
|
176 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
177 @Operation(opcode = Opcode.FROM_OBJECT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
178 public static native Pointer fromObject(Object val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
179 |
8492
286a49d423c9
-Snippetization of CMS WriteBarriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
7710
diff
changeset
|
180 @Operation(opcode = Opcode.FROM_ARRAY) |
286a49d423c9
-Snippetization of CMS WriteBarriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
7710
diff
changeset
|
181 public static native Pointer fromArray(Object oop, Object location); |
286a49d423c9
-Snippetization of CMS WriteBarriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
7710
diff
changeset
|
182 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
183 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
184 @Operation(opcode = Opcode.TO_OBJECT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
185 public native Object toObject(); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
186 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
187 @Override |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
188 @Operation(node = AddNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
189 public Word add(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
190 return add((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 |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
194 @Operation(node = AddNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
195 public Word add(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
196 return add((Word) 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 @Override |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
200 @Operation(node = AddNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
201 public Word add(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
202 return add(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
203 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
204 |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
205 @Operation(node = AddNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
206 public Word add(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
207 return box(unbox() + val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
208 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
209 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
210 @Override |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
211 @Operation(node = SubNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
212 public Word subtract(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
213 return subtract((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 |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
217 @Operation(node = SubNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
218 public Word subtract(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
219 return subtract((Word) 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 @Override |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
223 @Operation(node = SubNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
224 public Word subtract(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
225 return subtract(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
226 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
227 |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
228 @Operation(node = SubNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
229 public Word subtract(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
230 return box(unbox() - val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
231 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
232 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
233 @Override |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
234 @Operation(node = MulNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
235 public Word multiply(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
236 return multiply((Word) 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 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
239 @Override |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
240 @Operation(node = MulNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
241 public Word multiply(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
242 return multiply((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
243 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
244 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
245 @Override |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
246 @Operation(node = MulNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
247 public Word multiply(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
248 return multiply(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
249 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
250 |
17197
ec35bb4eccb8
Add support for other data types to integer arithmetic nodes.
Roland Schatz <roland.schatz@oracle.com>
parents:
15836
diff
changeset
|
251 @Operation(node = MulNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
252 public Word multiply(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
253 return box(unbox() * val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
254 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
255 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
256 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
257 @Operation(node = IntegerDivNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
258 public Word signedDivide(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
259 return signedDivide((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
260 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
261 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
262 @Override |
7303
7952e3cfa6ed
Fix wrong @Operation annotations
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7300
diff
changeset
|
263 @Operation(node = IntegerDivNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
264 public Word signedDivide(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
265 return signedDivide(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
266 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
267 |
7303
7952e3cfa6ed
Fix wrong @Operation annotations
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7300
diff
changeset
|
268 @Operation(node = IntegerDivNode.class) |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
269 public Word signedDivide(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
270 return box(unbox() / val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
271 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
272 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
273 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
274 @Operation(node = UnsignedDivNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
275 public Word unsignedDivide(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
276 return unsignedDivide((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
277 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
278 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
279 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
280 @Operation(node = UnsignedDivNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
281 public Word unsignedDivide(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
282 return signedDivide(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
283 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
284 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
285 @Operation(node = UnsignedDivNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
286 public Word unsignedDivide(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
287 return box(UnsignedMath.divide(unbox(), val.unbox())); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
288 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
289 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
290 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
291 @Operation(node = IntegerRemNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
292 public Word signedRemainder(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
293 return signedRemainder((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
294 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
295 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
296 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
297 @Operation(node = IntegerRemNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
298 public Word signedRemainder(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
299 return signedRemainder(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
300 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
301 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
302 @Operation(node = IntegerRemNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
303 public Word signedRemainder(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
304 return box(unbox() % val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
305 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
306 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
307 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
308 @Operation(node = UnsignedRemNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
309 public Word unsignedRemainder(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
310 return unsignedRemainder((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
311 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
312 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
313 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
314 @Operation(node = UnsignedRemNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
315 public Word unsignedRemainder(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
316 return signedRemainder(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
317 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
318 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
319 @Operation(node = UnsignedRemNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
320 public Word unsignedRemainder(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
321 return box(UnsignedMath.remainder(unbox(), val.unbox())); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
322 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
323 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
324 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
325 @Operation(node = LeftShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
326 public Word shiftLeft(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
327 return shiftLeft((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
328 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
329 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
330 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
331 @Operation(node = LeftShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
332 public Word shiftLeft(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
333 return shiftLeft(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
334 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
335 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
336 @Operation(node = LeftShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
337 public Word shiftLeft(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
338 return box(unbox() << val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
339 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
340 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
341 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
342 @Operation(node = RightShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
343 public Word signedShiftRight(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
344 return signedShiftRight((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
345 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
346 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
347 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
348 @Operation(node = RightShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
349 public Word signedShiftRight(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
350 return signedShiftRight(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
351 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
352 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
353 @Operation(node = RightShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
354 public Word signedShiftRight(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
355 return box(unbox() >> val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
356 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
357 |
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 = UnsignedRightShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
360 public Word unsignedShiftRight(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
361 return unsignedShiftRight((Word) 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 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
365 @Operation(node = UnsignedRightShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
366 public Word unsignedShiftRight(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
367 return unsignedShiftRight(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
368 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
369 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
370 @Operation(node = UnsignedRightShiftNode.class, rightOperandIsInt = true) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
371 public Word unsignedShiftRight(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
372 return box(unbox() >>> val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
373 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
374 |
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 = AndNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
377 public Word and(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
378 return and((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 = AndNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
383 public Word and(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
384 return and((Word) 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 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
388 @Operation(node = AndNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
389 public Word and(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
390 return and(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
391 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
392 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
393 @Operation(node = AndNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
394 public Word and(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
395 return box(unbox() & val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
396 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
397 |
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 = OrNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
400 public Word or(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
401 return or((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 = OrNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
406 public Word or(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
407 return or((Word) 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 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
411 @Operation(node = OrNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
412 public Word or(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
413 return or(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
414 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
415 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
416 @Operation(node = OrNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
417 public Word or(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
418 return box(unbox() | val.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 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
422 @Operation(node = XorNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
423 public Word xor(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
424 return xor((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
425 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
426 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
427 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
428 @Operation(node = XorNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
429 public Word xor(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
430 return xor((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
431 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
432 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
433 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
434 @Operation(node = XorNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
435 public Word xor(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
436 return xor(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
437 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
438 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
439 @Operation(node = XorNode.class) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
440 public Word xor(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
441 return box(unbox() ^ val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
442 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
443 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
444 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
445 @Operation(opcode = Opcode.NOT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
446 public Word not() { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
447 return box(~unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
448 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
449 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
450 @Override |
7701
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.EQ) |
13130
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
452 public boolean equal(ComparableWord val) { |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
453 return equal((Word) val); |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
454 } |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
455 |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
456 @Override |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
457 @Operation(opcode = Opcode.COMPARISON, condition = Condition.EQ) |
7701
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
458 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
|
459 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
|
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 @Override |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
463 @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
|
464 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
|
465 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
|
466 } |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
467 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
468 @Override |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
469 @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
|
470 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
|
471 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
|
472 } |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
473 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
474 @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
|
475 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
|
476 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
|
477 } |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
478 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
479 @Override |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
480 @Operation(opcode = Opcode.COMPARISON, condition = Condition.NE) |
13130
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
481 public boolean notEqual(ComparableWord val) { |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
482 return notEqual((Word) val); |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
483 } |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
484 |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
485 @Override |
103a0003db01
Introduce ComparableWord and PointerBase into the Word type hierarchy
Christian Wimmer <christian.wimmer@oracle.com>
parents:
12436
diff
changeset
|
486 @Operation(opcode = Opcode.COMPARISON, condition = Condition.NE) |
7701
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
487 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
|
488 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
|
489 } |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
490 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
491 @Override |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
492 @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
|
493 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
|
494 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
|
495 } |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
496 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
497 @Override |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
498 @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
|
499 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
|
500 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
|
501 } |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
502 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
503 @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
|
504 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
|
505 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
|
506 } |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
507 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
508 @Override |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
509 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
510 public boolean lessThan(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
511 return lessThan((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
512 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
513 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
514 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
515 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
516 public boolean lessThan(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
517 return lessThan(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
518 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
519 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
520 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
521 public boolean lessThan(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
522 return unbox() < val.unbox(); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
523 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
524 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
525 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
526 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
527 public boolean lessOrEqual(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
528 return lessOrEqual((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
529 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
530 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
531 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
532 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
533 public boolean lessOrEqual(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
534 return lessOrEqual(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
535 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
536 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
537 @Operation(opcode = Opcode.COMPARISON, condition = Condition.LE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
538 public boolean lessOrEqual(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
539 return unbox() <= val.unbox(); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
540 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
541 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
542 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
543 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
544 public boolean greaterThan(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
545 return greaterThan((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
546 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
547 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
548 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
549 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
550 public boolean greaterThan(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
551 return greaterThan(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
552 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
553 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
554 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
555 public boolean greaterThan(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
556 return unbox() > val.unbox(); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
557 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
558 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
559 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
560 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
561 public boolean greaterOrEqual(Signed val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
562 return greaterOrEqual((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
563 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
564 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
565 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
566 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
567 public boolean greaterOrEqual(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
568 return greaterOrEqual(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
569 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
570 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
571 @Operation(opcode = Opcode.COMPARISON, condition = Condition.GE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
572 public boolean greaterOrEqual(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
573 return unbox() >= val.unbox(); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
574 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
575 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
576 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
577 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
578 public boolean belowThan(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
579 return belowThan((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
580 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
581 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
582 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
583 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
584 public boolean belowThan(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
585 return belowThan(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
586 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
587 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
588 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
589 public boolean belowThan(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
590 return UnsignedMath.belowThan(unbox(), val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
591 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
592 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
593 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
594 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
595 public boolean belowOrEqual(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
596 return belowOrEqual((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
597 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
598 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
599 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
600 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
601 public boolean belowOrEqual(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
602 return belowOrEqual(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
603 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
604 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
605 @Operation(opcode = Opcode.COMPARISON, condition = Condition.BE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
606 public boolean belowOrEqual(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
607 return UnsignedMath.belowOrEqual(unbox(), val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
608 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
609 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
610 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
611 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
612 public boolean aboveThan(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
613 return aboveThan((Word) val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
614 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
615 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
616 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
617 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
618 public boolean aboveThan(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
619 return aboveThan(intParam(val)); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
620 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
621 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
622 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AT) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
623 public boolean aboveThan(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
624 return UnsignedMath.aboveThan(unbox(), val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
625 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
626 |
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.COMPARISON, condition = Condition.AE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
629 public boolean aboveOrEqual(Unsigned val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
630 return aboveOrEqual((Word) val); |
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.COMPARISON, condition = Condition.AE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
635 public boolean aboveOrEqual(int val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
636 return aboveOrEqual(intParam(val)); |
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 @Operation(opcode = Opcode.COMPARISON, condition = Condition.AE) |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
640 public boolean aboveOrEqual(Word val) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
641 return UnsignedMath.aboveOrEqual(unbox(), val.unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
642 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
643 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
644 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
645 @Operation(opcode = Opcode.READ_POINTER) |
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
|
646 public byte readByte(WordBase offset, LocationIdentity locationIdentity) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
647 return unsafe.getByte(add((Word) offset).unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
648 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
649 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
650 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
651 @Operation(opcode = Opcode.READ_POINTER) |
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
|
652 public char readChar(WordBase offset, LocationIdentity locationIdentity) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
653 return unsafe.getChar(add((Word) offset).unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
654 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
655 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
656 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
657 @Operation(opcode = Opcode.READ_POINTER) |
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
|
658 public short readShort(WordBase offset, LocationIdentity locationIdentity) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
659 return unsafe.getShort(add((Word) offset).unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
660 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
661 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
662 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
663 @Operation(opcode = Opcode.READ_POINTER) |
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
|
664 public int readInt(WordBase offset, LocationIdentity locationIdentity) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
665 return unsafe.getInt(add((Word) offset).unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
666 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
667 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
668 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
669 @Operation(opcode = Opcode.READ_POINTER) |
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
|
670 public long readLong(WordBase offset, LocationIdentity locationIdentity) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
671 return unsafe.getLong(add((Word) offset).unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
672 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
673 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
674 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
675 @Operation(opcode = Opcode.READ_POINTER) |
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
|
676 public float readFloat(WordBase offset, LocationIdentity locationIdentity) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
677 return unsafe.getFloat(add((Word) offset).unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
678 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
679 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
680 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
681 @Operation(opcode = Opcode.READ_POINTER) |
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
|
682 public double readDouble(WordBase offset, LocationIdentity locationIdentity) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
683 return unsafe.getDouble(add((Word) offset).unbox()); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
684 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
685 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
686 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
687 @Operation(opcode = Opcode.READ_POINTER) |
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
|
688 public Word readWord(WordBase offset, LocationIdentity locationIdentity) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
689 return box(unsafe.getAddress(add((Word) offset).unbox())); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
690 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
691 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
692 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
693 @Operation(opcode = Opcode.READ_POINTER) |
12436
39308acea2f7
revert Unsafe.getObject hack to read uncompressed pointers
twisti
parents:
11277
diff
changeset
|
694 public native Object readObject(WordBase offset, LocationIdentity locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
695 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
696 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
697 @Operation(opcode = Opcode.READ_POINTER) |
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
|
698 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
|
699 return readByte(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
700 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
701 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
702 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
703 @Operation(opcode = Opcode.READ_POINTER) |
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
|
704 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
|
705 return readChar(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
706 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
707 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
708 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
709 @Operation(opcode = Opcode.READ_POINTER) |
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
|
710 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
|
711 return readShort(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
712 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
713 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
714 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
715 @Operation(opcode = Opcode.READ_POINTER) |
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
|
716 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
|
717 return readInt(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
718 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
719 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
720 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
721 @Operation(opcode = Opcode.READ_POINTER) |
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
|
722 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
|
723 return readLong(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
724 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
725 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
726 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
727 @Operation(opcode = Opcode.READ_POINTER) |
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
|
728 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
|
729 return readFloat(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
730 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
731 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
732 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
733 @Operation(opcode = Opcode.READ_POINTER) |
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
|
734 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
|
735 return readDouble(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
736 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
737 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
738 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
739 @Operation(opcode = Opcode.READ_POINTER) |
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
|
740 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
|
741 return readWord(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
742 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
743 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
744 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
745 @Operation(opcode = Opcode.READ_POINTER) |
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
|
746 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
|
747 return readObject(signed(offset), locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
748 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
749 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
750 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
751 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
752 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
|
753 unsafe.putByte(add((Word) offset).unbox(), val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
754 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
755 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
756 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
757 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
758 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
|
759 unsafe.putChar(add((Word) offset).unbox(), val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
760 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
761 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
762 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
763 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
764 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
|
765 unsafe.putShort(add((Word) offset).unbox(), val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
766 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
767 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
768 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
769 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
770 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
|
771 unsafe.putInt(add((Word) offset).unbox(), val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
772 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
773 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
774 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
775 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
776 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
|
777 unsafe.putLong(add((Word) offset).unbox(), val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
778 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
779 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
780 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
781 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
782 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
|
783 unsafe.putFloat(add((Word) offset).unbox(), val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
784 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
785 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
786 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
787 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
788 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
|
789 unsafe.putDouble(add((Word) offset).unbox(), val); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
790 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
791 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
792 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
793 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
794 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
|
795 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
|
796 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
797 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
798 @Override |
10759
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
799 @Operation(opcode = Opcode.INITIALIZE) |
14101
2ec05c3f773b
fix overzeroing of new storage, refactor zeroing and unroll zeroing of small arrays
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13504
diff
changeset
|
800 public void initializeLong(WordBase offset, long val, LocationIdentity locationIdentity) { |
2ec05c3f773b
fix overzeroing of new storage, refactor zeroing and unroll zeroing of small arrays
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13504
diff
changeset
|
801 unsafe.putLong(add((Word) offset).unbox(), val); |
10759
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
802 } |
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
803 |
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
804 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
805 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
806 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
|
807 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
808 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
809 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
810 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
|
811 writeByte(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
812 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
813 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
814 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
815 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
816 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
|
817 writeChar(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
818 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
819 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
820 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
821 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
822 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
|
823 writeShort(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
824 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
825 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
826 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
827 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
828 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
|
829 writeInt(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
830 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
831 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
832 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
833 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
834 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
|
835 writeLong(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
836 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
837 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
838 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
839 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
840 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
|
841 writeFloat(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
842 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
843 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
844 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
845 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
846 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
|
847 writeDouble(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
848 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
849 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
850 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
851 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
852 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
|
853 writeWord(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
854 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
855 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
856 @Override |
10759
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
857 @Operation(opcode = Opcode.INITIALIZE) |
14101
2ec05c3f773b
fix overzeroing of new storage, refactor zeroing and unroll zeroing of small arrays
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13504
diff
changeset
|
858 public void initializeLong(int offset, long val, LocationIdentity locationIdentity) { |
2ec05c3f773b
fix overzeroing of new storage, refactor zeroing and unroll zeroing of small arrays
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
13504
diff
changeset
|
859 initializeLong(signed(offset), val, locationIdentity); |
10759
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
860 } |
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
861 |
7f186f1486f7
Use initializing write node in object clone snippets.
Roland Schatz <roland.schatz@oracle.com>
parents:
10546
diff
changeset
|
862 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
863 @Operation(opcode = Opcode.WRITE_POINTER) |
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
|
864 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
|
865 writeObject(signed(offset), val, locationIdentity); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
866 } |
7701
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
867 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
868 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
869 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
870 public byte readByte(WordBase offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
871 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
|
872 } |
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 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
875 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
876 public char readChar(WordBase offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
877 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
|
878 } |
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 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
881 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
882 public short readShort(WordBase offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
883 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
|
884 } |
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 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
887 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
888 public int readInt(WordBase offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
889 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
|
890 } |
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 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
893 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
894 public long readLong(WordBase offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
895 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
|
896 } |
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 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
899 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
900 public float readFloat(WordBase offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
901 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
|
902 } |
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 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
905 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
906 public double readDouble(WordBase offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
907 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
|
908 } |
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 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
911 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
912 public Word readWord(WordBase offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
913 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
|
914 } |
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 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
917 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
918 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
|
919 |
10800
69e305a5cf09
Introduce new read opcode that allows compressed oops and read barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10759
diff
changeset
|
920 @Operation(opcode = Opcode.READ_HEAP) |
14945
b14cb2d9253d
Make compression and uncompression explicit in the high level graph.
Roland Schatz <roland.schatz@oracle.com>
parents:
14101
diff
changeset
|
921 public native Object readObject(WordBase offset, BarrierType barrierType); |
10546
a6d6e6afd897
Introduce ReadCompressed opcode in WordTypeRewriter
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9792
diff
changeset
|
922 |
a6d6e6afd897
Introduce ReadCompressed opcode in WordTypeRewriter
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9792
diff
changeset
|
923 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
924 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
925 public byte readByte(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
926 return readByte(signed(offset)); |
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 |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
930 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
931 public char readChar(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
932 return readChar(signed(offset)); |
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 |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
936 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
937 public short readShort(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
938 return readShort(signed(offset)); |
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 |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
942 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
943 public int readInt(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
944 return readInt(signed(offset)); |
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 |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
948 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
949 public long readLong(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
950 return readLong(signed(offset)); |
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 |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
954 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
955 public float readFloat(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
956 return readFloat(signed(offset)); |
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 |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
960 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
961 public double readDouble(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
962 return readDouble(signed(offset)); |
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 |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
966 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
967 public Word readWord(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
968 return readWord(signed(offset)); |
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 |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
972 @Operation(opcode = Opcode.READ_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
973 public Object readObject(int offset) { |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
974 return readObject(signed(offset)); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
975 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
976 |
10800
69e305a5cf09
Introduce new read opcode that allows compressed oops and read barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10759
diff
changeset
|
977 @Operation(opcode = Opcode.READ_HEAP) |
14945
b14cb2d9253d
Make compression and uncompression explicit in the high level graph.
Roland Schatz <roland.schatz@oracle.com>
parents:
14101
diff
changeset
|
978 public Object readObject(int offset, BarrierType barrierType) { |
b14cb2d9253d
Make compression and uncompression explicit in the high level graph.
Roland Schatz <roland.schatz@oracle.com>
parents:
14101
diff
changeset
|
979 return readObject(signed(offset), barrierType); |
10546
a6d6e6afd897
Introduce ReadCompressed opcode in WordTypeRewriter
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9792
diff
changeset
|
980 } |
a6d6e6afd897
Introduce ReadCompressed opcode in WordTypeRewriter
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9792
diff
changeset
|
981 |
a6d6e6afd897
Introduce ReadCompressed opcode in WordTypeRewriter
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9792
diff
changeset
|
982 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
983 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
984 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
|
985 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
|
986 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
987 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
988 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
989 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
990 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
|
991 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
|
992 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
993 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
994 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
995 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
996 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
|
997 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
|
998 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
999 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1000 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1001 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1002 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
|
1003 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
|
1004 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1005 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1006 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1007 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1008 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
|
1009 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
|
1010 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1011 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1012 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1013 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1014 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
|
1015 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
|
1016 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1017 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1018 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1019 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1020 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
|
1021 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
|
1022 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1023 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1024 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1025 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1026 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
|
1027 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
|
1028 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1029 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1030 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1031 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1032 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
|
1033 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1034 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1035 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1036 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
|
1037 writeByte(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1038 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1039 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1040 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1041 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1042 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
|
1043 writeChar(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1044 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1045 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1046 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1047 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1048 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
|
1049 writeShort(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1050 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1051 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1052 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1053 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1054 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
|
1055 writeInt(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1056 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1057 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1058 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1059 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1060 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
|
1061 writeLong(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1062 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1063 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1064 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1065 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1066 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
|
1067 writeFloat(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1068 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1069 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1070 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1071 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1072 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
|
1073 writeDouble(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1074 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1075 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1076 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1077 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1078 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
|
1079 writeWord(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1080 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1081 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1082 @Override |
15836
faebb143dab2
Introduce class BarrieredAccess for low-level object access with read and write barriers
Christian Wimmer <christian.wimmer@oracle.com>
parents:
15291
diff
changeset
|
1083 @Operation(opcode = Opcode.WRITE_POINTER) |
7904
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1084 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
|
1085 writeObject(signed(offset), val); |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1086 } |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1087 |
c8f2002d2194
reintroduce default Word read/write operations, more tests
Lukas Stadler <lukas.stadler@jku.at>
parents:
7903
diff
changeset
|
1088 @Override |
7701
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
1089 public final boolean equals(Object obj) { |
21543
93c50cefb9e8
moved GraalInternalError to com.oracle.jvmci.common and renamed it to JVMCIError (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21541
diff
changeset
|
1090 throw JVMCIError.shouldNotReachHere("equals must not be called on words"); |
7701
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
1091 } |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
1092 |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
1093 @Override |
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
1094 public final int hashCode() { |
21543
93c50cefb9e8
moved GraalInternalError to com.oracle.jvmci.common and renamed it to JVMCIError (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21541
diff
changeset
|
1095 throw JVMCIError.shouldNotReachHere("hashCode must not be called on words"); |
7701
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
1096 } |
7710
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1097 |
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1098 @Override |
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1099 public String toString() { |
21543
93c50cefb9e8
moved GraalInternalError to com.oracle.jvmci.common and renamed it to JVMCIError (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents:
21541
diff
changeset
|
1100 throw JVMCIError.shouldNotReachHere("toString must not be called on words"); |
7710
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1101 } |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1102 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1103 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1104 final class HostedWord extends Word { |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
1105 |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1106 private static final int SMALL_FROM = -1; |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1107 private static final int SMALL_TO = 100; |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1108 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1109 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
|
1110 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1111 static { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1112 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
|
1113 smallCache[i - SMALL_FROM] = new HostedWord(i); |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1114 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1115 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1116 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1117 private final long rawValue; |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1118 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1119 private HostedWord(long rawValue) { |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7521
diff
changeset
|
1120 this.rawValue = rawValue; |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1121 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1122 |
8472
f71fec3fadae
made method substitutions for Thread be interpretable
Doug Simon <doug.simon@oracle.com>
parents:
8451
diff
changeset
|
1123 protected static Word boxLong(long val) { |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1124 if (val >= SMALL_FROM && val <= SMALL_TO) { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1125 return smallCache[(int) val - SMALL_FROM]; |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1126 } |
7701
47467b2c3fc5
Use equal() and notEqual() instead of == and != to compare words
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7530
diff
changeset
|
1127 return new HostedWord(val); |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1128 } |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1129 |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1130 @Override |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1131 protected long unbox() { |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1132 return rawValue; |
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1133 } |
7710
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1134 |
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1135 @Override |
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1136 public String toString() { |
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1137 return "Word<" + rawValue + ">"; |
09dd65d5e474
Implement toString() for Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
7701
diff
changeset
|
1138 } |
7300
2912b72d840a
More complete and reusable Word type
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff
changeset
|
1139 } |