From: Christophe Rhodes Date: Mon, 9 Sep 2002 16:27:28 +0000 (+0000) Subject: 0.7.7.20-backend-cleanup-1.2: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=2c467e05d0b902cd0e78658637066137644ddd6a;p=sbcl.git 0.7.7.20-backend-cleanup-1.2: Delete unused assembly/ppc/foo.lisp file. --- diff --git a/src/assembly/ppc/foo.lisp b/src/assembly/ppc/foo.lisp deleted file mode 100644 index 016d0f1..0000000 --- a/src/assembly/ppc/foo.lisp +++ /dev/null @@ -1,210 +0,0 @@ -(in-package "SB!VM") - - -;;;; Return-multiple with other than one value - -(define-assembly-routine - (return-multiple - (:return-style :none)) - - ;; These four are really arguments. - ((:temp nvals any-reg nargs-offset) - (:temp vals any-reg nl0-offset) - (:temp ocfp any-reg nl1-offset) - (:temp lra descriptor-reg lra-offset) - - ;; These are just needed to facilitate the transfer - (:temp lip interior-reg lip-offset) - (:temp count any-reg nl2-offset) - (:temp src any-reg nl3-offset) - (:temp dst any-reg cfunc-offset) - (:temp temp descriptor-reg l0-offset) - - - ;; These are needed so we can get at the register args. - (:temp a0 descriptor-reg a0-offset) - (:temp a1 descriptor-reg a1-offset) - (:temp a2 descriptor-reg a2-offset) - (:temp a3 descriptor-reg a3-offset)) - - ;; Note, because of the way the return-multiple vop is written, we can - ;; assume that we are never called with nvals == 1 and that a0 has already - ;; been loaded. - (inst cmpwi nvals 0)) -#| - (inst ble default-a0-and-on) - (inst cmpwi nvals (fixnumize 2)) - (inst lwz a1 vals (* 1 n-word-bytes)) - (inst ble default-a2-and-on) - (inst cmpwi nvals (fixnumize 3)) - (inst lwz a2 vals (* 2 n-word-bytes)) - (inst ble default-a3-and-on) - (inst cmpwi nvals (fixnumize 4)) - (inst lwz a3 vals (* 3 n-word-bytes)) - (inst ble done) - - ;; Copy the remaining args to the top of the stack. - (inst addi src vals (* 4 n-word-bytes)) - (inst addi dst cfp-tn (* 4 n-word-bytes)) - (inst addic. count nvals (- (fixnumize 4))) - - LOOP - (inst subic. count count (fixnumize 1)) - (inst lwz temp src 0) - (inst addi src src n-word-bytes) - (inst stw temp dst 0) - (inst addi dst dst n-word-bytes) - (inst bge loop) - - (inst b done) - - DEFAULT-A0-AND-ON - (inst mr a0 null-tn) - (inst mr a1 null-tn) - DEFAULT-A2-AND-ON - (inst mr a2 null-tn) - DEFAULT-A3-AND-ON - (inst mr a3 null-tn) - DONE - - ;; Clear the stack. - (move ocfp-tn cfp-tn) - (move cfp-tn ocfp) - (inst add csp-tn ocfp-tn nvals) - - ;; Return. - (lisp-return lra lip)) - - -;;;; tail-call-variable. - -#+sb-assembling ;; no vop for this one either. -(define-assembly-routine - (tail-call-variable - (:return-style :none)) - - ;; These are really args. - ((:temp args any-reg nl0-offset) - (:temp lexenv descriptor-reg lexenv-offset) - - ;; We need to compute this - (:temp nargs any-reg nargs-offset) - - ;; These are needed by the blitting code. - (:temp src any-reg nl1-offset) - (:temp dst any-reg nl2-offset) - (:temp count any-reg nl3-offset) - (:temp temp descriptor-reg l0-offset) - (:temp lip interior-reg lip-offset) - - ;; These are needed so we can get at the register args. - (:temp a0 descriptor-reg a0-offset) - (:temp a1 descriptor-reg a1-offset) - (:temp a2 descriptor-reg a2-offset) - (:temp a3 descriptor-reg a3-offset)) - - - ;; Calculate NARGS (as a fixnum) - (inst sub nargs csp-tn args) - - ;; Load the argument regs (must do this now, 'cause the blt might - ;; trash these locations) - (inst lwz a0 args (* 0 n-word-bytes)) - (inst lwz a1 args (* 1 n-word-bytes)) - (inst lwz a2 args (* 2 n-word-bytes)) - (inst lwz a3 args (* 3 n-word-bytes)) - - ;; Calc SRC, DST, and COUNT - (inst addic. count nargs (fixnumize (- register-arg-count))) - (inst addi src args (* n-word-bytes register-arg-count)) - (inst ble done) - (inst addi dst cfp-tn (* n-word-bytes register-arg-count)) - - LOOP - ;; Copy one arg. - (inst lwz temp src 0) - (inst addi src src n-word-bytes) - (inst stw temp dst 0) - (inst addic. count count (fixnumize -1)) - (inst addi dst dst n-word-bytes) - (inst bgt loop) - - DONE - ;; We are done. Do the jump. - (loadw temp lexenv closure-fun-slot fun-pointer-lowtag) - (lisp-jump temp lip)) - - - -;;;; Non-local exit noise. - -(define-assembly-routine (unwind - (:return-style :none) - (:translate %continue-unwind) - (:policy :fast-safe)) - ((:arg block (any-reg descriptor-reg) a0-offset) - (:arg start (any-reg descriptor-reg) ocfp-offset) - (:arg count (any-reg descriptor-reg) nargs-offset) - (:temp lra descriptor-reg lra-offset) - (:temp lip interior-reg lip-offset) - (:temp cur-uwp any-reg nl0-offset) - (:temp next-uwp any-reg nl1-offset) - (:temp target-uwp any-reg nl2-offset)) - (declare (ignore start count)) - - (let ((error (generate-error-code nil invalid-unwind-error))) - (inst cmpwi block 0) - (inst beq error)) - - (load-symbol-value cur-uwp *current-unwind-protect-block*) - (loadw target-uwp block unwind-block-current-uwp-slot) - (inst cmpw cur-uwp target-uwp) - (inst bne do-uwp) - - (move cur-uwp block) - - DO-EXIT - - (loadw cfp-tn cur-uwp unwind-block-current-cont-slot) - (loadw code-tn cur-uwp unwind-block-current-code-slot) - (loadw lra cur-uwp unwind-block-entry-pc-slot) - (lisp-return lra lip :frob-code nil) - - DO-UWP - - (loadw next-uwp cur-uwp unwind-block-current-uwp-slot) - (store-symbol-value next-uwp *current-unwind-protect-block*) - (inst b do-exit)) - -(define-assembly-routine (throw - (:return-style :none)) - ((:arg target descriptor-reg a0-offset) - (:arg start any-reg ocfp-offset) - (:arg count any-reg nargs-offset) - (:temp catch any-reg a1-offset) - (:temp tag descriptor-reg a2-offset)) - - (declare (ignore start count)) - - (load-symbol-value catch *current-catch-block*) - - loop - - (let ((error (generate-error-code nil unseen-throw-tag-error target))) - (inst cmpwi catch 0) - (inst beq error)) - - (loadw tag catch catch-block-tag-slot) - (inst cmpw tag target) - (inst beq exit) - (loadw catch catch catch-block-previous-catch-slot) - (inst b loop) - - exit - - (move target catch) - (inst ba (make-fixup 'unwind :assembly-routine))) - - - -|# \ No newline at end of file diff --git a/version.lisp-expr b/version.lisp-expr index cfe3e08..a3238b9 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.7.20-backend-cleanup-1.1" +"0.7.7.20-backend-cleanup-1.2"