[Openmcl-cvs-notifications] r11676 - in /trunk/source: compiler/PPC/PPC32/ppc32-arch.lisp compiler/PPC/PPC64/ppc64-arch.lisp compiler/X86/X8632/x8632-arch.lisp compiler/X86/X8664/x8664-arch.lisp level-1/l1-aprims.lisp

gb at clozure.com gb at clozure.com
Sun Feb 1 07:37:53 EST 2009


Author: gb
Date: Sun Feb  1 07:37:53 2009
New Revision: 11676

Log:
Lisp-side of user-defined GCable-pointer dispose-functions support:
arch-specific imports table entries, simple wrapper
REGISTER-XMACPTR-DISPOSE-FUNCTION.

Modified:
    trunk/source/compiler/PPC/PPC32/ppc32-arch.lisp
    trunk/source/compiler/PPC/PPC64/ppc64-arch.lisp
    trunk/source/compiler/X86/X8632/x8632-arch.lisp
    trunk/source/compiler/X86/X8664/x8664-arch.lisp
    trunk/source/level-1/l1-aprims.lisp

Modified: trunk/source/compiler/PPC/PPC32/ppc32-arch.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/compiler/PPC/PPC32/ppc32-arch.lisp (original)
+++ trunk/source/compiler/PPC/PPC32/ppc32-arch.lisp Sun Feb  1 07:37:53 2009
@@ -578,7 +578,7 @@
   free
   jvm-init
   tcr-frame-ptr
-  register_cstack
+  register-xmacptr-dispose-function
   open-debug-output
   get-r-debug
   restore-soft-stack-limit

Modified: trunk/source/compiler/PPC/PPC64/ppc64-arch.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/compiler/PPC/PPC64/ppc64-arch.lisp (original)
+++ trunk/source/compiler/PPC/PPC64/ppc64-arch.lisp Sun Feb  1 07:37:53 2009
@@ -648,7 +648,7 @@
   free
   jvm-init
   tcr-frame-ptr
-  register_cstack
+  register-xmacptr-dispose-function
   open-debug-output
   get-r-debug
   restore-soft-stack-limit

Modified: trunk/source/compiler/X86/X8632/x8632-arch.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/compiler/X86/X8632/x8632-arch.lisp (original)
+++ trunk/source/compiler/X86/X8632/x8632-arch.lisp Sun Feb  1 07:37:53 2009
@@ -695,7 +695,7 @@
   free
   jvm-init
   tcr-frame-ptr
-  register_cstack
+  register-xmacptr-dispose-function
   open-debug-output
   get-r-debug
   restore-soft-stack-limit

Modified: trunk/source/compiler/X86/X8664/x8664-arch.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/compiler/X86/X8664/x8664-arch.lisp (original)
+++ trunk/source/compiler/X86/X8664/x8664-arch.lisp Sun Feb  1 07:37:53 2009
@@ -795,7 +795,7 @@
   free
   jvm-init
   tcr-frame-ptr
-  register_cstack
+  register-xmacptr-dispose-function
   open-debug-output
   get-r-debug
   restore-soft-stack-limit

Modified: trunk/source/level-1/l1-aprims.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-1/l1-aprims.lisp (original)
+++ trunk/source/level-1/l1-aprims.lisp Sun Feb  1 07:37:53 2009
@@ -1173,6 +1173,14 @@
 (defstatic *upper-to-lower* nil)
 (defstatic *lower-to-upper*  nil)
 =

+;;; "address" should be the address (as returned by FOREIGN-SYMBOL-ADDRESS)
+;;; of a foreign function that accepts a pointer as an argument and does
+;;; whatever's needed to dispose of it.  That function can be called from
+;;; the GC, so it shouldn't call back into lisp.
+(defun register-xmacptr-dispose-function (address)
+  (ff-call (%kernel-import target::kernel-import-register-xmacptr-dispose-=
function)
+           :address address
+           :int))
 =

 =

 ;;; This alist is automatically (and not too cleverly ...) generated.



More information about the Openmcl-cvs-notifications mailing list