|
[Sbcl-commits] CVS: sbcl/src/compiler/hppa array.lisp,1.6,1.6.2.1 char.lisp,1.1,1.1.50.1 float.lisp,1.1,1.1.50.1 move.lisp,1.1,1.1.50.1 sap.lisp,1.2,1.2.16.1 vm.lisp,1.3,1.3.16.1
From: Christophe Rhodes <crhodes@us...> - 2004-10-28 14:55
|
Update of /cvsroot/sbcl/sbcl/src/compiler/hppa
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29172/src/compiler/hppa
Modified Files:
Tag: character_branch
array.lisp char.lisp float.lisp move.lisp sap.lisp vm.lisp
Log Message:
0.8.13.77.character.45:
"Ow! Don't do that"
Place the HEAD character_branch-related changes to the backends
also on character_branch, for ease of merging.
Index: array.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/hppa/array.lisp,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -d -r1.6 -r1.6.2.1
--- array.lisp 10 Aug 2004 14:20:46 -0000 1.6
+++ array.lisp 28 Oct 2004 14:54:55 -0000 1.6.2.1
@@ -106,7 +106,7 @@
(def-full-data-vector-frobs simple-vector * descriptor-reg any-reg)
- (def-partial-data-vector-frobs simple-base-string base-char :byte nil base-char-reg)
+ (def-partial-data-vector-frobs simple-base-string character :byte nil character-reg)
(def-partial-data-vector-frobs simple-array-unsigned-byte-7 positive-fixnum
:byte nil unsigned-reg signed-reg)
Index: char.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/hppa/char.lisp,v
retrieving revision 1.1
retrieving revision 1.1.50.1
diff -u -d -r1.1 -r1.1.50.1
--- char.lisp 19 Aug 2002 12:14:00 -0000 1.1
+++ char.lisp 28 Oct 2004 14:54:55 -0000 1.1.50.1
@@ -1,82 +1,78 @@
-(in-package "SB!VM")
+;;;; the HPPA VM definition of character operations
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; This software is derived from the CMU CL system, which was
+;;;; written at Carnegie Mellon University and released into the
+;;;; public domain. The software is in the public domain and is
+;;;; provided with absolutely no warranty. See the COPYING and CREDITS
+;;;; files for more information.
+(in-package "SB!VM")
;;;; Moves and coercions:
;;; Move a tagged char to an untagged representation.
-;;;
-(define-vop (move-to-base-char)
+(define-vop (move-to-character)
(:args (x :scs (any-reg descriptor-reg)))
- (:results (y :scs (base-char-reg)))
+ (:results (y :scs (character-reg)))
(:generator 1
(inst srl x n-widetag-bits y)))
-;;;
-(define-move-vop move-to-base-char :move
- (any-reg descriptor-reg) (base-char-reg))
+(define-move-vop move-to-character :move
+ (any-reg descriptor-reg) (character-reg))
;;; Move an untagged char to a tagged representation.
-;;;
-(define-vop (move-from-base-char)
- (:args (x :scs (base-char-reg)))
+(define-vop (move-from-character)
+ (:args (x :scs (character-reg)))
(:results (y :scs (any-reg descriptor-reg)))
(:generator 1
(inst sll x n-widetag-bits y)
- (inst addi base-char-widetag y y)))
-;;;
-(define-move-vop move-from-base-char :move
- (base-char-reg) (any-reg descriptor-reg))
+ (inst addi character-widetag y y)))
+(define-move-vop move-from-character :move
+ (character-reg) (any-reg descriptor-reg))
-;;; Move untagged base-char values.
-;;;
-(define-vop (base-char-move)
+;;; Move untagged character values.
+(define-vop (character-move)
(:args (x :target y
- :scs (base-char-reg)
+ :scs (character-reg)
:load-if (not (location= x y))))
- (:results (y :scs (base-char-reg)
+ (:results (y :scs (character-reg)
:load-if (not (location= x y))))
(:effects)
(:affected)
(:generator 0
(move x y)))
-;;;
-(define-move-vop base-char-move :move
- (base-char-reg) (base-char-reg))
-
+(define-move-vop character-move :move
+ (character-reg) (character-reg))
-;;; Move untagged base-char arguments/return-values.
-;;;
-(define-vop (move-base-char-argument)
+;;; Move untagged character args/return-values.
+(define-vop (move-character-arg)
(:args (x :target y
- :scs (base-char-reg))
+ :scs (character-reg))
(fp :scs (any-reg)
- :load-if (not (sc-is y base-char-reg))))
+ :load-if (not (sc-is y character-reg))))
(:results (y))
(:generator 0
(sc-case y
- (base-char-reg
+ (character-reg
(move x y))
- (base-char-stack
+ (character-stack
(storew x fp (tn-offset y))))))
-;;;
-(define-move-vop move-base-char-argument :move-arg
- (any-reg base-char-reg) (base-char-reg))
-
-
-;;; Use standard MOVE-ARGUMENT + coercion to move an untagged base-char
-;;; to a descriptor passing location.
-;;;
-(define-move-vop move-argument :move-arg
- (base-char-reg) (any-reg descriptor-reg))
-
+(define-move-vop move-character-arg :move-arg
+ (any-reg character-reg) (character-reg))
+;;; Use standard MOVE-ARG + coercion to move an untagged character to
+;;; a descriptor passing location.
+(define-move-vop move-arg :move-arg
+ (character-reg) (any-reg descriptor-reg))
;;;; Other operations:
-
(define-vop (char-code)
(:translate char-code)
(:policy :fast-safe)
- (:args (ch :scs (base-char-reg) :target res))
- (:arg-types base-char)
+ (:args (ch :scs (character-reg) :target res))
+ (:arg-types character)
(:results (res :scs (unsigned-reg)))
(:result-types positive-fixnum)
(:generator 1
@@ -87,18 +83,16 @@
(:policy :fast-safe)
(:args (code :scs (unsigned-reg) :target res))
(:arg-types positive-fixnum)
- (:results (res :scs (base-char-reg)))
- (:result-types base-char)
+ (:results (res :scs (character-reg)))
+ (:result-types character)
(:generator 1
(move code res)))
-
-;;; Comparison of base-chars.
-;;;
-(define-vop (base-char-compare)
- (:args (x :scs (base-char-reg))
- (y :scs (base-char-reg)))
- (:arg-types base-char base-char)
+;;; Comparison of characters.
+(define-vop (character-compare)
+ (:args (x :scs (character-reg))
+ (y :scs (character-reg)))
+ (:arg-types character character)
(:conditional)
(:info target not-p)
(:policy :fast-safe)
@@ -107,14 +101,14 @@
(:generator 3
(inst bc cond not-p x y target)))
-(define-vop (fast-char=/base-char base-char-compare)
+(define-vop (fast-char=/character character-compare)
(:translate char=)
(:variant :=))
-(define-vop (fast-char</base-char base-char-compare)
+(define-vop (fast-char</character character-compare)
(:translate char<)
(:variant :<<))
-(define-vop (fast-char>/base-char base-char-compare)
+(define-vop (fast-char>/character character-compare)
(:translate char>)
(:variant :>>))
Index: float.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/hppa/float.lisp,v
retrieving revision 1.1
retrieving revision 1.1.50.1
diff -u -d -r1.1 -r1.1.50.1
--- float.lisp 19 Aug 2002 12:14:00 -0000 1.1
+++ float.lisp 28 Oct 2004 14:54:55 -0000 1.1.50.1
@@ -1,8 +1,17 @@
-(in-package "SB!VM")
+;;;; the HPPA VM definition of floating point operations
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; This software is derived from the CMU CL system, which was
+;;;; written at Carnegie Mellon University and released into the
+;;;; public domain. The software is in the public domain and is
+;;;; provided with absolutely no warranty. See the COPYING and CREDITS
+;;;; files for more information.
+
+(in-package "SB!VM")
;;;; Move functions.
-
(define-move-fun (load-fp-zero 1) (vop x y)
((fp-single-zero) (single-reg)
(fp-double-zero) (double-reg))
@@ -33,10 +42,8 @@
(double-reg) (double-stack))
(let ((offset (* (tn-offset y) n-word-bytes)))
(str-float x offset (current-nfp-tn vop))))
-
;;;; Move VOPs
-
(define-vop (move-float)
(:args (x :scs (single-reg double-reg)
:target y
@@ -47,11 +54,9 @@
(:generator 0
(unless (location= y x)
(inst funop :copy x y))))
-
(define-move-vop move-float :move (single-reg) (single-reg))
(define-move-vop move-float :move (double-reg) (double-reg))
-
(define-vop (move-from-float)
(:args (x :to :save))
(:results (y :scs (descriptor-reg)))
@@ -90,8 +95,7 @@
(frob move-to-single single-reg single-float-value-slot)
(frob move-to-double double-reg double-float-value-slot))
-
-(define-vop (move-float-argument)
+(define-vop (move-float-arg)
(:args (x :scs (single-reg double-reg) :target y)
(nfp :scs (any-reg)
:load-if (not (sc-is y single-reg double-reg))))
@@ -105,15 +109,12 @@
((single-stack double-stack)
(let ((offset (* (tn-offset y) n-word-bytes)))
(str-float x offset nfp))))))
-
-(define-move-vop move-float-argument :move-arg
+(define-move-vop move-float-arg :move-arg
(single-reg descriptor-reg) (single-reg))
-(define-move-vop move-float-argument :move-arg
+(define-move-vop move-float-arg :move-arg
(double-reg descriptor-reg) (double-reg))
-
;;;; Complex float move functions
-
(defun complex-single-reg-real-tn (x)
(make-random-tn :kind :normal :sc (sc-or-lose 'single-reg)
:offset (tn-offset x)))
@@ -128,7 +129,6 @@
(make-random-tn :kind :normal :sc (sc-or-lose 'double-reg)
:offset (1+ (tn-offset x))))
-
(define-move-fun (load-complex-single 2) (vop x y)
((complex-single-stack) (complex-single-reg))
(let ((nfp (current-nfp-tn vop))
@@ -147,7 +147,6 @@
(let ((imag-tn (complex-single-reg-imag-tn x)))
(str-float imag-tn (+ offset n-word-bytes) nfp))))
-
(define-move-fun (load-complex-double 4) (vop x y)
((complex-double-stack) (complex-double-reg))
(let ((nfp (current-nfp-tn vop))
@@ -166,9 +165,7 @@
(let ((imag-tn (complex-double-reg-imag-tn x)))
(str-float imag-tn (+ offset (* 2 n-word-bytes)) nfp))))
-;;;
;;; Complex float register to register moves.
-;;;
(define-vop (complex-single-move)
(:args (x :scs (complex-single-reg) :target y
:load-if (not (location= x y))))
@@ -184,7 +181,6 @@
(let ((x-imag (complex-single-reg-imag-tn x))
(y-imag (complex-single-reg-imag-tn y)))
(inst funop :copy x-imag y-imag)))))
-;;;
(define-move-vop complex-single-move :move
(complex-single-reg) (complex-single-reg))
@@ -203,14 +199,11 @@
(let ((x-imag (complex-double-reg-imag-tn x))
(y-imag (complex-double-reg-imag-tn y)))
(inst funop :copy x-imag y-imag)))))
-;;;
(define-move-vop complex-double-move :move
(complex-double-reg) (complex-double-reg))
-;;;
;;; Move from a complex float to a descriptor register allocating a
;;; new complex float object in the process.
-;;;
(define-vop (move-from-complex-single)
(:args (x :scs (complex-single-reg) :to :save))
(:results (y :scs (descriptor-reg)))
@@ -227,7 +220,6 @@
(inst fsts imag-tn (- (* complex-single-float-imag-slot n-word-bytes)
other-pointer-lowtag)
y))))
-;;;
(define-move-vop move-from-complex-single :move
(complex-single-reg) (descriptor-reg))
@@ -247,13 +239,10 @@
(inst fsts imag-tn (- (* complex-double-float-imag-slot n-word-bytes)
other-pointer-lowtag)
y))))
-;;;
(define-move-vop move-from-complex-double :move
(complex-double-reg) (descriptor-reg))
-;;;
;;; Move from a descriptor to a complex float register
-;;;
(define-vop (move-to-complex-single)
(:args (x :scs (descriptor-reg)))
(:results (y :scs (complex-single-reg)))
@@ -286,10 +275,8 @@
(define-move-vop move-to-complex-double :move
(descriptor-reg) (complex-double-reg))
-;;;
-;;; Complex float move-argument vop
-;;;
-(define-vop (move-complex-single-float-argument)
+;;; Complex float move-arg vop
+(define-vop (move-complex-single-float-arg)
(:args (x :scs (complex-single-reg) :target y)
(nfp :scs (any-reg) :load-if (not (sc-is y complex-single-reg))))
(:results (y))
@@ -310,11 +297,10 @@
(str-float real-tn offset nfp))
(let ((imag-tn (complex-single-reg-imag-tn x)))
(str-float imag-tn (+ offset n-word-bytes) nfp)))))))
-;;;
-(define-move-vop move-complex-single-float-argument :move-arg
+(define-move-vop move-complex-single-float-arg :move-arg
(complex-single-reg descriptor-reg) (complex-single-reg))
-(define-vop (move-complex-double-float-argument)
+(define-vop (move-complex-double-float-arg)
(:args (x :scs (complex-double-reg) :target y)
(nfp :scs (any-reg) :load-if (not (sc-is y complex-double-reg))))
(:results (y))
@@ -335,15 +321,12 @@
(str-float real-tn offset nfp))
(let ((imag-tn (complex-double-reg-imag-tn x)))
(str-float imag-tn (+ offset (* 2 n-word-bytes)) nfp)))))))
-;;;
-(define-move-vop move-complex-double-float-argument :move-arg
+(define-move-vop move-complex-double-float-arg :move-arg
(complex-double-reg descriptor-reg) (complex-double-reg))
-
-(define-move-vop move-argument :move-arg
+(define-move-vop move-arg :move-arg
(single-reg double-reg complex-single-reg complex-double-reg)
(descriptor-reg))
-
;;;; Arithmetic VOPs.
Index: move.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/hppa/move.lisp,v
retrieving revision 1.1
retrieving revision 1.1.50.1
diff -u -d -r1.1 -r1.1.50.1
--- move.lisp 19 Aug 2002 12:14:01 -0000 1.1
+++ move.lisp 28 Oct 2004 14:54:55 -0000 1.1.50.1
@@ -1,3 +1,14 @@
+;;;; the HPPA VM definition of operand loading/saving and the Move VOP
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; This software is derived from the CMU CL system, which was
+;;;; written at Carnegie Mellon University and released into the
+;;;; public domain. The software is in the public domain and is
+;;;; provided with absolutely no warranty. See the COPYING and CREDITS
+;;;; files for more information.
+
(in-package "SB!VM")
(define-move-fun (load-immediate 1) (vop x y)
@@ -13,7 +24,7 @@
(load-symbol y val))
(character
(inst li (logior (ash (char-code val) n-widetag-bits)
- base-char-widetag)
+ character-widetag)
y)))))
(define-move-fun (load-number 1) (vop x y)
@@ -22,8 +33,8 @@
(let ((x (tn-value x)))
(inst li (if (>= x (ash 1 31)) (logior (ash -1 32) x) x) y)))
-(define-move-fun (load-base-char 1) (vop x y)
- ((immediate) (base-char-reg))
+(define-move-fun (load-character 1) (vop x y)
+ ((immediate) (character-reg))
(inst li (char-code (tn-value x)) y))
(define-move-fun (load-system-area-pointer 1) (vop x y)
@@ -39,7 +50,7 @@
(load-stack-tn y x))
(define-move-fun (load-number-stack 5) (vop x y)
- ((base-char-stack) (base-char-reg)
+ ((character-stack) (character-reg)
(sap-stack) (sap-reg)
(signed-stack) (signed-reg)
(unsigned-stack) (unsigned-reg))
@@ -51,7 +62,7 @@
(store-stack-tn y x))
(define-move-fun (store-number-stack 5) (vop x y)
- ((base-char-reg) (base-char-stack)
+ ((character-reg) (character-stack)
(sap-reg) (sap-stack)
(signed-reg) (signed-stack)
(unsigned-reg) (unsigned-stack))
@@ -60,7 +71,6 @@
;;;; The Move VOP:
-;;;
(define-vop (move)
(:args (x :target y
:scs (any-reg descriptor-reg)
@@ -76,16 +86,14 @@
(any-reg descriptor-reg)
(any-reg descriptor-reg))
-;;; Make Move the check VOP for T so that type check generation doesn't think
-;;; it is a hairy type. This also allows checking of a few of the values in a
-;;; continuation to fall out.
-;;;
+;;; Make MOVE the check VOP for T so that type check generation
+;;; doesn't think it is a hairy type. This also allows checking of a
+;;; few of the values in a continuation to fall out.
(primitive-type-vop move (:check) t)
-;;; The Move-Argument VOP is used for moving descriptor values into another
+;;; The MOVE-ARG VOP is used for moving descriptor values into another
;;; frame for argument or known value passing.
-;;;
-(define-vop (move-argument)
+(define-vop (move-arg)
(:args (x :target y
:scs (any-reg descriptor-reg))
(fp :scs (any-reg)
@@ -97,8 +105,7 @@
(move x y))
(control-stack
(storew x fp (tn-offset y))))))
-;;;
-(define-move-vop move-argument :move-arg
+(define-move-vop move-arg :move-arg
(any-reg descriptor-reg)
(any-reg descriptor-reg))
@@ -106,11 +113,10 @@
;;;; ILLEGAL-MOVE
-;;; This VOP exists just to begin the lifetime of a TN that couldn't be written
-;;; legally due to a type error. An error is signalled before this VOP is
-;;; so we don't need to do anything (not that there would be anything sensible
-;;; to do anyway.)
-;;;
+;;; This VOP exists just to begin the lifetime of a TN that couldn't
+;;; be written legally due to a type error. An error is signalled
+;;; before this VOP is so we don't need to do anything (not that there
+;;; would be anything sensible to do anyway.)
(define-vop (illegal-move)
(:args (x) (type))
(:results (y))
@@ -119,8 +125,6 @@
(:save-p :compute-only)
(:generator 666
(error-call vop object-not-type-error x type)))
-
-
;;;; Moves and coercions:
@@ -128,9 +132,9 @@
;;; representation. Similarly, the MOVE-FROM-WORD VOPs converts a raw integer
;;; to a tagged bignum or fixnum.
-;;; Arg is a fixnum, so just shift it. We need a type restriction because some
-;;; possible arg SCs (control-stack) overlap with possible bignum arg SCs.
-;;;
+;;; ARG is a fixnum, so just shift it. We need a type restriction
+;;; because some possible arg SCs (control-stack) overlap with
+;;; possible bignum arg SCs.
(define-vop (move-to-word/fixnum)
(:args (x :scs (any-reg descriptor-reg)))
(:results (y :scs (signed-reg unsigned-reg)))
@@ -138,22 +142,20 @@
(:note "fixnum untagging")
(:generator 1
(inst sra x 2 y)))
-;;;
(define-move-vop move-to-word/fixnum :move
(any-reg descriptor-reg) (signed-reg unsigned-reg))
-;;; Arg is a non-immediate constant, load it.
+;;; ARG is a non-immediate constant, load it.
(define-vop (move-to-word-c)
(:args (x :scs (constant)))
(:results (y :scs (signed-reg unsigned-reg)))
(:note "constant load")
(:generator 1
(inst li (tn-value x) y)))
-;;;
(define-move-vop move-to-word-c :move
(constant) (signed-reg unsigned-reg))
-;;; Arg is a fixnum or bignum, figure out which and load if necessary.
+;;; ARG is a fixnum or bignum, figure out which and load if necessary.
(define-vop (move-to-word/integer)
(:args (x :scs (descriptor-reg)))
(:results (y :scs (signed-reg unsigned-reg)))
@@ -162,13 +164,11 @@
(inst extru x 31 2 zero-tn :<>)
(inst sra x 2 y :tr)
(loadw y x bignum-digits-offset other-pointer-lowtag)))
-;;;
(define-move-vop move-to-word/integer :move
(descriptor-reg) (signed-reg unsigned-reg))
-;;; Result is a fixnum, so we can just shift. We need the result type
+;;; RESULT is a fixnum, so we can just shift. We need the result type
;;; restriction because of the control-stack ambiguity noted above.
-;;;
(define-vop (move-from-word/fixnum)
(:args (x :scs (signed-reg unsigned-reg)))
(:results (y :scs (any-reg descriptor-reg)))
@@ -176,13 +176,11 @@
(:note "fixnum tagging")
(:generator 1
(inst sll x 2 y)))
-;;;
(define-move-vop move-from-word/fixnum :move
(signed-reg unsigned-reg) (any-reg descriptor-reg))
-;;; Result may be a bignum, so we have to check. Use a worst-case cost to make
-;;; sure people know they may be number consing.
-;;;
+;;; RESULT may be a bignum, so we have to check. Use a worst-case
+;;; cost to make sure people know they may be number consing.
(define-vop (move-from-signed)
(:args (x :scs (signed-reg unsigned-reg) :to (:eval 1)))
(:results (y :scs (any-reg descriptor-reg) :from (:eval 0)))
@@ -201,14 +199,12 @@
(with-fixed-allocation (y temp bignum-widetag (1+ bignum-digits-offset))
(storew x y bignum-digits-offset other-pointer-lowtag))
DONE))
-;;;
(define-move-vop move-from-signed :move
(signed-reg) (descriptor-reg))
-
-;;; Check for fixnum, and possibly allocate one or two word bignum result. Use
-;;; a worst-case cost to make sure people know they may be number consing.
-;;;
+;;; Check for fixnum, and possibly allocate one or two word bignum
+;;; result. Use a worst-case cost to make sure people know they may
+;;; be number consing.
(define-vop (move-from-unsigned)
(:args (x :scs (signed-reg unsigned-reg) :to (:eval 1)))
(:results (y :scs (any-reg descriptor-reg) :from (:eval 0)))
@@ -240,13 +236,10 @@
(storew temp y 0 other-pointer-lowtag)
(storew x y bignum-digits-offset other-pointer-lowtag))
DONE))
-;;;
(define-move-vop move-from-unsigned :move
(unsigned-reg) (descriptor-reg))
-
;;; Move untagged numbers.
-;;;
(define-vop (word-move)
(:args (x :target y
:scs (signed-reg unsigned-reg)
@@ -258,14 +251,11 @@
(:note "word integer move")
(:generator 0
(move x y)))
-;;;
(define-move-vop word-move :move
(signed-reg unsigned-reg) (signed-reg unsigned-reg))
-
-;;; Move untagged number arguments/return-values.
-;;;
-(define-vop (move-word-argument)
+;;; Move untagged number args/return-values.
+(define-vop (move-word-arg)
(:args (x :target y
:scs (signed-reg unsigned-reg))
(fp :scs (any-reg)
@@ -278,13 +268,10 @@
(move x y))
((signed-stack unsigned-stack)
(storew x fp (tn-offset y))))))
-;;;
-(define-move-vop move-word-argument :move-arg
+(define-move-vop move-word-arg :move-arg
(descriptor-reg any-reg signed-reg unsigned-reg) (signed-reg unsigned-reg))
-
-;;; Use standard MOVE-ARGUMENT + coercion to move an untagged number to a
+;;; Use standard MOVE-ARG + coercion to move an untagged number to a
;;; descriptor passing location.
-;;;
-(define-move-vop move-argument :move-arg
+(define-move-vop move-arg :move-arg
(signed-reg unsigned-reg) (any-reg descriptor-reg))
Index: sap.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/hppa/sap.lisp,v
retrieving revision 1.2
retrieving revision 1.2.16.1
diff -u -d -r1.2 -r1.2.16.1
--- sap.lisp 27 Oct 2003 22:16:58 -0000 1.2
+++ sap.lisp 28 Oct 2004 14:54:55 -0000 1.2.16.1
@@ -1,4 +1,4 @@
-;;;; the MIPS VM definition of SAP operations
+;;;; the HPPA VM definition of SAP operations
;;;; This software is part of the SBCL system. See the README file for
;;;; more information.
@@ -20,11 +20,9 @@
(:note "system area pointer indirection")
(:generator 1
(loadw y x sap-pointer-slot other-pointer-lowtag)))
-
(define-move-vop move-to-sap :move
(descriptor-reg) (sap-reg))
-
;;; Move an untagged SAP to a tagged representation.
(define-vop (move-from-sap)
(:args (x :scs (sap-reg) :to (:eval 1)))
@@ -34,7 +32,6 @@
(:generator 20
(with-fixed-allocation (y ndescr sap-widetag sap-size)
(storew x y sap-pointer-slot other-pointer-lowtag))))
-
(define-move-vop move-from-sap :move
(sap-reg) (descriptor-reg))
@@ -49,12 +46,11 @@
(:affected)
(:generator 0
(move x y)))
-
(define-move-vop sap-move :move
(sap-reg) (sap-reg))
-;;; Move untagged sap arguments/return-values.
-(define-vop (move-sap-argument)
+;;; Move untagged sap args/return-values.
+(define-vop (move-sap-arg)
(:args (x :target y
:scs (sap-reg))
(fp :scs (any-reg)
@@ -66,13 +62,12 @@
(move x y))
(sap-stack
(storew x fp (tn-offset y))))))
-
-(define-move-vop move-sap-argument :move-arg
+(define-move-vop move-sap-arg :move-arg
(descriptor-reg sap-reg) (sap-reg))
;;; Use standard MOVE-ARG + coercion to move an untagged sap to a
;;; descriptor passing location.
-(define-move-vop move-argument :move-arg
+(define-move-vop move-arg :move-arg
(sap-reg) (descriptor-reg))
;;;; SAP-INT and INT-SAP
Index: vm.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/hppa/vm.lisp,v
retrieving revision 1.3
retrieving revision 1.3.16.1
diff -u -d -r1.3 -r1.3.16.1
--- vm.lisp 10 Nov 2003 23:26:38 -0000 1.3
+++ vm.lisp 28 Oct 2004 14:54:55 -0000 1.3.16.1
@@ -135,7 +135,7 @@
;; The non-descriptor stacks.
(signed-stack non-descriptor-stack) ; (signed-byte 32)
(unsigned-stack non-descriptor-stack) ; (unsigned-byte 32)
- (base-char-stack non-descriptor-stack) ; non-descriptor characters.
+ (character-stack non-descriptor-stack) ; non-descriptor characters.
(sap-stack non-descriptor-stack) ; System area pointers.
(single-stack non-descriptor-stack) ; single-floats
(double-stack non-descriptor-stack
@@ -163,11 +163,11 @@
:alternate-scs (control-stack))
;; Non-Descriptor characters
- (base-char-reg registers
+ (character-reg registers
:locations #.non-descriptor-regs
:constant-scs (immediate)
:save-p t
- :alternate-scs (base-char-stack))
+ :alternate-scs (character-stack))
;; Non-Descriptor SAP's (arbitrary pointers into address space)
(sap-reg registers
|
| Thread | Author | Date |
|---|---|---|
| [Sbcl-commits] CVS: sbcl/src/compiler/hppa array.lisp,1.6,1.6.2.1 char.lisp,1.1,1.1.50.1 float.lisp,1.1,1.1.50.1 move.lisp,1.1,1.1.50.1 sap.lisp,1.2,1.2.16.1 vm.lisp,1.3,1.3.16.1 | Christophe Rhodes <crhodes@us...> |