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