public static UnboxNode create(ReadArgNode valueNode) { return new UnboxNodeGen(valueNode); }
@Override public CallTarget accessExecute(int argumentsLength) { if (argumentsLength == 2) { MaxMinNode maxNode = MaxMinObjectFactory.MaxMinNodeGen.create(max, MaxMinObjectFactory.UnboxNodeGen.create(new ReadArgNode(0)), MaxMinObjectFactory.UnboxNodeGen.create(new ReadArgNode(1))); return Truffle.getRuntime().createCallTarget(maxNode); } return null; }
@Override public Object execute_(VirtualFrame frameValue, Object valueNodeValue) { if (valueNodeValue instanceof String) { String valueNodeValue_ = (String) valueNodeValue; return root.executeUnbox(valueNodeValue_); } return getNext().execute_(frameValue, valueNodeValue); }
@Override protected final SpecializationNode createNext(Frame frameValue, Object valueNodeValue) { if (valueNodeValue instanceof Integer) { CompilerDirectives.transferToInterpreterAndInvalidate(); return ExecuteUnbox0Node_.create(root); } if (valueNodeValue instanceof Long) { CompilerDirectives.transferToInterpreterAndInvalidate(); return ExecuteUnbox1Node_.create(root); } if (valueNodeValue instanceof String) { CompilerDirectives.transferToInterpreterAndInvalidate(); return ExecuteUnbox2Node_.create(root); } if (valueNodeValue instanceof TruffleObject) { TruffleObject valueNodeValue_ = (TruffleObject) valueNodeValue; if ((root.isBoxedPrimitive((VirtualFrame) frameValue, valueNodeValue_))) { CompilerDirectives.transferToInterpreterAndInvalidate(); return ExecuteUnbox3Node_.create(root); } } return null; }
@Override public Object execute_(VirtualFrame frameValue, Object valueNodeValue) { if (valueNodeValue instanceof Integer) { int valueNodeValue_ = (int) valueNodeValue; return root.executeUnbox(valueNodeValue_); } return getNext().execute_(frameValue, valueNodeValue); }
@Override public Object execute_(VirtualFrame frameValue, Object valueNodeValue) { if (valueNodeValue instanceof TruffleObject) { TruffleObject valueNodeValue_ = (TruffleObject) valueNodeValue; if ((root.isBoxedPrimitive(frameValue, valueNodeValue_))) { return root.executeUnbox(frameValue, valueNodeValue_); } } return getNext().execute_(frameValue, valueNodeValue); }
@Override public Object execute_(VirtualFrame frameValue, Object valueNodeValue) { if (valueNodeValue instanceof Long) { long valueNodeValue_ = (long) valueNodeValue; return root.executeUnbox(valueNodeValue_); } return getNext().execute_(frameValue, valueNodeValue); }