0.9.10.17: fix bug #400, aka more correct CONSTANTP
[sbcl.git] / src / compiler / aliencomp.lisp
index 7b19ac5..03de07c 100644 (file)
                   (error "Something is broken.")))
         (lvar (node-lvar call))
         (args args)
-        #!+win32 (stack-pointer (make-stack-pointer-tn)))
+        #!+(or (and x86 darwin) win32) (stack-pointer (make-stack-pointer-tn)))
     (multiple-value-bind (nsp stack-frame-size arg-tns result-tns)
         (make-call-out-tns type)
       #!+x86 (vop set-fpu-word-for-c call block)
-      #!+win32 (vop current-stack-pointer call block stack-pointer)
+      #!+(or (and x86 darwin) win32) (vop current-stack-pointer call block stack-pointer)
       (vop alloc-number-stack-space call block stack-frame-size nsp)
       (dolist (tn arg-tns)
         ;; On PPC, TN might be a list. This is used to indicate
                                            temp-tn
                                            nsp
                                            first-tn))
-          #+(and ppc darwin)
+          #!+(and ppc darwin)
           (when (listp tn)
             ;; This means that we have a float arg that we need to
             ;; also copy to some int regs. The list contains the TN
               ((lvar-tn call block function)
                (reference-tn-list arg-tns nil))
               ((reference-tn-list result-tns t))))
-      #!-win32 (vop dealloc-number-stack-space call block stack-frame-size)
-      #!+win32 (vop reset-stack-pointer call block stack-pointer)
+      #!-(or (and darwin x86) win32) (vop dealloc-number-stack-space call block stack-frame-size)
+      #!+(or (and darwin x86) win32) (vop reset-stack-pointer call block stack-pointer)
       #!+x86 (vop set-fpu-word-for-lisp call block)
       (move-lvar-result call block result-tns lvar))))