[Openmcl-devel] MISC-SET-{S,U}64

James Bielman jamesjb at jamesjb.com
Wed Jul 13 00:40:48 PDT 2005


Gary Byers <gb at clozure.com> writes:

> This is fixed in CVS.
>
> As always, it's a good idea to recompile everything after a "cvs update".

Cool, all the CFFI tests pass now.

I ran into this compiler error trying to compile CL-PPCRE:

Welcome to OpenMCL Version (Alpha: DarwinPPC64) 0.14.3-050711!
? (require "cl-ppcre")
;Compiling "/Users/jamesjb/.asdf-install-dir/site/cl-ppcre-1.2.9/repetition-closures.lisp"...
> Error in process listener(1): Unknown vinsn: CCL::MISC-SET-S64
> While executing: CCL::NEED-VINSN-TEMPLATE
> Type :POP to abort.

The code in question boiled down to basically:

  (defparameter *a* (make-array 10 :element-type 'fixnum))
  (declaim (type (array fixnum (*)) *a*))

  (defun x (y)
    (declare (type fixnum y))
    (setf (aref *a* y) 100))

I took at stab at writing the vinsn and the unsigned version:

Index: compiler/PPC/PPC64/ppc64-vinsns.lisp
===================================================================
RCS file: /usr/local/tmpcvs/ccl-0.14-dev/ccl/compiler/PPC/PPC64/ppc64-vinsns.lisp,v
retrieving revision 1.28
diff -u -r1.28 ppc64-vinsns.lisp
--- compiler/PPC/PPC64/ppc64-vinsns.lisp	11 Jul 2005 09:07:10 -0000	1.28
+++ compiler/PPC/PPC64/ppc64-vinsns.lisp	13 Jul 2005 07:11:37 -0000
@@ -101,7 +101,17 @@
 				     ())
   (ld dest (:apply + ppc64::misc-data-offset (:apply ash idx ppc64::word-shift)) v))
 
-  
+(define-ppc64-vinsn misc-set-u64 (()
+                                  ((val :u64)
+                                   (v :lisp)
+                                   (scaled-idx :u64)))
+  (stdx val v scaled-idx))
+
+(define-ppc64-vinsn misc-set-s64 (()
+                                  ((val :s64)
+                                   (v :lisp)
+                                   (scaled-idx :u64)))
+  (stdx val v scaled-idx))
 
 
 (define-ppc64-vinsn misc-ref-u32  (((dest :u32))



More information about the Openmcl-devel mailing list