Several changes:
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Wed, 8 Dec 1993 17:50:41 +0000 (17:50 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Wed, 8 Dec 1993 17:50:41 +0000 (17:50 +0000)
commit22c0907a67366e4feddd5a7b2addc8c28f3b5fab
treed57a32e72d8bf9a4d2c4442a0bcf7f0c080037f4
parent7fd448f409bebed2e291cf134b815f99085f8288
Several changes:
- Closures are allocated differently: the compiler prepares a pattern,
  the linker finalizes it, the garbage collector relocates it, and
  the pattern is copied at runtime to make a new closure.
- Tighten up the closure code: eliminate the privilege-bit-clearing
  instruction, and share the closure gc stubs between all the closures
  in a block.
- Add a code segment facility to the linearizer.
- Add a padding facility to the assembler.
- Compiled code blocks are now aligned to floating-point boundaries
  so that they can contain embedded floating-point values and closure
  patterns can be copied using floating-point loads and stores.
- Floating-point constants are now embedded in the code area,
  requiring fewer operations.
13 files changed:
v7/src/compiler/back/bittop.scm
v7/src/compiler/back/bitutl.scm
v7/src/compiler/back/lapgn1.scm
v7/src/compiler/back/syerly.scm
v7/src/compiler/back/syntax.scm
v7/src/compiler/base/asstop.scm
v7/src/compiler/base/make.scm
v7/src/compiler/machines/spectrum/compiler.pkg
v7/src/compiler/machines/spectrum/instr2.scm
v7/src/compiler/machines/spectrum/lapgen.scm
v7/src/compiler/machines/spectrum/lapopt.scm
v7/src/compiler/machines/spectrum/rules3.scm
v7/src/compiler/machines/spectrum/rulflo.scm