public final class AMD64FloatConvertNode extends UnaryArithmeticNode<ArithmeticOpTable.FloatConvertOp> implements ArithmeticLIRLowerable
FloatConvertNode
which, on AMD64 needs a AMD64FloatConvertNode
plus some
fixup code that handles the corner cases that differ between AMD64 and Java.UnaryArithmeticNode.SerializableUnaryFunction<T>
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Canonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>
Modifier and Type | Field and Description |
---|---|
protected FloatConvert |
op |
static NodeClass<AMD64FloatConvertNode> |
TYPE |
getOp
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
AMD64FloatConvertNode(FloatConvert op,
ValueNode value) |
Modifier and Type | Method and Description |
---|---|
ValueNode |
canonical(CanonicalizerTool tool,
ValueNode forValue)
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(NodeValueMap nodeValueMap,
ArithmeticLIRGenerator gen) |
findSynonym, getOp, inferStamp
asNode
asConstant, asJavaConstant, getKind, graph, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStamp
acceptInputs, 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, verify, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
canonical
public static final NodeClass<AMD64FloatConvertNode> TYPE
protected final FloatConvert op
public AMD64FloatConvertNode(FloatConvert op, ValueNode value)
public ValueNode canonical(CanonicalizerTool tool, ValueNode forValue)
Canonicalizable.Unary
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.canonical
in interface Canonicalizable.Unary<ValueNode>
canonical
in class UnaryArithmeticNode<ArithmeticOpTable.FloatConvertOp>
public void generate(NodeValueMap nodeValueMap, ArithmeticLIRGenerator gen)
generate
in interface ArithmeticLIRLowerable