Next: choice Instruction Block, Previous: jmp Instruction, Up: Assembler Instructions [Contents][Index]

`jprob`

InstructionThis instruction has the following forms:

jprobnumber,loc_labeljprobvar_name,loc_label

It specifies control transfer to a location label `loc_label` with probability `number` or with profile probability stored in a variable `var_name`.
The parameter `number` must be in the range 0 to 1 inclusive.
The assembler supports fixed-point and exponential notations for `number`.

The `jprob`

instruction effectively sets a profile probability in the action emission matrix or at least one profile probability in the state transition matrix.
If an `stt`

instruction precedes a contiguous block of `jprob`

instructions, these `jprob`

instructions set profile probabilities in the action emission matrix.
If an `stt`

instruction does not precede a contiguous block of `jprob`

instructions, these `jprob`

instructions set profile probabilities in the state transition matrix.
See stt Instruction, for more information.

If the assembler expects a user instruction at a particular location but encounters a contiguous block of `jprob`

instructions at this location, the assembler implicitly inserts a `nop`

instruction before the contiguous block and treats it as possible transitions to states made after the invocation of this `nop`

instruction.

Let us consider a block of `jprob`

instructions like this:

jprobprob1, L1 jprobprob2, L2 jprobprob3, L3

The probabilities of jumps to various destinations are the following:

Jump destination | Probability value |
---|---|

The location label `L1` | prob1 |

The second `jprob` instruction | 1-prob1 |

The location label `L2` | (1-prob1)*prob2 |

The third `jprob` instruction | (1-prob1)*(1-prob2) |

The location label `L3` | (1-prob1)*(1-prob2)*prob3 |

An instruction following the third `jprob` instruction | (1-prob1)*(1-prob2)*(1-prob3) |