Simplify (and robustify) regular PACKing
[sbcl.git] / src / runtime / funcall.c
index c3724eb..4eb1d72 100644 (file)
 #include "interrupt.h"
 
 /* This is implemented in assembly language and called from C: */
-extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs);
+extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs)
+#ifdef LISP_FEATURE_X86_64
+    __attribute__((sysv_abi))
+#endif
+    ;
 
 static inline lispobj
 safe_call_into_lisp(lispobj fun, lispobj *args, int nargs)
 {
+#ifndef LISP_FEATURE_SB_SAFEPOINT
     /* SIG_STOP_FOR_GC needs to be enabled before we can call lisp:
      * otherwise two threads racing here may deadlock: the other will
      * wait on the GC lock, and the other cannot stop the first
      * one... */
     check_gc_signals_unblocked_or_lose(0);
+#endif
     return call_into_lisp(fun, args, nargs);
 }