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);
}
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);
}
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);
}
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);
}
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);
}
Aggregations