@Override protected AbstractObjectStamp copyWith(ResolvedJavaType type, boolean exactType, boolean nonNull, boolean alwaysNull) { return new SubstrateNarrowOopStamp(type, exactType, nonNull, alwaysNull, getEncoding()); }
@Override public Constant readConstant(MemoryAccessProvider memoryAccessProvider, Constant base, long displacement) { JavaConstant constant = ((SubstrateMemoryAccessProvider) memoryAccessProvider).readNarrowObjectConstant(base, displacement, getEncoding()); assert constant != null && ((CompressibleConstant) constant).isCompressed(); return constant; }
private SubstrateNarrowOopStamp(ResolvedJavaType type, boolean exactType, boolean nonNull, boolean alwaysNull, CompressEncoding encoding) { super(type, exactType, nonNull, alwaysNull, encoding); assert getEncoding().equals(ReferenceAccess.singleton().getCompressEncoding()) : "Using a non-default encoding is not supported: reference map support is needed."; }