< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotLIRGenerator.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2017, 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.

@@ -66,59 +66,70 @@
      *
      * @param constant
      * @return value of loaded address in register
      */
     default Value emitLoadObjectAddress(Constant constant) {
-        throw GraalError.unimplemented();
+        throw new GraalError("Emitting code to load an object address is not currently supported on %s", target().arch);
     }
 
     /**
      * Emits code for a {@link LoadConstantIndirectlyNode}.
      *
      * @param constant original constant
      * @param action action to perform on the metaspace object
      * @return Value of loaded address in register
      */
     default Value emitLoadMetaspaceAddress(Constant constant, HotSpotConstantLoadAction action) {
-        throw GraalError.unimplemented();
+        throw new GraalError("Emitting code to load a metaspace address is not currently supported on %s", target().arch);
     }
 
     /**
      * Emits code for a {@link GraalHotSpotVMConfigNode}.
      *
      * @param markId id of the value to load
      * @param kind type of the value to load
      * @return value of loaded global in register
      */
     default Value emitLoadConfigValue(int markId, LIRKind kind) {
-        throw GraalError.unimplemented();
+        throw new GraalError("Emitting code to load a config value is not currently supported on %s", target().arch);
     }
 
     /**
      * Emits code for a {@link ResolveConstantNode} to resolve a {@link HotSpotObjectConstant}.
      *
      * @param constant original constant
      * @param constantDescription a description of the string that need to be materialized (and
      *            interned) as java.lang.String, generated with {@link EncodedSymbolConstant}
      * @param frameState frame state for the runtime call
-     * @return Returns the address of the requested constant.
+     * @return the address of the requested constant.
      */
     default Value emitObjectConstantRetrieval(Constant constant, Value constantDescription, LIRFrameState frameState) {
-        throw GraalError.unimplemented();
+        throw new GraalError("Emitting code to resolve an object constant is not currently supported on %s", target().arch);
+    }
+
+    /**
+     * Emits code to resolve a dynamic constant.
+     *
+     * @param constant original constant
+     * @param frameState frame state for the runtime call
+     * @return the address of the requested constant.
+     */
+    default Value emitResolveDynamicInvoke(Constant constant, LIRFrameState frameState) {
+        throw new GraalError("Emitting code to resolve a dynamic constant is not currently supported on %s", target().arch);
     }
 
     /**
      * Emits code for a {@link ResolveConstantNode} to resolve a {@link HotSpotMetaspaceConstant}.
      *
      * @param constant original constant
      * @param constantDescription a symbolic description of the {@link HotSpotMetaspaceConstant}
      *            generated by {@link EncodedSymbolConstant}
      * @param frameState frame state for the runtime call
-     * @return Returns the address of the requested constant.
+     * @return the address of the requested constant.
      */
     default Value emitMetaspaceConstantRetrieval(Constant constant, Value constantDescription, LIRFrameState frameState) {
-        throw GraalError.unimplemented();
+        throw new GraalError("Emitting code to resolve a metaspace constant is not currently supported on %s", target().arch);
     }
 
     /**
      * Emits code for a {@link ResolveMethodAndLoadCountersNode} to resolve a
      * {@link HotSpotMetaspaceConstant} that represents a {@link ResolvedJavaMethod} and return the

@@ -127,14 +138,14 @@
      * @param method original constant
      * @param klassHint a klass in which the method is declared
      * @param methodDescription is symbolic description of the constant generated by
      *            {@link EncodedSymbolConstant}
      * @param frameState frame state for the runtime call
-     * @return Returns the address of the requested constant.
+     * @return the address of the requested constant.
      */
     default Value emitResolveMethodAndLoadCounters(Constant method, Value klassHint, Value methodDescription, LIRFrameState frameState) {
-        throw GraalError.unimplemented();
+        throw new GraalError("Emitting code to resolve a method and load counters is not currently supported on %s", target().arch);
     }
 
     /**
      * Emits code for a {@link ResolveConstantNode} to resolve a klass
      * {@link HotSpotMetaspaceConstant} and run static initializer.

@@ -142,23 +153,23 @@
      *
      * @param constant original constant
      * @param constantDescription a symbolic description of the {@link HotSpotMetaspaceConstant}
      *            generated by {@link EncodedSymbolConstant}
      * @param frameState frame state for the runtime call
-     * @return Returns the address of the requested constant.
+     * @return the address of the requested constant.
      */
     default Value emitKlassInitializationAndRetrieval(Constant constant, Value constantDescription, LIRFrameState frameState) {
-        throw GraalError.unimplemented();
+        throw new GraalError("Emitting code to initialize a class is not currently supported on %s", target().arch);
     }
 
     /**
      * Emits code for a {@link RandomSeedNode}.
      *
      * @return value of the counter
      */
     default Value emitRandomSeed() {
-        throw GraalError.unimplemented();
+        throw new GraalError("Emitting code to return a random seed is not currently supported on %s", target().arch);
     }
 
     /**
      * Gets a stack slot for a lock at a given lock nesting depth.
      */
< prev index next >