x86-64: Prefer RIP-relative mode for accessing assembly tramps
commit8933292b1a9a6abde40ff4ea315b1e01ebd75581
authorDouglas Katzman <dougk@google.com>
Thu, 30 Nov 2017 20:59:38 +0000 (30 15:59 -0500)
committerDouglas Katzman <dougk@google.com>
Thu, 30 Nov 2017 21:08:02 +0000 (30 16:08 -0500)
treeadd82344e626f1afebb817507ac791e0f91adecd
parent7dd21702489f2672480975cc1ce5c1b9927ebf2e
x86-64: Prefer RIP-relative mode for accessing assembly tramps

More work to defrag, but less work to relocate spaces
(in reality there are < 1 dozen affected instructions)

However, the win is that intra-varyobj-space opaque pointers (ones not seen
by GC) are all space-relative, so as long as fixedobj space does not need
relocation, the varyobj space can move anywhere with no fixups internal to
that space. We must fix pointers into it of course.
src/compiler/x86-64/alloc.lisp
src/compiler/x86-64/cell.lisp
src/compiler/x86-64/insts.lisp
src/compiler/x86-64/target-insts.lisp
src/runtime/immobile-space.c
tests/x86-64-codegen.impure.lisp