X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-64-assem.S;h=6ea7d2153562b86e8bbcb7e397a75642ff438dca;hb=2b90fd1dbad23322258222a2ef4cef7f6a00831d;hp=92e07164e7bcaaef94c28990131128a08db362c2;hpb=f78e2d271f540d68d35b4f41696ce746ff129ee3;p=sbcl.git diff --git a/src/runtime/x86-64-assem.S b/src/runtime/x86-64-assem.S index 92e0716..6ea7d21 100644 --- a/src/runtime/x86-64-assem.S +++ b/src/runtime/x86-64-assem.S @@ -17,6 +17,7 @@ #include "validate.h" #include "sbcl.h" #include "genesis/closure.h" +#include "genesis/funcallable-instance.h" #include "genesis/fdefn.h" #include "genesis/static-symbols.h" #include "genesis/symbol.h" @@ -283,6 +284,17 @@ GNAME(closure_tramp): jmp *CLOSURE_FUN_OFFSET(%rax) .size GNAME(closure_tramp), .-GNAME(closure_tramp) + .text + .align align_8byte,0x90 + .global GNAME(funcallable_instance_tramp) + .type GNAME(funcallable_instance_tramp),@function +GNAME(funcallable_instance_tramp): + mov FUNCALLABLE_INSTANCE_FUNCTION_OFFSET(%rax),%rax + /* KLUDGE: on this platform, whatever kind of function is in %rax + * now, the first word of it contains the address to jump to. */ + jmp *CLOSURE_FUN_OFFSET(%rax) + .size GNAME(funcallable_instance_tramp), .-GNAME(funcallable_instance_tramp) + /* * fun-end breakpoint magic */