Better error when calling an undefined alien function on x86-64.
authorStas Boukarev <stassats@gmail.com>
Tue, 1 Oct 2013 17:03:00 +0000 (21:03 +0400)
committerStas Boukarev <stassats@gmail.com>
Tue, 1 Oct 2013 17:03:00 +0000 (21:03 +0400)
commitff2ddcf1c9f142dbf0758d1596a9040bc9bc10cf
tree6f1c4edc472b5236d1fa86653d26f0b3e6812514
parent45d50c67c7f3d81b3357c785d7226df22421a261
Better error when calling an undefined alien function on x86-64.

(sb-alien:alien-funcall
 (sb-alien:extern-alien "nnnn" (function sb-alien:void)))
now says "The alien function "nnnn" is undefined." instead of
"Attempt to call an undefined alien function."

This is achieved by storing the address of the linkage table entry in
RBX before the call. Should be trivial to port to other platforms.
NEWS
package-data-list.lisp-expr
src/code/condition.lisp
src/code/interr.lisp
src/compiler/generic/interr.lisp
src/compiler/generic/parms.lisp
src/compiler/x86-64/c-call.lisp
src/runtime/interrupt.c
src/runtime/os-common.c
src/runtime/x86-64-assem.S