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

Added FDEFN changes.

parent b0b30e9f
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman (FAHLMAN@CMUC). ;;; Scott Fahlman (FAHLMAN@CMUC).
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/sparc/arith.lisp,v 1.8 1990/12/16 19:19:21 wlott Exp $ ;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/assembly/sparc/arith.lisp,v 1.9 1992/03/11 21:37:45 wlott Exp $
;;; ;;;
;;; Stuff to handle simple cases for generic arithmetic. ;;; Stuff to handle simple cases for generic arithmetic.
;;; ;;;
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
(:temp temp2 non-descriptor-reg nl1-offset) (:temp temp2 non-descriptor-reg nl1-offset)
(:temp lra descriptor-reg lra-offset) (:temp lra descriptor-reg lra-offset)
(:temp nargs any-reg nargs-offset) (:temp nargs any-reg nargs-offset)
(:temp cname descriptor-reg cname-offset)
(:temp ocfp any-reg ocfp-offset)) (:temp ocfp any-reg ocfp-offset))
(inst andcc zero-tn x 3) (inst andcc zero-tn x 3)
(inst b :ne DO-STATIC-FUN) (inst b :ne DO-STATIC-FUN)
...@@ -54,9 +53,8 @@ ...@@ -54,9 +53,8 @@
(lisp-return lra :offset 2) (lisp-return lra :offset 2)
DO-STATIC-FUN DO-STATIC-FUN
(load-symbol cname 'two-arg-+) (inst ld code-tn null-tn (static-function-offset 'two-arg-+))
(inst li nargs (fixnum 2)) (inst li nargs (fixnum 2))
(loadw code-tn cname vm:symbol-raw-function-addr-slot vm:other-pointer-type)
(inst move ocfp cfp-tn) (inst move ocfp cfp-tn)
(inst j code-tn (inst j code-tn
(- (* vm:function-header-code-offset vm:word-bytes) (- (* vm:function-header-code-offset vm:word-bytes)
...@@ -82,7 +80,6 @@ ...@@ -82,7 +80,6 @@
(:temp temp2 non-descriptor-reg nl1-offset) (:temp temp2 non-descriptor-reg nl1-offset)
(:temp lra descriptor-reg lra-offset) (:temp lra descriptor-reg lra-offset)
(:temp nargs any-reg nargs-offset) (:temp nargs any-reg nargs-offset)
(:temp cname descriptor-reg cname-offset)
(:temp ocfp any-reg ocfp-offset)) (:temp ocfp any-reg ocfp-offset))
(inst andcc zero-tn x 3) (inst andcc zero-tn x 3)
(inst b :ne DO-STATIC-FUN) (inst b :ne DO-STATIC-FUN)
...@@ -101,9 +98,8 @@ ...@@ -101,9 +98,8 @@
(lisp-return lra :offset 2) (lisp-return lra :offset 2)
DO-STATIC-FUN DO-STATIC-FUN
(load-symbol cname 'two-arg--) (inst ld code-tn null-tn (static-function-offset 'two-arg--))
(inst li nargs (fixnum 2)) (inst li nargs (fixnum 2))
(loadw code-tn cname vm:symbol-raw-function-addr-slot vm:other-pointer-type)
(inst move ocfp cfp-tn) (inst move ocfp cfp-tn)
(inst j code-tn (inst j code-tn
(- (* vm:function-header-code-offset vm:word-bytes) (- (* vm:function-header-code-offset vm:word-bytes)
...@@ -134,7 +130,6 @@ ...@@ -134,7 +130,6 @@
(:temp hi non-descriptor-reg nl2-offset) (:temp hi non-descriptor-reg nl2-offset)
(:temp lra descriptor-reg lra-offset) (:temp lra descriptor-reg lra-offset)
(:temp nargs any-reg nargs-offset) (:temp nargs any-reg nargs-offset)
(:temp cname descriptor-reg cname-offset)
(:temp ocfp any-reg ocfp-offset)) (:temp ocfp any-reg ocfp-offset))
;; If either arg is not a fixnum, call the static function. ;; If either arg is not a fixnum, call the static function.
(inst andcc zero-tn x 3) (inst andcc zero-tn x 3)
...@@ -193,9 +188,8 @@ ...@@ -193,9 +188,8 @@
(lisp-return lra :offset 2) (lisp-return lra :offset 2)
DO-STATIC-FUN DO-STATIC-FUN
(load-symbol cname 'two-arg-*) (inst ld code-tn null-tn (static-function-offset 'two-arg-*))
(inst li nargs (fixnum 2)) (inst li nargs (fixnum 2))
(loadw code-tn cname symbol-raw-function-addr-slot other-pointer-type)
(inst move ocfp cfp-tn) (inst move ocfp cfp-tn)
(inst j code-tn (inst j code-tn
(- (* vm:function-header-code-offset vm:word-bytes) (- (* vm:function-header-code-offset vm:word-bytes)
...@@ -384,7 +378,6 @@ ...@@ -384,7 +378,6 @@
(:res res descriptor-reg a0-offset) (:res res descriptor-reg a0-offset)
(:temp nargs any-reg nargs-offset) (:temp nargs any-reg nargs-offset)
(:temp cname descriptor-reg cname-offset)
(:temp ocfp any-reg ocfp-offset)) (:temp ocfp any-reg ocfp-offset))
(inst andcc zero-tn x 3) (inst andcc zero-tn x 3)
(inst b :ne DO-STATIC-FN) (inst b :ne DO-STATIC-FN)
...@@ -393,10 +386,8 @@ ...@@ -393,10 +386,8 @@
(inst cmp x y) (inst cmp x y)
DO-STATIC-FN DO-STATIC-FN
(load-symbol cname ',static-fn) (inst ld code-tn null-tn (static-function-offset ',static-fn))
(inst li nargs (fixnum 2)) (inst li nargs (fixnum 2))
(loadw code-tn cname vm:symbol-raw-function-addr-slot
vm:other-pointer-type)
(inst move ocfp cfp-tn) (inst move ocfp cfp-tn)
(inst j code-tn (inst j code-tn
(- (* vm:function-header-code-offset vm:word-bytes) (- (* vm:function-header-code-offset vm:word-bytes)
...@@ -428,7 +419,6 @@ ...@@ -428,7 +419,6 @@
(:temp lra descriptor-reg lra-offset) (:temp lra descriptor-reg lra-offset)
(:temp nargs any-reg nargs-offset) (:temp nargs any-reg nargs-offset)
(:temp cname descriptor-reg cname-offset)
(:temp ocfp any-reg ocfp-offset)) (:temp ocfp any-reg ocfp-offset))
(inst cmp x y) (inst cmp x y)
(inst b :eq RETURN-T) (inst b :eq RETURN-T)
...@@ -443,9 +433,8 @@ ...@@ -443,9 +433,8 @@
(lisp-return lra :offset 2) (lisp-return lra :offset 2)
DO-STATIC-FN DO-STATIC-FN
(load-symbol cname 'eql) (inst ld code-tn null-tn (static-function-offset 'eql))
(inst li nargs (fixnum 2)) (inst li nargs (fixnum 2))
(loadw code-tn cname vm:symbol-raw-function-addr-slot vm:other-pointer-type)
(inst move ocfp cfp-tn) (inst move ocfp cfp-tn)
(inst j code-tn (inst j code-tn
(- (* vm:function-header-code-offset vm:word-bytes) (- (* vm:function-header-code-offset vm:word-bytes)
...@@ -468,7 +457,6 @@ ...@@ -468,7 +457,6 @@
(:temp lra descriptor-reg lra-offset) (:temp lra descriptor-reg lra-offset)
(:temp nargs any-reg nargs-offset) (:temp nargs any-reg nargs-offset)
(:temp cname descriptor-reg cname-offset)
(:temp ocfp any-reg ocfp-offset)) (:temp ocfp any-reg ocfp-offset))
(inst cmp x y) (inst cmp x y)
(inst b :eq RETURN-T) (inst b :eq RETURN-T)
...@@ -482,9 +470,8 @@ ...@@ -482,9 +470,8 @@
(lisp-return lra :offset 2) (lisp-return lra :offset 2)
DO-STATIC-FN DO-STATIC-FN
(load-symbol cname 'two-arg-=) (inst ld code-tn null-tn (static-function-offset 'two-arg-=))
(inst li nargs (fixnum 2)) (inst li nargs (fixnum 2))
(loadw code-tn cname vm:symbol-raw-function-addr-slot vm:other-pointer-type)
(inst move ocfp cfp-tn) (inst move ocfp cfp-tn)
(inst j code-tn (inst j code-tn
(- (* vm:function-header-code-offset vm:word-bytes) (- (* vm:function-header-code-offset vm:word-bytes)
...@@ -507,7 +494,6 @@ ...@@ -507,7 +494,6 @@
(:temp lra descriptor-reg lra-offset) (:temp lra descriptor-reg lra-offset)
(:temp nargs any-reg nargs-offset) (:temp nargs any-reg nargs-offset)
(:temp cname descriptor-reg cname-offset)
(:temp ocfp any-reg ocfp-offset)) (:temp ocfp any-reg ocfp-offset))
(inst cmp x y) (inst cmp x y)
(inst b :eq RETURN-NIL) (inst b :eq RETURN-NIL)
...@@ -521,9 +507,8 @@ ...@@ -521,9 +507,8 @@
(lisp-return lra :offset 2) (lisp-return lra :offset 2)
DO-STATIC-FN DO-STATIC-FN
(load-symbol cname 'two-arg-=) (inst ld code-tn null-tn (static-function-offset 'two-arg-=))
(inst li nargs (fixnum 2)) (inst li nargs (fixnum 2))
(loadw code-tn cname vm:symbol-raw-function-addr-slot vm:other-pointer-type)
(inst move ocfp cfp-tn) (inst move ocfp cfp-tn)
(inst j code-tn (inst j code-tn
(- (* vm:function-header-code-offset vm:word-bytes) (- (* vm:function-header-code-offset vm:word-bytes)
......
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