Warning: This is the manual of the legacy Guile 2.2 series. You may want to read the manual of the current stable series instead.
Next: Constant Instructions, Previous: Trampoline Instructions, Up: Instruction Set [Contents][Index]
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.
Add offset to the current instruction pointer.
All the conditional branch instructions described below have an
invert parameter, which if true reverses the test:
br-if-true
becomes br-if-false
, and so on.
If the value in test is true for the purposes of Scheme, add offset to the current instruction pointer.
If the value in test is the end-of-list or Lisp nil, add offset to the current instruction pointer.
If the value in test is false to Lisp, add offset to the current instruction pointer.
If the value in test is a pair, add offset to the current instruction pointer.
If the value in test is a struct, add offset number to the current instruction pointer.
If the value in test is a char, add offset to the current instruction pointer.
If the value in test has the TC7 given in the second word, add
offset to the current instruction pointer. TC7 codes are part of
the way Guile represents non-immediate objects, and are deep wizardry.
See libguile/tags.h
for all the details.
If the value in a is eq?
or eqv?
to the value in
b, respectively, add offset to the current instruction
pointer.
If the value in a is =
, <
, or <=
to the value
in b, respectively, add offset to the current instruction
pointer.
If the bitwise intersection of the integers in a and b is nonzero, add offset to the current instruction pointer.
Next: Constant Instructions, Previous: Trampoline Instructions, Up: Instruction Set [Contents][Index]