Mercurial > hg > graal-jvmci-8
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 } |