1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00
guile/module
Andy Wingo e5dc27b86d increase range of relative jumps by aligning blocks to 8-byte boundaries
* libguile/objcodes.c (OBJCODE_COOKIE): Bump again, as our jump offsets
  are now multiplied by 8.

* libguile/vm-i-system.c (BR): Interpret the 16-bit offset as a relative
  jump to the nearest 8-byte-aligned block -- increasing relative jump
  range from +/-32K to +/-240K.
  (mvra): Do the same for the mvra jump.

* libguile/vm.c (really_make_boot_program): Align the mvra.

* module/language/assembly.scm (align-block): New export, for aligning
  blocks.

* module/language/assembly/compile-bytecode.scm (write-bytecode): Emit
  jumps to the nearest 8-byte-aligned block. Effectively our range is 18
  bits in either direction. I would like to do this differently -- have
  long-br and long-br-if, and all the other br instructions go to 8 bits
  only. But the assembler doesn't have an appropriate representation to
  allow me to do this yet, so for now this is what we have.

* module/language/assembly/decompile-bytecode.scm (decode-load-program):
  Decode the 19-bit jumps.
2009-07-26 14:01:56 +02:00
..
ice-9 fix gensym creation in psyntax 2009-07-24 12:06:19 +02:00
language increase range of relative jumps by aligning blocks to 8-byte boundaries 2009-07-26 14:01:56 +02:00
oop Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
rnrs Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
scripts Fix "guile-tools disassemble". 2009-06-19 21:54:51 +02:00
srfi Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
system remove all mentions of "external" from the compiler and related code 2009-07-23 17:15:17 +02:00
Makefile.am add brainfuck->tree-il compiler 2009-06-21 15:06:04 +02:00