logo       
Google Custom Search
    AddThis Social Bookmark Button

CVS: sbcl/src/compiler/ppc backend-parms.lisp,1.2,1.3 macros.lisp,1.1,1.2 p: msg#00046

Subject: CVS: sbcl/src/compiler/ppc backend-parms.lisp,1.2,1.3 macros.lisp,1.1,1.2 parms.lisp,1.1,1.2 vm.lisp,1.1,1.2
Update of /cvsroot/sbcl/sbcl/src/compiler/ppc
In directory usw-pr-cvs1:/tmp/cvs-serv21640/src/compiler/ppc

Modified Files:
        backend-parms.lisp macros.lisp parms.lisp vm.lisp 
Log Message:
0.7.3.18:
        Merged def!constant patch (CSR sbcl-devel 2002-05-17)
        ... cross-compiler now starts knowing about constant values
        src/compiler/assem tweaks
        ... declare some things ignorable
        ... comment tweaks
        other backend tweaks
        ... declare the type for with-adjustable-vector
                [ the fact that I had to do this four times, once for each
                  backend, is not optimal. ] 


Index: backend-parms.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/backend-parms.lisp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** backend-parms.lisp  3 May 2002 14:59:15 -0000       1.2
--- backend-parms.lisp  19 May 2002 13:55:32 -0000      1.3
***************
*** 1,5 ****
  (in-package "SB!VM")
  
! (defconstant +backend-fasl-file-implementation+ :ppc)
  (setf *backend-register-save-penalty* 3)
  (setf *backend-byte-order* :big-endian)
--- 1,5 ----
  (in-package "SB!VM")
  
! (def!constant +backend-fasl-file-implementation+ :ppc)
  (setf *backend-register-save-penalty* 3)
  (setf *backend-byte-order* :big-endian)

Index: macros.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/macros.lisp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** macros.lisp 18 Mar 2002 17:56:12 -0000      1.1
--- macros.lisp 19 May 2002 13:55:32 -0000      1.2
***************
*** 348,351 ****
--- 348,352 ----
                               :fill-pointer 0
                               :adjustable t))))
+      (declare (type (vector (unsigned-byte 8) 16) ,var))
       (setf (fill-pointer ,var) 0)
       (unwind-protect

Index: parms.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/parms.lisp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** parms.lisp  18 Mar 2002 17:56:12 -0000      1.1
--- parms.lisp  19 May 2002 13:55:32 -0000      1.2
***************
*** 6,57 ****
  (in-package "SB!VM")
  
! (defconstant n-word-bits 32
    "Number of bits per word where a word holds one lisp descriptor.")
  
! (defconstant n-byte-bits 8
    "Number of bits per byte where a byte is the smallest addressable object.")
  
! (defconstant word-shift (1- (integer-length (/ n-word-bits n-byte-bits)))
    "Number of bits to shift between word addresses and byte addresses.")
  
! (defconstant n-word-bytes (/ n-word-bits n-byte-bits)
    "Number of bytes in a word.")
  
  
! (defconstant float-sign-shift 31)
  
! (defconstant single-float-bias 126)
  (defconstant-eqx single-float-exponent-byte (byte 8 23) #'equalp)
  (defconstant-eqx single-float-significand-byte (byte 23 0) #'equalp)
! (defconstant single-float-normal-exponent-min 1)
! (defconstant single-float-normal-exponent-max 254)
! (defconstant single-float-hidden-bit (ash 1 23))
! (defconstant single-float-trapping-nan-bit (ash 1 22))
  
! (defconstant double-float-bias 1022)
  (defconstant-eqx double-float-exponent-byte (byte 11 20) #'equalp)
  (defconstant-eqx double-float-significand-byte (byte 20 0) #'equalp)
! (defconstant double-float-normal-exponent-min 1)
! (defconstant double-float-normal-exponent-max #x7FE)
! (defconstant double-float-hidden-bit (ash 1 20))
! (defconstant double-float-trapping-nan-bit (ash 1 19))
  
! (defconstant single-float-digits
    (+ (byte-size single-float-significand-byte) 1))
  
! (defconstant double-float-digits
    (+ (byte-size double-float-significand-byte) n-word-bits 1))
  
  
! (defconstant float-inexact-trap-bit (ash 1 0))
! (defconstant float-divide-by-zero-trap-bit (ash 1 1))
! (defconstant float-underflow-trap-bit (ash 1 2))
! (defconstant float-overflow-trap-bit (ash 1 3))
! (defconstant float-invalid-trap-bit (ash 1 4))
  
! (defconstant float-round-to-nearest 0)
! (defconstant float-round-to-zero 1)
! (defconstant float-round-to-positive 2)
! (defconstant float-round-to-negative 3)
  
  (defconstant-eqx float-rounding-mode (byte 2 0) #'equalp)       ; RD 
--- 6,57 ----
  (in-package "SB!VM")
  
! (def!constant n-word-bits 32
    "Number of bits per word where a word holds one lisp descriptor.")
  
! (def!constant n-byte-bits 8
    "Number of bits per byte where a byte is the smallest addressable object.")
  
! (def!constant word-shift (1- (integer-length (/ n-word-bits n-byte-bits)))
    "Number of bits to shift between word addresses and byte addresses.")
  
! (def!constant n-word-bytes (/ n-word-bits n-byte-bits)
    "Number of bytes in a word.")
  
  
! (def!constant float-sign-shift 31)
  
! (def!constant single-float-bias 126)
  (defconstant-eqx single-float-exponent-byte (byte 8 23) #'equalp)
  (defconstant-eqx single-float-significand-byte (byte 23 0) #'equalp)
! (def!constant single-float-normal-exponent-min 1)
! (def!constant single-float-normal-exponent-max 254)
! (def!constant single-float-hidden-bit (ash 1 23))
! (def!constant single-float-trapping-nan-bit (ash 1 22))
  
! (def!constant double-float-bias 1022)
  (defconstant-eqx double-float-exponent-byte (byte 11 20) #'equalp)
  (defconstant-eqx double-float-significand-byte (byte 20 0) #'equalp)
! (def!constant double-float-normal-exponent-min 1)
! (def!constant double-float-normal-exponent-max #x7FE)
! (def!constant double-float-hidden-bit (ash 1 20))
! (def!constant double-float-trapping-nan-bit (ash 1 19))
  
! (def!constant single-float-digits
    (+ (byte-size single-float-significand-byte) 1))
  
! (def!constant double-float-digits
    (+ (byte-size double-float-significand-byte) n-word-bits 1))
  
  
! (def!constant float-inexact-trap-bit (ash 1 0))
! (def!constant float-divide-by-zero-trap-bit (ash 1 1))
! (def!constant float-underflow-trap-bit (ash 1 2))
! (def!constant float-overflow-trap-bit (ash 1 3))
! (def!constant float-invalid-trap-bit (ash 1 4))
  
! (def!constant float-round-to-nearest 0)
! (def!constant float-round-to-zero 1)
! (def!constant float-round-to-positive 2)
! (def!constant float-round-to-negative 3)
  
  (defconstant-eqx float-rounding-mode (byte 2 0) #'equalp)       ; RD 
***************
*** 60,64 ****
  (defconstant-eqx float-exceptions-byte (byte 5 0) #'equalp)     ; cexc
  
! (defconstant float-fast-bit 2)                ; Non-IEEE mode
  
  
--- 60,64 ----
  (defconstant-eqx float-exceptions-byte (byte 5 0) #'equalp)     ; cexc
  
! (def!constant float-fast-bit 2)               ; Non-IEEE mode
  
  
***************
*** 69,73 ****
  ;;; work.
  ;;; 
! (defconstant number-stack-displacement
    (* 2 sb!vm:n-word-bytes))
  
--- 69,73 ----
  ;;; work.
  ;;; 
! (def!constant number-stack-displacement
    (* 2 sb!vm:n-word-bytes))
  
***************
*** 78,104 ****
  ;;; 
  
! (defconstant read-only-space-start #x01000000)
! (defconstant read-only-space-end   #x04ff8000)
  
! (defconstant binding-stack-start   #x06000000)
! (defconstant binding-stack-end     #x06ff0000)
  
! (defconstant control-stack-start   #x07000000)
! (defconstant control-stack-end     #x07ff0000)
  
! (defconstant static-space-start    #x08000000)
! (defconstant static-space-end      #x097fff00)
  
  ;;; FIXME: this is a gross violation of OAOO, done purely to support
  ;;; the #define of DYNAMIC_SPACE_SIZE in validate.c -- CSR, 2002-02-25
  ;;; (these numbers should match dynamic-0-*)
! (defconstant dynamic-space-start   #x40000000)
! (defconstant dynamic-space-end     #x47fff000)
  
  ;;; nothing _seems_ to be using these addresses 
! (defconstant dynamic-0-space-start #x40000000)
! (defconstant dynamic-0-space-end   #x47fff000)
! (defconstant dynamic-1-space-start #x48000000)
! (defconstant dynamic-1-space-end   #x4ffff000)
  
  
--- 78,104 ----
  ;;; 
  
! (def!constant read-only-space-start #x01000000)
! (def!constant read-only-space-end   #x04ff8000)
  
! (def!constant binding-stack-start   #x06000000)
! (def!constant binding-stack-end     #x06ff0000)
  
! (def!constant control-stack-start   #x07000000)
! (def!constant control-stack-end     #x07ff0000)
  
! (def!constant static-space-start    #x08000000)
! (def!constant static-space-end      #x097fff00)
  
  ;;; FIXME: this is a gross violation of OAOO, done purely to support
  ;;; the #define of DYNAMIC_SPACE_SIZE in validate.c -- CSR, 2002-02-25
  ;;; (these numbers should match dynamic-0-*)
! (def!constant dynamic-space-start   #x40000000)
! (def!constant dynamic-space-end     #x47fff000)
  
  ;;; nothing _seems_ to be using these addresses 
! (def!constant dynamic-0-space-start #x40000000)
! (def!constant dynamic-0-space-end   #x47fff000)
! (def!constant dynamic-1-space-start #x48000000)
! (def!constant dynamic-1-space-end   #x4ffff000)
  
  

Index: vm.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/vm.lisp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** vm.lisp     18 Mar 2002 17:56:12 -0000      1.1
--- vm.lisp     19 May 2002 13:55:32 -0000      1.2
***************
*** 11,15 ****
                 (let ((offset-sym (symbolicate name "-OFFSET")))
                   `(eval-when (:compile-toplevel :load-toplevel :execute)
!                    (defconstant ,offset-sym ,offset)
                     (setf (svref *register-names* ,offset-sym) ,(symbol-name 
name)))))
             
--- 11,15 ----
                 (let ((offset-sym (symbolicate name "-OFFSET")))
                   `(eval-when (:compile-toplevel :load-toplevel :execute)
!                    (def!constant ,offset-sym ,offset)
                     (setf (svref *register-names* ,offset-sym) ,(symbol-name 
name)))))
             
***************
*** 87,91 ****
                (list* `(define-storage-class ,sc-name ,index
                          ,@(cdr class))
!                      `(defconstant ,constant-name ,index)
                       forms)))
         (index 0 (1+ index))
--- 87,91 ----
                (list* `(define-storage-class ,sc-name ,index
                          ,@(cdr class))
!                      `(def!constant ,constant-name ,index)
                       forms)))
         (index 0 (1+ index))
***************
*** 96,100 ****
  ;; XXX this is most likely wrong.  Check with Eric Marsden next time you
  ;; see him
! (defconstant sb!vm::kludge-nondeterministic-catch-block-size 7)
  
  (define-storage-classes
--- 96,100 ----
  ;; XXX this is most likely wrong.  Check with Eric Marsden next time you
  ;; see him
! (def!constant sb!vm::kludge-nondeterministic-catch-block-size 7)
  
  (define-storage-classes
***************
*** 269,286 ****
  ;;; The SC numbers for register and stack arguments/return values.
  ;;;
! (defconstant register-arg-scn (meta-sc-number-or-lose 'descriptor-reg))
! (defconstant immediate-arg-scn (meta-sc-number-or-lose 'any-reg))
! (defconstant control-stack-arg-scn (meta-sc-number-or-lose 'control-stack))
  
  (eval-when (:compile-toplevel :load-toplevel :execute)
  
  ;;; Offsets of special stack frame locations
! (defconstant ocfp-save-offset 0)
! (defconstant lra-save-offset 1)
! (defconstant nfp-save-offset 2)
  
  ;;; The number of arguments/return values passed in registers.
  ;;;
! (defconstant register-arg-count 4)
  
  ;;; Names to use for the argument registers.
--- 269,286 ----
  ;;; The SC numbers for register and stack arguments/return values.
  ;;;
! (def!constant register-arg-scn (meta-sc-number-or-lose 'descriptor-reg))
! (def!constant immediate-arg-scn (meta-sc-number-or-lose 'any-reg))
! (def!constant control-stack-arg-scn (meta-sc-number-or-lose 'control-stack))
  
  (eval-when (:compile-toplevel :load-toplevel :execute)
  
  ;;; Offsets of special stack frame locations
! (def!constant ocfp-save-offset 0)
! (def!constant lra-save-offset 1)
! (def!constant nfp-save-offset 2)
  
  ;;; The number of arguments/return values passed in registers.
  ;;;
! (def!constant register-arg-count 4)
  
  ;;; Names to use for the argument registers.
***************
*** 306,310 ****
  ;;; This is used by the debugger.
  ;;;
! (defconstant single-value-return-byte-offset 8)
  
  
--- 306,310 ----
  ;;; This is used by the debugger.
  ;;;
! (def!constant single-value-return-byte-offset 8)
  
  


_______________________________________________________________
Hundreds of nodes, one monster rendering program.
Now that's a super model! Visit http://clustering.foundries.sf.net/



Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>