comparison jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java @ 23366:45168ac6d3bc

Merge.
author Roland Schatz <roland.schatz@oracle.com>
date Fri, 29 Apr 2016 11:10:18 +0200
parents dafcbf1bb9cd
children 19855d029fc0
comparison
equal deleted inserted replaced
23365:30af491f98c5 23366:45168ac6d3bc
149 return ret; 149 return ret;
150 } 150 }
151 151
152 @Override 152 @Override
153 public JavaConstant readUnsafeConstant(JavaKind kind, JavaConstant baseConstant, long displacement) { 153 public JavaConstant readUnsafeConstant(JavaKind kind, JavaConstant baseConstant, long displacement) {
154 if (kind == null) {
155 throw new IllegalArgumentException();
156 }
154 if (kind == JavaKind.Object) { 157 if (kind == JavaKind.Object) {
155 Object o = readRawObject(baseConstant, displacement, runtime.getConfig().useCompressedOops); 158 Object o = readRawObject(baseConstant, displacement, runtime.getConfig().useCompressedOops);
156 return HotSpotObjectConstantImpl.forObject(o); 159 return HotSpotObjectConstantImpl.forObject(o);
157 } else { 160 } else {
158 int bits = kind.getByteCount() * Byte.SIZE; 161 int bits = kind.getByteCount() * Byte.SIZE;
189 } 192 }
190 } 193 }
191 194
192 @Override 195 @Override
193 public JavaConstant readObjectConstant(Constant base, long displacement) { 196 public JavaConstant readObjectConstant(Constant base, long displacement) {
197 if (base instanceof HotSpotObjectConstantImpl) {
198 Object o = readRawObject(base, displacement, runtime.getConfig().useCompressedOops);
199 return HotSpotObjectConstantImpl.forObject(o);
200 }
194 if (!isValidObjectFieldDisplacement(base, displacement)) { 201 if (!isValidObjectFieldDisplacement(base, displacement)) {
195 return null; 202 return null;
196 } 203 }
197 return HotSpotObjectConstantImpl.forObject(readRawObject(base, displacement, false)); 204 return HotSpotObjectConstantImpl.forObject(readRawObject(base, displacement, false));
198 } 205 }