[Openmcl-cvs-notifications] r7991 - /trunk/ccl/level-0/X86/x86-array.lisp

rme at clozure.com rme at clozure.com
Wed Jan 2 20:30:15 MST 2008


Author: rme
Date: Wed Jan  2 22:30:14 2008
New Revision: 7991

Log:
Update %aset2, %aref3, and %aset3 to take account of the return
address on the stack.

It's not easy for these functions to get called, but they shouldn't
just sit around being wrong.


Modified:
    trunk/ccl/level-0/X86/x86-array.lisp

Modified: trunk/ccl/level-0/X86/x86-array.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/ccl/level-0/X86/x86-array.lisp (original)
+++ trunk/ccl/level-0/X86/x86-array.lisp Wed Jan  2 22:30:14 2008
@@ -216,28 +216,28 @@
   (check-nargs 3)
   (jmp-subprim .SParef2))
 =

-(defx86lapfunction %aref3 ((array 0) (i arg_x) (j arg_y) (k arg_z))
+(defx86lapfunction %aref3 ((array 8) #|(ra 0)|# (i arg_x) (j arg_y) (k arg=
_z))
   (check-nargs 4)
+  (pop (% ra0))
   (pop (% temp0))
   (discard-reserved-frame)
+  (push (% ra0))
   (jmp-subprim .SParef3))
 =

-(defx86lapfunction %aset2 ((array 0) (i arg_x) (j arg_y) (newval arg_z))
+(defx86lapfunction %aset2 ((array 8) #|(ra 0)|# (i arg_x) (j arg_y) (newva=
l arg_z))
   (check-nargs 4)
+  (pop (% ra0))
   (pop (% temp0))
   (discard-reserved-frame)
+  (push (% ra0))
   (jmp-subprim .SPaset2))
 =

-(defx86lapfunction %aset3 ((array 8) (i 0) (j arg_x) (k arg_y) (newval arg=
_z))
+(defx86lapfunction %aset3 ((array 16) (i 8) #|(ra 0)|# (j arg_x) (k arg_y)=
 (newval arg_z))
   (check-nargs 5)
+  (pop (% ra0))
   (pop (% temp0))
   (pop (% temp1))
   (discard-reserved-frame)
+  (push (% ra0))
   (jmp-subprim .SPaset3))
 =

-
-
-
-
-  =

-




More information about the Openmcl-cvs-notifications mailing list