Package gnu.expr

Class ConditionalTarget


  • public class ConditionalTarget
    extends Target
    This is the Target of a boolean expression, in a conditional context. If the expression evaluates to true, transfer to the ifTrue label; if false, transfer to the ifFalse label.
    • Field Detail

      • ifTrue

        public Label ifTrue
      • ifFalse

        public Label ifFalse
      • isTrueMethod

        public static final Method isTrueMethod
      • trueBranchComesFirst

        public boolean trueBranchComesFirst
        True if the ifTrue label comes before the ifFalse label. This is used in the hope we can optimize away a branch followed by its target.
    • Constructor Detail

      • ConditionalTarget

        public ConditionalTarget​(Label ifTrue,
                                 Label ifFalse,
                                 Language language)
        Parameters:
        ifTrue - label to jump to if this evaluates to true
        ifFalse - label to jump to if true
        language - specifies what values are true
    • Method Detail

      • emitGotoFirstBranch

        public final void emitGotoFirstBranch​(CodeAttr code)
        Goto whichever of IfTrue or ifFalse is specified by trueBranchComesFirst. Normally, the goto should get optimized away as a no-op.