public class UnsignedDivNode extends FixedBinaryNode implements Lowerable, LIRLowerable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberableCanonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
static NodeClass<UnsignedDivNode> |
TYPE |
x, ystateBeforenextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
UnsignedDivNode(NodeClass<? extends UnsignedDivNode> c,
ValueNode x,
ValueNode y) |
|
UnsignedDivNode(ValueNode x,
ValueNode y) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
ValueNode |
canonical(CanonicalizerTool tool,
ValueNode forX,
ValueNode forY)
Similar to
Canonicalizable.canonical(CanonicalizerTool), except that
implementations should act as if the current input of the node was the given one, i.e.,
they should never look at the inputs via the this pointer. |
void |
generate(NodeLIRBuilderTool gen) |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
static int |
unsignedDivide(int a,
int b) |
static long |
unsignedDivide(long a,
long b) |
getX, getYsetStateBefore, stateBeforeasNode, next, setNextasConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStampacceptInputs, acceptSuccessors, afterClone, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearSuccessors, copyWithInputs, copyWithInputs, equals, fail, formatTo, getDebugProperties, getDebugProperties, getId, getNodeClass, getUsageAt, getUsageCount, hashCode, hasNoUsages, hasUsages, inputs, isAlive, isDeleted, markDeleted, modCount, newIdentityMap, newIdentityMap, newIdentityMap, newMap, newMap, newMap, newSet, newSet, predecessor, pushInputs, removeUsage, replaceAndDelete, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceFirstInput, replaceFirstSuccessor, safeDelete, simplify, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitcanonicalstatespublic static final NodeClass<UnsignedDivNode> TYPE
public UnsignedDivNode(ValueNode x, ValueNode y)
protected UnsignedDivNode(NodeClass<? extends UnsignedDivNode> c, ValueNode x, ValueNode y)
public ValueNode canonical(CanonicalizerTool tool, ValueNode forX, ValueNode forY)
Canonicalizable.BinaryCanonicalizable.canonical(CanonicalizerTool), except that
implementations should act as if the current input of the node was the given one, i.e.,
they should never look at the inputs via the this pointer.canonical in interface Canonicalizable.Binary<ValueNode>public void lower(LoweringTool tool)
Lowerablepublic void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic boolean canDeoptimize()
DeoptimizingNodecanDeoptimize in interface DeoptimizingNodepublic static int unsignedDivide(int a, int b)
public static long unsignedDivide(long a, long b)