Warning: This is the manual of the legacy Guile 2.0 series. You may want to read the manual of the current stable series instead.

Next: , Previous: , Up: Instruction Set   [Contents][Index]


9.3.6.6 Branch Instructions

All the conditional branch instructions described below work in the same way:

Note that the offset passed to the instruction is encoded as three 8-bit integers, in big-endian order, effectively giving Guile a 24-bit relative address space.

Instruction: br offset

Jump to offset. No values are popped.

Instruction: br-if offset

Jump to offset if the object on the stack is not false.

Instruction: br-if-not offset

Jump to offset if the object on the stack is false.

Instruction: br-if-eq offset

Jump to offset if the two objects located on the stack are equal in the sense of eq?. Note that, for this instruction, the stack pointer is decremented by two Scheme objects instead of only one.

Instruction: br-if-not-eq offset

Same as br-if-eq for non-eq? objects.

Instruction: br-if-null offset

Jump to offset if the object on the stack is '().

Instruction: br-if-not-null offset

Jump to offset if the object on the stack is not '().