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


9.3.7.15 Branch Instructions

All offsets to branch instructions are 24-bit signed numbers, which count 32-bit units. This gives Guile effectively a 26-bit address range for relative jumps.

Instruction: j l24:offset

Add offset to the current instruction pointer.

Instruction: jl l24:offset

If the last comparison result is LESS_THAN, add offset, a signed 24-bit number, to the current instruction pointer.

Instruction: je l24:offset

If the last comparison result is EQUAL, add offset, a signed 24-bit number, to the current instruction pointer.

Instruction: jnl l24:offset

If the last comparison result is not LESS_THAN, add offset, a signed 24-bit number, to the current instruction pointer.

Instruction: jne l24:offset

If the last comparison result is not EQUAL, add offset, a signed 24-bit number, to the current instruction pointer.

Instruction: jge l24:offset

If the last comparison result is NONE, add offset, a signed 24-bit number, to the current instruction pointer.

This is intended for use after a <? comparison, and is different from jnl in the way it handles not-a-number (NaN) values: <? sets INVALID instead of NONE if either value is a NaN. For exact numbers, jge is the same as jnl.

Instruction: jnge l24:offset

If the last comparison result is not NONE, add offset, a signed 24-bit number, to the current instruction pointer.

This is intended for use after a <? comparison, and is different from jl in the way it handles not-a-number (NaN) values: <? sets INVALID instead of NONE if either value is a NaN. For exact numbers, jnge is the same as jl.


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