< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HotSpotReplacementsUtil.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 136,158 ****
}
return read;
}
}
! public static ResolvedJavaType methodHolderClass(@Fold.InjectedParameter IntrinsicContext context) {
return context.getOriginalMethod().getDeclaringClass();
}
static ResolvedJavaType getType(@Fold.InjectedParameter IntrinsicContext context, String typeName) {
try {
UnresolvedJavaType unresolved = UnresolvedJavaType.create(typeName);
return unresolved.resolve(methodHolderClass(context));
} catch (LinkageError e) {
throw new GraalError(e);
}
}
static int getFieldOffset(ResolvedJavaType type, String fieldName) {
for (ResolvedJavaField field : type.getInstanceFields(true)) {
if (field.getName().equals(fieldName)) {
return field.getOffset();
}
--- 136,161 ----
}
return read;
}
}
! @Fold
! public static ResolvedJavaType methodHolderClass(@InjectedParameter IntrinsicContext context) {
return context.getOriginalMethod().getDeclaringClass();
}
+ @Fold
static ResolvedJavaType getType(@Fold.InjectedParameter IntrinsicContext context, String typeName) {
try {
UnresolvedJavaType unresolved = UnresolvedJavaType.create(typeName);
return unresolved.resolve(methodHolderClass(context));
} catch (LinkageError e) {
throw new GraalError(e);
}
}
+ @Fold
static int getFieldOffset(ResolvedJavaType type, String fieldName) {
for (ResolvedJavaField field : type.getInstanceFields(true)) {
if (field.getName().equals(fieldName)) {
return field.getOffset();
}
*** 582,592 ****
/**
* Calls {@link #arrayAllocationSize(int, int, int, int)} using an injected VM configuration
* object.
*/
! public static int arrayAllocationSize(int length, int headerSize, int log2ElementSize) {
return arrayAllocationSize(length, headerSize, log2ElementSize, objectAlignment(INJECTED_VMCONFIG));
}
/**
* Computes the size of the memory chunk allocated for an array. This size accounts for the
--- 585,595 ----
/**
* Calls {@link #arrayAllocationSize(int, int, int, int)} using an injected VM configuration
* object.
*/
! public static long arrayAllocationSize(int length, int headerSize, int log2ElementSize) {
return arrayAllocationSize(length, headerSize, log2ElementSize, objectAlignment(INJECTED_VMCONFIG));
}
/**
* Computes the size of the memory chunk allocated for an array. This size accounts for the
*** 598,610 ****
* @param log2ElementSize log2 of the size of an element in the array
* @param alignment the {@linkplain GraalHotSpotVMConfig#objectAlignment object alignment
* requirement}
* @return the size of the memory chunk
*/
! public static int arrayAllocationSize(int length, int headerSize, int log2ElementSize, int alignment) {
! int size = (length << log2ElementSize) + headerSize + (alignment - 1);
! int mask = ~(alignment - 1);
return size & mask;
}
@Fold
public static int instanceHeaderSize(@InjectedParameter GraalHotSpotVMConfig config) {
--- 601,613 ----
* @param log2ElementSize log2 of the size of an element in the array
* @param alignment the {@linkplain GraalHotSpotVMConfig#objectAlignment object alignment
* requirement}
* @return the size of the memory chunk
*/
! public static long arrayAllocationSize(int length, int headerSize, int log2ElementSize, int alignment) {
! long size = ((long) length << log2ElementSize) + headerSize + (alignment - 1);
! long mask = ~(alignment - 1);
return size & mask;
}
@Fold
public static int instanceHeaderSize(@InjectedParameter GraalHotSpotVMConfig config) {
*** 728,738 ****
ReplacementsUtil.staticAssert(offset != hubOffset(INJECTED_VMCONFIG), "Use loadHubIntrinsic instead of loadWordFromObject");
return loadWordFromObjectIntrinsic(object, offset, identity, getWordKind());
}
public static KlassPointer loadKlassFromObject(Object object, int offset, LocationIdentity identity) {
! ReplacementsUtil.staticAssert(offset != hubOffset(INJECTED_VMCONFIG), "Use loadHubIntrinsic instead of loadWordFromObject");
return loadKlassFromObjectIntrinsic(object, offset, identity, getWordKind());
}
/**
* Reads the value of a given register.
--- 731,741 ----
ReplacementsUtil.staticAssert(offset != hubOffset(INJECTED_VMCONFIG), "Use loadHubIntrinsic instead of loadWordFromObject");
return loadWordFromObjectIntrinsic(object, offset, identity, getWordKind());
}
public static KlassPointer loadKlassFromObject(Object object, int offset, LocationIdentity identity) {
! ReplacementsUtil.staticAssert(offset != hubOffset(INJECTED_VMCONFIG), "Use loadHubIntrinsic instead of loadKlassFromObject");
return loadKlassFromObjectIntrinsic(object, offset, identity, getWordKind());
}
/**
* Reads the value of a given register.
< prev index next >