[Openmcl-cvs-notifications] r11587 - /trunk/source/level-0/PPC/ppc-def.lisp

gb at clozure.com gb at clozure.com
Tue Jan 6 04:15:03 EST 2009


Author: gb
Date: Tue Jan  6 04:15:03 2009
New Revision: 11587

Log:
Stop pretending to support :MONITOR-EXCEPTION-PORTS in the runtime %FF-CALL.



Modified:
    trunk/source/level-0/PPC/ppc-def.lisp

Modified: trunk/source/level-0/PPC/ppc-def.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/level-0/PPC/ppc-def.lisp (original)
+++ trunk/source/level-0/PPC/ppc-def.lisp Tue Jan  6 04:15:03 2009
@@ -650,12 +650,8 @@
     (defun %ff-call (entry &rest specs-and-vals)
       (declare (dynamic-extent specs-and-vals))
       (let* ((len (length specs-and-vals))
-             (total-words 0)
-             (monitor (eq (car specs-and-vals) :monitor-exception-ports)))
+             (total-words 0))
         (declare (fixnum len total-words))
-        (when monitor
-          (decf len)
-          (setq specs-and-vals (cdr specs-and-vals)))
         (unless (oddp len)
           (error "Length of ~s is even.  Missing result ?" specs-and-vals))
         (let* ((result-spec (or (car (last specs-and-vals)) :void))
@@ -728,7 +724,6 @@
                                           (1+ (- total-words 8)))))))
               =

               (%%ff-call
-               monitor
                fpr-reload-sizes
                fpr-reload-offsets
                (- (logandc2 (+ frame-size 3) 3))
@@ -750,21 +745,18 @@
               (:unsigned-byte (%get-unsigned-byte buf 3)))))))
 =

 =

-    (defppclapfunction %%ff-call ((monitor-exception-ports 12)
-                                  (reload-sizes 8)
+    (defppclapfunction %%ff-call ((reload-sizes 8)
                                   (reload-offsets 4)
                                   (frame-size 0)			     =

                                   (total-words arg_x)
                                   (buf arg_y)
                                   (entry arg_z))
-      (check-nargs 7)
-      (la imm0 16 vsp)
+      (check-nargs 6)
+      (la imm0 12 vsp)
       (save-lisp-context imm0)
       (lwz imm0 frame-size vsp)
       (stwux sp sp imm0)
       (stw sp ppc32::c-frame.savelr sp)
-      (lwz imm2 monitor-exception-ports vsp)
-      (cmpwi cr1 imm2 nil)
       (macptr-ptr imm2 buf)
       (mr imm1 imm2)
       (la imm3 ppc32::c-frame.param0 sp)
@@ -923,11 +915,7 @@
       (lfdx fp13 imm1 imm2)
       @loaded
       (vpush buf)
-      (bne cr1 @callX)
       (bla .SPpoweropen-ffcall)
-      (b @called)
-      @callX
-      (bla .SPpoweropen-ffcallX)
       @called
       (vpop buf)
       (macptr-ptr imm2 buf)
@@ -1005,23 +993,17 @@
       (ba .SPmakes64))
 =

   ;;; This is just here so that we can jump to a subprim from lisp.
-    (defppclapfunction %do-ff-call ((monitor arg_x) (regbuf arg_y) (entry =
arg_z))
+    (defppclapfunction %do-ff-call ((regbuf arg_y) (entry arg_z))
       (cmpdi cr0 regbuf nil)
-      (cmpdi cr1 monitor nil)
       (bnea cr0 .SPpoweropen-ffcall-return-registers)
-      (beqa cr1 .SPpoweropen-ffcall)
-      (ba .SPpoweropen-ffcallx))
+      (ba .SPpoweropen-ffcall))
   =

     (defun %ff-call (entry &rest specs-and-vals)
       (declare (dynamic-extent specs-and-vals))
       (let* ((len (length specs-and-vals))
              (total-words 0)
-             (monitor (eq (car specs-and-vals) :monitor-exception-ports))
              (registers nil))
         (declare (fixnum len total-words))
-        (when monitor
-          (decf len)
-          (setq specs-and-vals (cdr specs-and-vals)))
         (let* ((result-spec (or (car (last specs-and-vals)) :void))
                (nargs (ash (the fixnum (1- len)) -1)))
           (declare (fixnum nargs))
@@ -1123,7 +1105,7 @@
                                 (incf p 8)
                                 (incf offset 8))))))
                        (%load-fp-arg-regs n-fp-args fp-args)
-                       (%do-ff-call monitor registers entry)
+                       (%do-ff-call registers entry)
                        (values (%%ff-result result-spec)))))))))))
 =

     )



More information about the Openmcl-cvs-notifications mailing list