Move the global safepoint to one page before static space
authorDavid Lichteblau <david@lichteblau.com>
Mon, 29 Oct 2012 12:43:07 +0000 (13:43 +0100)
committerDavid Lichteblau <david@lichteblau.com>
Fri, 2 Nov 2012 12:23:19 +0000 (13:23 +0100)
commit3ea89bab9e4600ba80b6bc931481100fca74fa9d
treee2acbfaa2ce8eba8e7d1fc1e5211644c4dbc9b77
parenteac461c1f1ca91cfe282c779291d582ed6b336cb
Move the global safepoint to one page before static space

New attempt at finding an optimal location for the global safepoint
page.  Hopefully this solution will cover all our use cases for
the foreseeable future.

  - Relative to static space for architectures with small immediates.

  - Also addresses the requirements of sb-dynamic-core, which needs
    the safepoint to have an absolute address on x86(-64).

Hence, a new macro !gencgc-space-setup -- tweaks space parameters to
squeeze in the safepoint page, while also simplifying parms.lisp for
some platforms.
13 files changed:
package-data-list.lisp-expr
src/compiler/generic/genesis.lisp
src/compiler/generic/parms.lisp
src/compiler/x86-64/macros.lisp
src/compiler/x86-64/parms.lisp
src/compiler/x86/macros.lisp
src/compiler/x86/parms.lisp
src/runtime/gencgc.c
src/runtime/globals.h
src/runtime/safepoint.c
src/runtime/win32-os.c
src/runtime/x86-64-assem.S
src/runtime/x86-assem.S