< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.processor/src/org/graalvm/compiler/replacements/processor/GeneratedPlugin.java

Print this page




 191             case DOUBLE:
 192                 return "Double";
 193             case VOID:
 194                 return "Void";
 195             case ARRAY:
 196             case TYPEVAR:
 197             case DECLARED:
 198                 return "Object";
 199             default:
 200                 throw new IllegalArgumentException(method.getReturnType().toString());
 201         }
 202     }
 203 
 204     protected static void constantArgument(AbstractProcessor processor, PrintWriter out, InjectedDependencies deps, int argIdx, TypeMirror type, int nodeIdx) {
 205         if (hasRawtypeWarning(type)) {
 206             out.printf("        @SuppressWarnings({\"rawtypes\"})\n");
 207         }
 208         out.printf("        %s arg%d;\n", getErasedType(type), argIdx);
 209         out.printf("        if (args[%d].isConstant()) {\n", nodeIdx);
 210         if (type.equals(processor.getType("jdk.vm.ci.meta.ResolvedJavaType"))) {
 211             out.printf("            arg%d = %s.asJavaType(args[%d].asConstant());\n", argIdx, deps.use(WellKnownDependency.CONSTANT_REFLECTION), nodeIdx);




 212         } else {
 213             switch (type.getKind()) {
 214                 case BOOLEAN:
 215                     out.printf("            arg%d = args[%d].asJavaConstant().asInt() != 0;\n", argIdx, nodeIdx);
 216                     break;
 217                 case BYTE:
 218                     out.printf("            arg%d = (byte) args[%d].asJavaConstant().asInt();\n", argIdx, nodeIdx);
 219                     break;
 220                 case CHAR:
 221                     out.printf("            arg%d = (char) args[%d].asJavaConstant().asInt();\n", argIdx, nodeIdx);
 222                     break;
 223                 case SHORT:
 224                     out.printf("            arg%d = (short) args[%d].asJavaConstant().asInt();\n", argIdx, nodeIdx);
 225                     break;
 226                 case INT:
 227                     out.printf("            arg%d = args[%d].asJavaConstant().asInt();\n", argIdx, nodeIdx);
 228                     break;
 229                 case LONG:
 230                     out.printf("            arg%d = args[%d].asJavaConstant().asLong();\n", argIdx, nodeIdx);
 231                     break;


 191             case DOUBLE:
 192                 return "Double";
 193             case VOID:
 194                 return "Void";
 195             case ARRAY:
 196             case TYPEVAR:
 197             case DECLARED:
 198                 return "Object";
 199             default:
 200                 throw new IllegalArgumentException(method.getReturnType().toString());
 201         }
 202     }
 203 
 204     protected static void constantArgument(AbstractProcessor processor, PrintWriter out, InjectedDependencies deps, int argIdx, TypeMirror type, int nodeIdx) {
 205         if (hasRawtypeWarning(type)) {
 206             out.printf("        @SuppressWarnings({\"rawtypes\"})\n");
 207         }
 208         out.printf("        %s arg%d;\n", getErasedType(type), argIdx);
 209         out.printf("        if (args[%d].isConstant()) {\n", nodeIdx);
 210         if (type.equals(processor.getType("jdk.vm.ci.meta.ResolvedJavaType"))) {
 211             out.printf("            jdk.vm.ci.meta.JavaConstant cst = args[%d].asJavaConstant();\n", nodeIdx);
 212             out.printf("            arg%d = %s.asJavaType(cst);\n", argIdx, deps.use(WellKnownDependency.CONSTANT_REFLECTION));
 213             out.printf("            if (arg%d == null) {\n", argIdx);
 214             out.printf("                arg%d = %s.asObject(jdk.vm.ci.meta.ResolvedJavaType.class, cst);\n", argIdx, deps.use(WellKnownDependency.SNIPPET_REFLECTION));
 215             out.printf("            }\n");
 216         } else {
 217             switch (type.getKind()) {
 218                 case BOOLEAN:
 219                     out.printf("            arg%d = args[%d].asJavaConstant().asInt() != 0;\n", argIdx, nodeIdx);
 220                     break;
 221                 case BYTE:
 222                     out.printf("            arg%d = (byte) args[%d].asJavaConstant().asInt();\n", argIdx, nodeIdx);
 223                     break;
 224                 case CHAR:
 225                     out.printf("            arg%d = (char) args[%d].asJavaConstant().asInt();\n", argIdx, nodeIdx);
 226                     break;
 227                 case SHORT:
 228                     out.printf("            arg%d = (short) args[%d].asJavaConstant().asInt();\n", argIdx, nodeIdx);
 229                     break;
 230                 case INT:
 231                     out.printf("            arg%d = args[%d].asJavaConstant().asInt();\n", argIdx, nodeIdx);
 232                     break;
 233                 case LONG:
 234                     out.printf("            arg%d = args[%d].asJavaConstant().asLong();\n", argIdx, nodeIdx);
 235                     break;
< prev index next >