CMUCL commit: sparc-tramp-assem-branch src/compiler/sparc (alloc.lisp cell.lisp)

Raymond Toy rtoy at common-lisp.net
Sat Jul 17 21:35:41 CEST 2010


    Date: Saturday, July 17, 2010 @ 15:35:41
  Author: rtoy
    Path: /project/cmucl/cvsroot/src/compiler/sparc
     Tag: sparc-tramp-assem-branch

Modified: alloc.lisp cell.lisp

Remove old commented-out versions in favor of the new versions that
reference the assembly routines.  These should work whether we use
linkage tables or not.


------------+
 alloc.lisp |   23 +----------------------
 cell.lisp  |   57 +++++----------------------------------------------------
 2 files changed, 6 insertions(+), 74 deletions(-)


Index: src/compiler/sparc/alloc.lisp
diff -u src/compiler/sparc/alloc.lisp:1.24.2.2 src/compiler/sparc/alloc.lisp:1.24.2.3
--- src/compiler/sparc/alloc.lisp:1.24.2.2	Sat Jul 17 09:39:30 2010
+++ src/compiler/sparc/alloc.lisp	Sat Jul 17 15:35:41 2010
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/compiler/sparc/alloc.lisp,v 1.24.2.2 2010-07-17 13:39:30 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/compiler/sparc/alloc.lisp,v 1.24.2.3 2010-07-17 19:35:41 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -132,27 +132,6 @@
       (storew null-tn result code-entry-points-slot other-pointer-type)
       (storew null-tn result code-debug-info-slot other-pointer-type))))
 
-#+nil
-(define-vop (make-fdefn)
-  (:args (name :scs (descriptor-reg) :to :eval))
-  (:temporary (:scs (non-descriptor-reg)) temp)
-  (:results (result :scs (descriptor-reg) :from :argument))
-  (:policy :fast-safe)
-  (:translate make-fdefn)
-  (:generator 37
-    (with-fixed-allocation (result temp fdefn-type fdefn-size)
-      ;; For the linkage-table stuff, we need to look up the address
-      ;; of undefined_tramp from the linkage table instead of using
-      ;; the address directly.
-      (inst li temp (make-fixup (extern-alien-name "undefined_tramp")
-				#-linkage-table :foreign
-				#+linkage-table :foreign-data))
-      #+linkage-table
-      (loadw temp temp)
-      (storew name result fdefn-name-slot other-pointer-type)
-      (storew null-tn result fdefn-function-slot other-pointer-type)
-      (storew temp result fdefn-raw-addr-slot other-pointer-type))))
-
 (define-vop (make-fdefn)
   (:args (name :scs (descriptor-reg) :to :eval))
   (:temporary (:scs (non-descriptor-reg)) temp)
Index: src/compiler/sparc/cell.lisp
diff -u src/compiler/sparc/cell.lisp:1.27.2.2 src/compiler/sparc/cell.lisp:1.27.2.3
--- src/compiler/sparc/cell.lisp:1.27.2.2	Sat Jul 17 09:39:30 2010
+++ src/compiler/sparc/cell.lisp	Sat Jul 17 15:35:41 2010
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/compiler/sparc/cell.lisp,v 1.27.2.2 2010-07-17 13:39:30 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/compiler/sparc/cell.lisp,v 1.27.2.3 2010-07-17 19:35:41 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -130,74 +130,27 @@
       (inst b :eq err-lab))
     (inst nop)))
 
-#+nil
 (define-vop (set-fdefn-function)
   (:policy :fast-safe)
   (:translate (setf fdefn-function))
   (:args (function :scs (descriptor-reg) :target result)
 	 (fdefn :scs (descriptor-reg)))
-  (:temporary (:scs (interior-reg)) lip)
-  (:temporary (:scs (non-descriptor-reg)) type)
-  (:results (result :scs (descriptor-reg)))
-  (:generator 38
-    (let ((normal-fn (gen-label)))
-      (load-type type function (- function-pointer-type))
-      (inst cmp type function-header-type)
-      (inst b :eq normal-fn)
-      (inst move lip function)
-      ;; For the linkage-table stuff, we need to look up the address
-      ;; from the linkage table instead of using the address directly.
-      (inst li lip (make-fixup (extern-alien-name "closure_tramp")
-			       #-linkage-table :foreign
-			       #+linkage-table :foreign-data))
-      #+linkage-table
-      (loadw lip lip)
-      (emit-label normal-fn)
-      (storew function fdefn fdefn-function-slot other-pointer-type)
-      (storew lip fdefn fdefn-raw-addr-slot other-pointer-type)
-      (move result function))))
-
-(define-vop (set-fdefn-function)
-  (:policy :fast-safe)
-  (:translate (setf fdefn-function))
-  (:args (function :scs (descriptor-reg) :target result)
-	 (fdefn :scs (descriptor-reg)))
-  (:temporary (:scs (interior-reg)) lip)
+  (:temporary (:scs (descriptor-reg)) temp)
   (:temporary (:scs (non-descriptor-reg)) type)
-  (:temporary (:scs (non-descriptor-reg)) temp)
   (:results (result :scs (descriptor-reg)))
   (:generator 38
     (let ((normal-fn (gen-label)))
       (load-type type function (- function-pointer-type))
       (inst cmp type function-header-type)
       (inst b :eq normal-fn)
-      (inst move lip function)
-      (inst li lip (make-fixup 'closure-tramp
+      (inst move temp function)
+      (inst li temp (make-fixup 'closure-tramp
 			       :assembly-routine))
       (emit-label normal-fn)
       (storew function fdefn fdefn-function-slot other-pointer-type)
-      (storew lip fdefn fdefn-raw-addr-slot other-pointer-type)
+      (storew temp fdefn fdefn-raw-addr-slot other-pointer-type)
       (move result function))))
 
-#+nil
-(define-vop (fdefn-makunbound)
-  (:policy :fast-safe)
-  (:translate fdefn-makunbound)
-  (:args (fdefn :scs (descriptor-reg) :target result))
-  (:temporary (:scs (non-descriptor-reg)) temp)
-  (:results (result :scs (descriptor-reg)))
-  (:generator 38
-    (storew null-tn fdefn fdefn-function-slot other-pointer-type)
-    ;; For the linkage-table stuff, we need to look up the address
-    ;; from the linkage table instead of using the address directly.
-    (inst li temp (make-fixup (extern-alien-name "undefined_tramp")
-			      #-linkage-table :foreign
-			      #+linkage-table :foreign-data))
-    #+linkage-table
-    (loadw temp temp)
-    (storew temp fdefn fdefn-raw-addr-slot other-pointer-type)
-    (move result fdefn)))
-
 (define-vop (fdefn-makunbound)
   (:policy :fast-safe)
   (:translate fdefn-makunbound)



More information about the cmucl-commit mailing list