src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ea/EATestBase.java
equal
deleted
inserted
replaced
84 } |
84 } |
85 |
85 |
86 @Override |
86 @Override |
87 public int hashCode() { |
87 public int hashCode() { |
88 return x + 13 * y; |
88 return x + 13 * y; |
|
89 } |
|
90 |
|
91 public static final long fieldOffset1; |
|
92 public static final long fieldOffset2; |
|
93 public static final boolean firstFieldIsX; |
|
94 |
|
95 static { |
|
96 try { |
|
97 long localFieldOffset1 = UNSAFE.objectFieldOffset(EATestBase.TestClassInt.class.getField("x")); |
|
98 // Make the fields 8 byte aligned (Required for testing setLong on Architectures |
|
99 // which does not support unaligned memory access |
|
100 if (localFieldOffset1 % 8 == 0) { |
|
101 fieldOffset1 = localFieldOffset1; |
|
102 fieldOffset2 = UNSAFE.objectFieldOffset(EATestBase.TestClassInt.class.getField("y")); |
|
103 firstFieldIsX = true; |
|
104 } else { |
|
105 fieldOffset1 = UNSAFE.objectFieldOffset(EATestBase.TestClassInt.class.getField("y")); |
|
106 fieldOffset2 = UNSAFE.objectFieldOffset(EATestBase.TestClassInt.class.getField("z")); |
|
107 firstFieldIsX = false; |
|
108 } |
|
109 assert fieldOffset2 == fieldOffset1 + 4; |
|
110 } catch (Exception e) { |
|
111 throw new RuntimeException(e); |
|
112 } |
|
113 } |
|
114 |
|
115 public void setFirstField(int v) { |
|
116 if (firstFieldIsX) { |
|
117 x = v; |
|
118 } else { |
|
119 y = v; |
|
120 } |
|
121 } |
|
122 |
|
123 public void setSecondField(int v) { |
|
124 if (firstFieldIsX) { |
|
125 y = v; |
|
126 } else { |
|
127 z = v; |
|
128 } |
89 } |
129 } |
90 } |
130 } |
91 |
131 |
92 public static class TestClassObject { |
132 public static class TestClassObject { |
93 public Object x; |
133 public Object x; |