Search in sources :

Example 81 with Value

use of jdk.vm.ci.meta.Value in project graal by oracle.

the class ArrayEqualsNode method generate.

@Override
public void generate(NodeLIRBuilderTool gen) {
    Value result = gen.getLIRGeneratorTool().emitArrayEquals(kind, gen.operand(array1), gen.operand(array2), gen.operand(length));
    gen.setResult(this, result);
}
Also used : Value(jdk.vm.ci.meta.Value)

Example 82 with Value

use of jdk.vm.ci.meta.Value in project graal by oracle.

the class BinaryMathIntrinsicNode method generate.

@Override
public void generate(NodeLIRBuilderTool nodeValueMap, ArithmeticLIRGeneratorTool gen) {
    Value xValue = nodeValueMap.operand(getX());
    Value yValue = nodeValueMap.operand(getY());
    Value result;
    switch(getOperation()) {
        case POW:
            result = gen.emitMathPow(xValue, yValue);
            break;
        default:
            throw GraalError.shouldNotReachHere();
    }
    nodeValueMap.setResult(this, result);
}
Also used : Value(jdk.vm.ci.meta.Value)

Example 83 with Value

use of jdk.vm.ci.meta.Value in project graal by oracle.

the class ReadRegisterNode method generate.

@Override
public void generate(NodeLIRBuilderTool generator) {
    LIRKind kind = generator.getLIRGeneratorTool().getLIRKind(stamp(NodeView.DEFAULT));
    Value result = register.asValue(kind);
    if (incoming) {
        generator.getLIRGeneratorTool().emitIncomingValues(new Value[] { result });
    }
    if (!directUse) {
        result = generator.getLIRGeneratorTool().emitMove(result);
    }
    generator.setResult(this, result);
}
Also used : Value(jdk.vm.ci.meta.Value) LIRKind(org.graalvm.compiler.core.common.LIRKind)

Example 84 with Value

use of jdk.vm.ci.meta.Value in project graal by oracle.

the class IntegerMulHighNode method generate.

@Override
public void generate(NodeLIRBuilderTool nodeValueMap, ArithmeticLIRGeneratorTool gen) {
    Value a = nodeValueMap.operand(getX());
    Value b = nodeValueMap.operand(getY());
    nodeValueMap.setResult(this, gen.emitMulHigh(a, b));
}
Also used : Value(jdk.vm.ci.meta.Value)

Example 85 with Value

use of jdk.vm.ci.meta.Value in project graal by oracle.

the class UnsignedMulHighNode method generate.

@Override
public void generate(NodeLIRBuilderTool nodeValueMap, ArithmeticLIRGeneratorTool gen) {
    Value a = nodeValueMap.operand(getX());
    Value b = nodeValueMap.operand(getY());
    nodeValueMap.setResult(this, gen.emitUMulHigh(a, b));
}
Also used : Value(jdk.vm.ci.meta.Value)

Aggregations

Value (jdk.vm.ci.meta.Value)151 AllocatableValue (jdk.vm.ci.meta.AllocatableValue)76 RegisterValue (jdk.vm.ci.code.RegisterValue)33 LIRKind (org.graalvm.compiler.core.common.LIRKind)18 LIRInstruction (org.graalvm.compiler.lir.LIRInstruction)14 LIRValueUtil.isConstantValue (org.graalvm.compiler.lir.LIRValueUtil.isConstantValue)14 LIRValueUtil.isStackSlotValue (org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue)14 OperandMode (org.graalvm.compiler.lir.LIRInstruction.OperandMode)12 Variable (org.graalvm.compiler.lir.Variable)12 ComplexMatchValue (org.graalvm.compiler.core.match.ComplexMatchValue)11 Indent (org.graalvm.compiler.debug.Indent)11 EnumSet (java.util.EnumSet)10 DebugContext (org.graalvm.compiler.debug.DebugContext)10 GraalError (org.graalvm.compiler.debug.GraalError)10 LIRFrameState (org.graalvm.compiler.lir.LIRFrameState)10 BitSet (java.util.BitSet)9 Register (jdk.vm.ci.code.Register)9 ConstantValue (org.graalvm.compiler.lir.ConstantValue)9 SPARCAddressValue (org.graalvm.compiler.lir.sparc.SPARCAddressValue)9 ValueNode (org.graalvm.compiler.nodes.ValueNode)9