src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/WordTypes.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/WordTypes.java Thu Nov 15 21:05:47 2018 +0100
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/WordTypes.java Thu Nov 15 09:04:07 2018 -0800
@@ -24,6 +24,8 @@
package org.graalvm.compiler.word;
+import static jdk.vm.ci.services.Services.IS_BUILDING_NATIVE_IMAGE;
+
import org.graalvm.compiler.core.common.type.Stamp;
import org.graalvm.compiler.core.common.type.StampFactory;
import org.graalvm.compiler.nodes.ValueNode;
@@ -78,7 +80,9 @@
this.objectAccessType = metaAccess.lookupJavaType(ObjectAccess.class);
this.barrieredAccessType = metaAccess.lookupJavaType(BarrieredAccess.class);
- Word.ensureInitialized();
+ if (!IS_BUILDING_NATIVE_IMAGE) {
+ Word.ensureInitialized();
+ }
this.wordImplType.initialize();
}
@@ -88,7 +92,7 @@
public boolean isWordOperation(ResolvedJavaMethod targetMethod) {
final boolean isWordFactory = wordFactoryType.equals(targetMethod.getDeclaringClass());
if (isWordFactory) {
- return true;
+ return !targetMethod.isConstructor();
}
final boolean isObjectAccess = objectAccessType.equals(targetMethod.getDeclaringClass());
final boolean isBarrieredAccess = barrieredAccessType.equals(targetMethod.getDeclaringClass());