All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oracle.graal.python.lib.PyLongAsLongAndOverflowNodeGen Maven / Gradle / Ivy

There is a newer version: 24.1.1
Show newest version
// CheckStyle: start generated
package com.oracle.graal.python.lib;

import com.oracle.graal.python.builtins.objects.cext.PythonNativeVoidPtr;
import com.oracle.graal.python.builtins.objects.ints.PInt;
import com.oracle.graal.python.lib.PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode;
import com.oracle.graal.python.util.OverflowException;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.dsl.GeneratedBy;
import com.oracle.truffle.api.dsl.NeverDefault;
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.dsl.DSLSupport.SpecializationDataNode;
import com.oracle.truffle.api.dsl.InlineSupport.InlineTarget;
import com.oracle.truffle.api.dsl.InlineSupport.ReferenceField;
import com.oracle.truffle.api.dsl.InlineSupport.RequiredField;
import com.oracle.truffle.api.dsl.InlineSupport.StateField;
import com.oracle.truffle.api.dsl.InlineSupport.UnsafeAccessedField;
import com.oracle.truffle.api.frame.Frame;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.nodes.DenyReplace;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;

/**
 * Debug Info: 
 *   Specialization {@link PyLongAsLongAndOverflowNode#doInt}
 *     Activation probability: 0.27381
 *     With/without class size: 7/0 bytes
 *   Specialization {@link PyLongAsLongAndOverflowNode#doLong}
 *     Activation probability: 0.23095
 *     With/without class size: 6/0 bytes
 *   Specialization {@link PyLongAsLongAndOverflowNode#doPInt}
 *     Activation probability: 0.18810
 *     With/without class size: 6/0 bytes
 *   Specialization {@link PyLongAsLongAndOverflowNode#doBoolean}
 *     Activation probability: 0.14524
 *     With/without class size: 5/0 bytes
 *   Specialization {@link PyLongAsLongAndOverflowNode#doNativePointer}
 *     Activation probability: 0.10238
 *     With/without class size: 5/0 bytes
 *   Specialization {@link PyLongAsLongAndOverflowNode#doObject}
 *     Activation probability: 0.05952
 *     With/without class size: 6/22 bytes
 * 
*/ @GeneratedBy(PyLongAsLongAndOverflowNode.class) @SuppressWarnings({"javadoc", "unused"}) public final class PyLongAsLongAndOverflowNodeGen { private static final StateField FALLBACK__PY_LONG_AS_LONG_AND_OVERFLOW_NODE_FALLBACK_STATE_0_UPDATER = StateField.create(FallbackData.lookup_(), "fallback_state_0_"); private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static PyLongAsLongAndOverflowNode getUncached() { return PyLongAsLongAndOverflowNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#fallback_cache} *
*/ @NeverDefault public static PyLongAsLongAndOverflowNode inline(@RequiredField(bits = 6, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new PyLongAsLongAndOverflowNodeGen.Inlined(target); } @GeneratedBy(PyLongAsLongAndOverflowNode.class) @DenyReplace private static final class Inlined extends PyLongAsLongAndOverflowNode { /** * State Info:
         *   0: SpecializationActive {@link PyLongAsLongAndOverflowNode#doInt}
         *   1: SpecializationActive {@link PyLongAsLongAndOverflowNode#doLong}
         *   2: SpecializationActive {@link PyLongAsLongAndOverflowNode#doPInt}
         *   3: SpecializationActive {@link PyLongAsLongAndOverflowNode#doBoolean}
         *   4: SpecializationActive {@link PyLongAsLongAndOverflowNode#doNativePointer}
         *   5: SpecializationActive {@link PyLongAsLongAndOverflowNode#doObject}
         * 
*/ private final StateField state_0_; private final ReferenceField fallback_cache; /** * Source Info:
         *   Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
*/ private final PyNumberIndexNode fallback_indexNode_; /** * Source Info:
         *   Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *   Parameter: {@link BuiltinPyLongAsLongAndOverflowNode} recursive
         *   Inline method: {@link BuiltinPyLongAsLongAndOverflowNodeGen#inline}
*/ private final BuiltinPyLongAsLongAndOverflowNode fallback_recursive_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(PyLongAsLongAndOverflowNode.class); this.state_0_ = target.getState(0, 6); this.fallback_cache = target.getReference(1, FallbackData.class); this.fallback_indexNode_ = PyNumberIndexNodeGen.inline(InlineTarget.create(PyNumberIndexNode.class, FALLBACK__PY_LONG_AS_LONG_AND_OVERFLOW_NODE_FALLBACK_STATE_0_UPDATER.subUpdater(0, 6), ReferenceField.create(FallbackData.lookup_(), "fallback_indexNode__field1_", Node.class), ReferenceField.create(FallbackData.lookup_(), "fallback_indexNode__field2_", Node.class), ReferenceField.create(FallbackData.lookup_(), "fallback_indexNode__field3_", Node.class), ReferenceField.create(FallbackData.lookup_(), "fallback_indexNode__field4_", Node.class), ReferenceField.create(FallbackData.lookup_(), "fallback_indexNode__field5_", Node.class))); this.fallback_recursive_ = BuiltinPyLongAsLongAndOverflowNodeGen.inline(InlineTarget.create(BuiltinPyLongAsLongAndOverflowNode.class, FALLBACK__PY_LONG_AS_LONG_AND_OVERFLOW_NODE_FALLBACK_STATE_0_UPDATER.subUpdater(6, 5))); } @SuppressWarnings("static-method") private boolean fallbackGuard_(int state_0, Node arg0Value, Object arg1Value) { if (!((state_0 & 0b1) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doInt(int)] */) && arg1Value instanceof Integer) { return false; } if (!((state_0 & 0b10) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doLong(long)] */) && arg1Value instanceof Long) { return false; } if (!((state_0 & 0b100) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doPInt(PInt)] */) && arg1Value instanceof PInt) { return false; } if (!((state_0 & 0b1000) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doBoolean(boolean)] */) && arg1Value instanceof Boolean) { return false; } if (!((state_0 & 0b10000) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doNativePointer(PythonNativeVoidPtr)] */) && arg1Value instanceof PythonNativeVoidPtr) { return false; } return true; } @Override public long execute(Frame frameValue, Node arg0Value, Object arg1Value) throws OverflowException { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doInt(int)] || SpecializationActive[PyLongAsLongAndOverflowNode.doLong(long)] || SpecializationActive[PyLongAsLongAndOverflowNode.doPInt(PInt)] || SpecializationActive[PyLongAsLongAndOverflowNode.doBoolean(boolean)] || SpecializationActive[PyLongAsLongAndOverflowNode.doNativePointer(PythonNativeVoidPtr)] || SpecializationActive[PyLongAsLongAndOverflowNode.doObject(VirtualFrame, Node, Object, PyNumberIndexNode, BuiltinPyLongAsLongAndOverflowNode)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doInt(int)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; return PyLongAsLongAndOverflowNode.doInt(arg1Value_); } if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doLong(long)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; return PyLongAsLongAndOverflowNode.doLong(arg1Value_); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doPInt(PInt)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; return PyLongAsLongAndOverflowNode.doPInt(arg1Value_); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doBoolean(boolean)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; return PyLongAsLongAndOverflowNode.doBoolean(arg1Value_); } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doNativePointer(PythonNativeVoidPtr)] */ && arg1Value instanceof PythonNativeVoidPtr) { PythonNativeVoidPtr arg1Value_ = (PythonNativeVoidPtr) arg1Value; return PyLongAsLongAndOverflowNode.doNativePointer(arg1Value_); } if ((state_0 & 0b100000) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.doObject(VirtualFrame, Node, Object, PyNumberIndexNode, BuiltinPyLongAsLongAndOverflowNode)] */) { FallbackData s5_ = this.fallback_cache.get(arg0Value); if (s5_ != null) { if (fallbackGuard_(state_0, arg0Value, arg1Value)) { return PyLongAsLongAndOverflowNode.doObject((VirtualFrame) frameValue, s5_, arg1Value, this.fallback_indexNode_, this.fallback_recursive_); } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value); } private long executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value) throws OverflowException { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyLongAsLongAndOverflowNode.doInt(int)] */; this.state_0_.set(arg0Value, state_0); return PyLongAsLongAndOverflowNode.doInt(arg1Value_); } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyLongAsLongAndOverflowNode.doLong(long)] */; this.state_0_.set(arg0Value, state_0); return PyLongAsLongAndOverflowNode.doLong(arg1Value_); } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyLongAsLongAndOverflowNode.doPInt(PInt)] */; this.state_0_.set(arg0Value, state_0); return PyLongAsLongAndOverflowNode.doPInt(arg1Value_); } if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyLongAsLongAndOverflowNode.doBoolean(boolean)] */; this.state_0_.set(arg0Value, state_0); return PyLongAsLongAndOverflowNode.doBoolean(arg1Value_); } if (arg1Value instanceof PythonNativeVoidPtr) { PythonNativeVoidPtr arg1Value_ = (PythonNativeVoidPtr) arg1Value; state_0 = state_0 | 0b10000 /* add SpecializationActive[PyLongAsLongAndOverflowNode.doNativePointer(PythonNativeVoidPtr)] */; this.state_0_.set(arg0Value, state_0); return PyLongAsLongAndOverflowNode.doNativePointer(arg1Value_); } FallbackData s5_ = arg0Value.insert(new FallbackData()); VarHandle.storeStoreFence(); this.fallback_cache.set(arg0Value, s5_); state_0 = state_0 | 0b100000 /* add SpecializationActive[PyLongAsLongAndOverflowNode.doObject(VirtualFrame, Node, Object, PyNumberIndexNode, BuiltinPyLongAsLongAndOverflowNode)] */; this.state_0_.set(arg0Value, state_0); return PyLongAsLongAndOverflowNode.doObject((VirtualFrame) frameValue, s5_, arg1Value, this.fallback_indexNode_, this.fallback_recursive_); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(PyLongAsLongAndOverflowNode.class) @DenyReplace private static final class FallbackData extends Node implements SpecializationDataNode { /** * State Info:
         *   0-5: InlinedCache
         *        Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *        Parameter: {@link PyNumberIndexNode} indexNode
         *        Inline method: {@link PyNumberIndexNodeGen#inline}
         *   6-10: InlinedCache
         *        Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *        Parameter: {@link BuiltinPyLongAsLongAndOverflowNode} recursive
         *        Inline method: {@link BuiltinPyLongAsLongAndOverflowNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int fallback_state_0_; /** * Source Info:
         *   Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node fallback_indexNode__field1_; /** * Source Info:
         *   Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field2
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node fallback_indexNode__field2_; /** * Source Info:
         *   Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node fallback_indexNode__field3_; /** * Source Info:
         *   Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node fallback_indexNode__field4_; /** * Source Info:
         *   Specialization: {@link PyLongAsLongAndOverflowNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node fallback_indexNode__field5_; FallbackData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(PyLongAsLongAndOverflowNode.class) @DenyReplace private static final class Uncached extends PyLongAsLongAndOverflowNode { @Override public long execute(Frame frameValue, Node arg0Value, Object arg1Value) throws OverflowException { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; return PyLongAsLongAndOverflowNode.doInt(arg1Value_); } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; return PyLongAsLongAndOverflowNode.doLong(arg1Value_); } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; return PyLongAsLongAndOverflowNode.doPInt(arg1Value_); } if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; return PyLongAsLongAndOverflowNode.doBoolean(arg1Value_); } if (arg1Value instanceof PythonNativeVoidPtr) { PythonNativeVoidPtr arg1Value_ = (PythonNativeVoidPtr) arg1Value; return PyLongAsLongAndOverflowNode.doNativePointer(arg1Value_); } return PyLongAsLongAndOverflowNode.doObject((VirtualFrame) frameValue, arg0Value, arg1Value, (PyNumberIndexNodeGen.getUncached()), (BuiltinPyLongAsLongAndOverflowNodeGen.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } /** * Debug Info:
     *   Specialization {@link BuiltinPyLongAsLongAndOverflowNode#doInt}
     *     Activation probability: 0.32000
     *     With/without class size: 7/0 bytes
     *   Specialization {@link BuiltinPyLongAsLongAndOverflowNode#doLong}
     *     Activation probability: 0.26000
     *     With/without class size: 7/0 bytes
     *   Specialization {@link BuiltinPyLongAsLongAndOverflowNode#doPInt}
     *     Activation probability: 0.20000
     *     With/without class size: 6/0 bytes
     *   Specialization {@link BuiltinPyLongAsLongAndOverflowNode#doBoolean}
     *     Activation probability: 0.14000
     *     With/without class size: 5/0 bytes
     *   Specialization {@link BuiltinPyLongAsLongAndOverflowNode#doNativePointer}
     *     Activation probability: 0.08000
     *     With/without class size: 4/0 bytes
     * 
*/ @GeneratedBy(BuiltinPyLongAsLongAndOverflowNode.class) @SuppressWarnings("javadoc") static final class BuiltinPyLongAsLongAndOverflowNodeGen { private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static BuiltinPyLongAsLongAndOverflowNode getUncached() { return BuiltinPyLongAsLongAndOverflowNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
*/ @NeverDefault public static BuiltinPyLongAsLongAndOverflowNode inline(@RequiredField(bits = 5, value = StateField.class) InlineTarget target) { return new BuiltinPyLongAsLongAndOverflowNodeGen.Inlined(target); } @GeneratedBy(BuiltinPyLongAsLongAndOverflowNode.class) @DenyReplace private static final class Inlined extends BuiltinPyLongAsLongAndOverflowNode { /** * State Info:
             *   0: SpecializationActive {@link BuiltinPyLongAsLongAndOverflowNode#doInt}
             *   1: SpecializationActive {@link BuiltinPyLongAsLongAndOverflowNode#doLong}
             *   2: SpecializationActive {@link BuiltinPyLongAsLongAndOverflowNode#doPInt}
             *   3: SpecializationActive {@link BuiltinPyLongAsLongAndOverflowNode#doBoolean}
             *   4: SpecializationActive {@link BuiltinPyLongAsLongAndOverflowNode#doNativePointer}
             * 
*/ private final StateField state_0_; private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(BuiltinPyLongAsLongAndOverflowNode.class); this.state_0_ = target.getState(0, 5); } @Override public long execute(Frame frameValue, Node arg0Value, Object arg1Value) throws OverflowException { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doInt(int)] || SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doLong(long)] || SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doPInt(PInt)] || SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doBoolean(boolean)] || SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doNativePointer(PythonNativeVoidPtr)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doInt(int)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doInt(arg1Value_); } if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doLong(long)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doLong(arg1Value_); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doPInt(PInt)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doPInt(arg1Value_); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doBoolean(boolean)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doBoolean(arg1Value_); } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doNativePointer(PythonNativeVoidPtr)] */ && arg1Value instanceof PythonNativeVoidPtr) { PythonNativeVoidPtr arg1Value_ = (PythonNativeVoidPtr) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doNativePointer(arg1Value_); } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value); } private long executeAndSpecialize(Node arg0Value, Object arg1Value) throws OverflowException { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doInt(int)] */; this.state_0_.set(arg0Value, state_0); return BuiltinPyLongAsLongAndOverflowNode.doInt(arg1Value_); } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doLong(long)] */; this.state_0_.set(arg0Value, state_0); return BuiltinPyLongAsLongAndOverflowNode.doLong(arg1Value_); } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doPInt(PInt)] */; this.state_0_.set(arg0Value, state_0); return BuiltinPyLongAsLongAndOverflowNode.doPInt(arg1Value_); } if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doBoolean(boolean)] */; this.state_0_.set(arg0Value, state_0); return BuiltinPyLongAsLongAndOverflowNode.doBoolean(arg1Value_); } if (arg1Value instanceof PythonNativeVoidPtr) { PythonNativeVoidPtr arg1Value_ = (PythonNativeVoidPtr) arg1Value; state_0 = state_0 | 0b10000 /* add SpecializationActive[PyLongAsLongAndOverflowNode.BuiltinPyLongAsLongAndOverflowNode.doNativePointer(PythonNativeVoidPtr)] */; this.state_0_.set(arg0Value, state_0); return BuiltinPyLongAsLongAndOverflowNode.doNativePointer(arg1Value_); } throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(BuiltinPyLongAsLongAndOverflowNode.class) @DenyReplace private static final class Uncached extends BuiltinPyLongAsLongAndOverflowNode { @Override public long execute(Frame frameValue, Node arg0Value, Object arg1Value) throws OverflowException { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doInt(arg1Value_); } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doLong(arg1Value_); } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doPInt(arg1Value_); } if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doBoolean(arg1Value_); } if (arg1Value instanceof PythonNativeVoidPtr) { PythonNativeVoidPtr arg1Value_ = (PythonNativeVoidPtr) arg1Value; return BuiltinPyLongAsLongAndOverflowNode.doNativePointer(arg1Value_); } throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy