< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java

Print this page




 215         }
 216         return HotSpotMetaspaceConstantImpl.forMetaspaceObject(klass, false);
 217     }
 218 
 219     @Override
 220     public Constant readNarrowKlassPointerConstant(Constant base, long displacement, CompressEncoding encoding) {
 221         HotSpotResolvedObjectTypeImpl klass = readKlass(base, displacement, true);
 222         if (klass == null) {
 223             return HotSpotCompressedNullConstant.COMPRESSED_NULL;
 224         }
 225         return HotSpotMetaspaceConstantImpl.forMetaspaceObject(klass, true);
 226     }
 227 
 228     @Override
 229     public Constant readMethodPointerConstant(Constant base, long displacement) {
 230         assert (base instanceof HotSpotObjectConstantImpl);
 231         Object baseObject = ((HotSpotObjectConstantImpl) base).object();
 232         HotSpotResolvedJavaMethodImpl method = runtime.getCompilerToVM().getResolvedJavaMethod(baseObject, displacement);
 233         return HotSpotMetaspaceConstantImpl.forMetaspaceObject(method, false);
 234     }
 235 
 236     @Override
 237     public Constant readSymbolConstant(Constant base, long displacement) {
 238         int bits = runtime.getConfig().symbolPointerSize * Byte.SIZE;
 239         long pointer = readRawValue(base, displacement, bits);
 240         if (pointer == 0) {
 241             return JavaConstant.NULL_POINTER;
 242         } else {
 243             String symbol = runtime.getCompilerToVM().getSymbol(pointer);
 244             return new HotSpotSymbol(symbol, pointer).asConstant();
 245         }
 246     }
 247 }


 215         }
 216         return HotSpotMetaspaceConstantImpl.forMetaspaceObject(klass, false);
 217     }
 218 
 219     @Override
 220     public Constant readNarrowKlassPointerConstant(Constant base, long displacement, CompressEncoding encoding) {
 221         HotSpotResolvedObjectTypeImpl klass = readKlass(base, displacement, true);
 222         if (klass == null) {
 223             return HotSpotCompressedNullConstant.COMPRESSED_NULL;
 224         }
 225         return HotSpotMetaspaceConstantImpl.forMetaspaceObject(klass, true);
 226     }
 227 
 228     @Override
 229     public Constant readMethodPointerConstant(Constant base, long displacement) {
 230         assert (base instanceof HotSpotObjectConstantImpl);
 231         Object baseObject = ((HotSpotObjectConstantImpl) base).object();
 232         HotSpotResolvedJavaMethodImpl method = runtime.getCompilerToVM().getResolvedJavaMethod(baseObject, displacement);
 233         return HotSpotMetaspaceConstantImpl.forMetaspaceObject(method, false);
 234     }












 235 }
< prev index next >