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.

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


9.3.7.15 Unboxed Floating-Point Arithmetic

Instruction: scm->f64 s12:dst s12:src

Unbox the SCM value at src to an IEEE double, placing the result in dst. If the src value is not a real number, signal an error.

Instruction: f64->scm s12:dst s12:src

Box the IEEE double at src to a SCM value and place the result in dst.

Instruction: load-f64 s24:dst au32:high-bits au32:low-bits

Load a 64-bit value formed by joining high-bits and low-bits, and write it to dst.

Instruction: fadd s8:dst s8:a s8:b
Instruction: fsub s8:dst s8:a s8:b
Instruction: fmul s8:dst s8:a s8:b
Instruction: fdiv s8:dst s8:a s8:b

Like add, sub, div, and mul, except taking the operands as unboxed IEEE double floating-point numbers, and producing the same.

Instruction: br-if-f64-= s24:a x8:_ s24:b b1:invert x7:_ l24:offset
Instruction: br-if-f64-< s24:a x8:_ s24:b b1:invert x7:_ l24:offset
Instruction: br-if-f64-<= s24:a x8:_ s24:b b1:invert x7:_ l24:offset
Instruction: br-if-f64-> s24:a x8:_ s24:b b1:invert x7:_ l24:offset
Instruction: br-if-f64->= s24:a x8:_ s24:b b1:invert x7:_ l24:offset

If the unboxed IEEE double value in a is =, <, <=, >, or >= to the unboxed IEEE double value in b, respectively, add offset to the current instruction pointer.