Search in sources :

Example 1 with BranchOp

use of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow.BranchOp in project graal by oracle.

the class AArch64LIRGenerator method emitCompareBranch.

@Override
public void emitCompareBranch(PlatformKind cmpKind, Value left, Value right, Condition cond, boolean unorderedIsTrue, LabelRef trueDestination, LabelRef falseDestination, double trueDestinationProbability) {
    boolean mirrored = emitCompare(cmpKind, left, right, cond, unorderedIsTrue);
    Condition finalCondition = mirrored ? cond.mirror() : cond;
    boolean finalUnorderedIsTrue = mirrored ? !unorderedIsTrue : unorderedIsTrue;
    ConditionFlag cmpCondition = toConditionFlag(((AArch64Kind) cmpKind).isInteger(), finalCondition, finalUnorderedIsTrue);
    append(new BranchOp(cmpCondition, trueDestination, falseDestination, trueDestinationProbability));
}
Also used : Condition(org.graalvm.compiler.core.common.calc.Condition) BranchOp(org.graalvm.compiler.lir.aarch64.AArch64ControlFlow.BranchOp) ConditionFlag(org.graalvm.compiler.asm.aarch64.AArch64Assembler.ConditionFlag)

Aggregations

ConditionFlag (org.graalvm.compiler.asm.aarch64.AArch64Assembler.ConditionFlag)1 Condition (org.graalvm.compiler.core.common.calc.Condition)1 BranchOp (org.graalvm.compiler.lir.aarch64.AArch64ControlFlow.BranchOp)1