Search in sources :

Example 1 with AMD64SignExtendOp

use of org.graalvm.compiler.lir.amd64.AMD64SignExtendOp in project graal by oracle.

the class AMD64ArithmeticLIRGenerator method emitIDIV.

private AMD64MulDivOp emitIDIV(OperandSize size, Value a, Value b, LIRFrameState state) {
    LIRKind kind = LIRKind.combine(a, b);
    AMD64SignExtendOp sx = getLIRGen().append(new AMD64SignExtendOp(size, kind, moveToReg(AMD64.rax, a)));
    return getLIRGen().append(new AMD64MulDivOp(AMD64MOp.IDIV, size, kind, sx.getHighResult(), sx.getLowResult(), getLIRGen().asAllocatable(b), state));
}
Also used : AMD64MulDivOp(org.graalvm.compiler.lir.amd64.AMD64MulDivOp) AMD64SignExtendOp(org.graalvm.compiler.lir.amd64.AMD64SignExtendOp) LIRKind(org.graalvm.compiler.core.common.LIRKind)

Aggregations

LIRKind (org.graalvm.compiler.core.common.LIRKind)1 AMD64MulDivOp (org.graalvm.compiler.lir.amd64.AMD64MulDivOp)1 AMD64SignExtendOp (org.graalvm.compiler.lir.amd64.AMD64SignExtendOp)1