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