Some support for platforms whose libraries do not maintain a frame pointer
authorDavid Lichteblau <david@lichteblau.com>
Mon, 12 Nov 2012 19:13:09 +0000 (20:13 +0100)
committerDavid Lichteblau <david@lichteblau.com>
Wed, 5 Dec 2012 16:34:28 +0000 (17:34 +0100)
commitd1a2fa597f993d56bcfa73a64509465d56b4ffac
treedfa6a79c77de05833115dbdd08d997b85cd62d52
parent179de85ab4fdff049c72ddb2767b93d838494b09
Some support for platforms whose libraries do not maintain a frame pointer

For platforms on which system libraries are built with the
equivalent of -fomit-frame-pointer, i.e. do not maintain EBP, save
it in the thread structure upon entry to an exception handler, and
restore the register during call_into_lisp.

Currently for Windows on x86-64 only, where it is required.
Analogous changes had been implemented for x86, but are not included
here.

Thanks to Anton Kovalenko.
src/compiler/generic/objdef.lisp
src/runtime/safepoint.c
src/runtime/thread.c
src/runtime/win32-os.c
src/runtime/x86-64-assem.S