Skip to content
Snippets Groups Projects
Commit 004a8d18 authored by wlott's avatar wlott
Browse files

Some changes to set-fdefn-function. Now it assumes that anything other

than function-header-type should go though closure-tramps instead of
worrying about the exact header type.
parent 06f2e3ff
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/cell.lisp,v 1.10 1992/03/11 21:29:08 wlott Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/cell.lisp,v 1.11 1992/04/14 02:58:54 wlott Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -149,18 +149,11 @@ ...@@ -149,18 +149,11 @@
(:temporary (:scs (non-descriptor-reg)) type) (:temporary (:scs (non-descriptor-reg)) type)
(:results (result :scs (descriptor-reg))) (:results (result :scs (descriptor-reg)))
(:generator 38 (:generator 38
(let ((closure (gen-label)) (let ((normal-fn (gen-label)))
(normal-fn (gen-label)))
(load-type type function (- function-pointer-type)) (load-type type function (- function-pointer-type))
(inst nop)
(inst cmp type closure-header-type)
(inst b :eq closure)
(inst cmp type funcallable-instance-header-type)
(inst b :eq closure)
(inst cmp type function-header-type) (inst cmp type function-header-type)
(inst b :eq normal-fn) (inst b :eq normal-fn)
(inst move lip function) (inst move lip function)
(emit-label closure)
(inst li lip (make-fixup "_closure_tramp" :foreign)) (inst li lip (make-fixup "_closure_tramp" :foreign))
(emit-label normal-fn) (emit-label normal-fn)
(storew function fdefn fdefn-function-slot other-pointer-type) (storew function fdefn fdefn-function-slot other-pointer-type)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment