[armedbear-cvs] r11584 - trunk/abcl/src/org/armedbear/lisp

Erik Huelsmann ehuelsmann at common-lisp.net
Sat Jan 24 18:33:43 UTC 2009


Author: ehuelsmann
Date: Sat Jan 24 18:33:41 2009
New Revision: 11584

Log:
Handle both 'long' as well as 'double' argument and return types as types of size 2
regardless of whether we have those types now (we will later on...)

Modified:
   trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp	(original)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp	Sat Jan 24 18:33:41 2009
@@ -420,10 +420,13 @@
                         (princ #\) s)
                         (princ (or return-type "V") s))))
         (stack-effect (let ((result (cond ((null return-type) 0)
-                                          ((equal return-type "J") 2)
+                                          ((or (equal return-type "J")
+                                               (equal return-type "D")) 2)
                                           (t 1))))
                         (dolist (type arg-types result)
-                          (decf result (if (equal type "J") 2 1))))))
+                          (decf result (if (or (equal type "J")
+                                               (equal type "D"))
+                                           2 1))))))
     (cons descriptor stack-effect)))
 
 (defparameter *descriptors* (make-hash-table :test #'equal))




More information about the armedbear-cvs mailing list