Search in sources :

Example 21 with Value

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

the class DimensionsNode method generate.

@Override
public void generate(NodeLIRBuilderTool gen) {
    LIRGeneratorTool lirGen = gen.getLIRGeneratorTool();
    int size = rank * 4;
    int wordSize = lirGen.target().wordSize;
    int slots = roundUp(size, wordSize) / wordSize;
    VirtualStackSlot array = lirGen.getResult().getFrameMapBuilder().allocateStackSlots(slots, new BitSet(0), null);
    Value result = lirGen.emitAddress(array);
    gen.setResult(this, result);
}
Also used : BitSet(java.util.BitSet) Value(jdk.vm.ci.meta.Value) LIRGeneratorTool(org.graalvm.compiler.lir.gen.LIRGeneratorTool) VirtualStackSlot(org.graalvm.compiler.lir.VirtualStackSlot)

Example 22 with Value

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

the class DirectStoreNode method generate.

@Override
public void generate(NodeLIRBuilderTool gen) {
    Value v = gen.operand(value);
    LIRKind lirKind = LIRKind.fromJavaKind(gen.getLIRGeneratorTool().target().arch, kind);
    gen.getLIRGeneratorTool().getArithmetic().emitStore(lirKind, gen.operand(address), v, null);
}
Also used : Value(jdk.vm.ci.meta.Value) LIRKind(org.graalvm.compiler.core.common.LIRKind)

Example 23 with Value

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

the class ArrayCompareToNode method generate.

@Override
public void generate(NodeLIRBuilderTool gen) {
    Value result = gen.getLIRGeneratorTool().emitArrayCompareTo(kind1, kind2, gen.operand(array1), gen.operand(array2), gen.operand(length1), gen.operand(length2));
    gen.setResult(this, result);
}
Also used : Value(jdk.vm.ci.meta.Value)

Example 24 with Value

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

the class ReverseBytesNode method generate.

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

Example 25 with Value

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

the class UnaryMathIntrinsicNode method generate.

@Override
public void generate(NodeLIRBuilderTool nodeValueMap, ArithmeticLIRGeneratorTool gen) {
    Value input = nodeValueMap.operand(getValue());
    Value result;
    switch(getOperation()) {
        case LOG:
            result = gen.emitMathLog(input, false);
            break;
        case LOG10:
            result = gen.emitMathLog(input, true);
            break;
        case EXP:
            result = gen.emitMathExp(input);
            break;
        case SIN:
            result = gen.emitMathSin(input);
            break;
        case COS:
            result = gen.emitMathCos(input);
            break;
        case TAN:
            result = gen.emitMathTan(input);
            break;
        default:
            throw GraalError.shouldNotReachHere();
    }
    nodeValueMap.setResult(this, result);
}
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