Changeset 375
- Timestamp:
- Jan 24, 2004, 3:30:53 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/PPC/PPC64/ppc64-arch.lisp (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/PPC/PPC64/ppc64-arch.lisp
r254 r375 42 42 (defconstant fixnum-mask fixnummask) 43 43 (defconstant subtag-mask (1- (ash 1 num-subtag-bits))) 44 (defconstant ncharcodebits 16)44 (defconstant ncharcodebits 32) 45 45 (defconstant charcode-shift (- nbits-in-word ncharcodebits)) 46 46 (defconstant word-shift 3) 47 47 (defconstant word-size-in-bytes 8) 48 (defconstant target-most-negative-fixnum (ash -1 (1- (- nbits-in-word nfixnumtagbits)))) 49 (defconstant target-most-positive-fixnum (1- (ash 1 (1- (- nbits-in-word nfixnumtagbits))))) 48 50 (defmacro define-subtag (name tag value) 49 51 `(defconstant ,(ccl::form-symbol "SUBTAG-" name) (logior ,tag (ash ,value ntagbits)))) … … 78 80 ;; #b111 node-header 79 81 ;; 82 83 (defconstant tag-fixnum 0) 84 80 85 ;; Note how we're already winding up with lots of header and immediate 81 86 ;; "classes". That might actually be useful. … … 104 109 (defconstant fulltag-immheader-2 #b1010) 105 110 (defconstant fulltag-nodeheader-2 #b1011) 106 (defconstant fulltag- uvector#b1100)111 (defconstant fulltag-misc #b1100) 107 112 (defconstant fulltag-imm-3 #b1101) 108 113 (defconstant fulltag-immheader-3 #b1110) … … 113 118 ;; object is something like: 114 119 ;; (clrldi tag node 60) 115 ;; (cmpwi tag fulltag- uvector)120 ;; (cmpwi tag fulltag-misc) 116 121 ;; (clrldi tag tag 61 117 122 ;; (bne @done) … … 242 247 (defmacro define-fixedsized-object (name &rest non-header-cells) 243 248 `(progn 244 (define-lisp-object ,name fulltag- uvectorheader ,@non-header-cells)249 (define-lisp-object ,name fulltag-misc header ,@non-header-cells) 245 250 (ccl::defenum () 246 251 ,@(mapcar #'(lambda (cell) (ccl::form-symbol name "." cell "-CELL")) non-header-cells)) … … 253 258 254 259 255 (defconstant misc-header-offset (- fulltag- uvector))260 (defconstant misc-header-offset (- fulltag-misc)) 256 261 (defconstant misc-subtag-offset (+ misc-header-offset 7 )) 257 262 (defconstant misc-data-offset (+ misc-header-offset 8)) … … 268 273 (define-subtag go-tag fulltag-imm-1 0) 269 274 (define-subtag block-tag fulltag-imm-1 1) 270 (define-subtag no-thread-local-bindingfulltag-imm-2 0)275 (define-subtag character fulltag-imm-2 0) 271 276 (define-subtag unbound fulltag-imm-3 0) 272 277 (defconstant unbound-marker subtag-unbound) 273 278 (defconstant undefined unbound-marker) 279 (define-subtag no-thread-local-binding fulltag-imm-3 1) 274 280 275 281 … … 381 387 ) 382 388 383 (define-lisp-object arrayH fulltag- uvector389 (define-lisp-object arrayH fulltag-misc 384 390 header ; subtag = subtag-arrayH 385 391 rank ; NEVER 1 … … 520 526 521 527 522 (ppc 32::define-storage-layout lisp-frame 0528 (ppc64::define-storage-layout lisp-frame 0 523 529 backlink 524 530 savefn … … 587 593 (let* ((pos (position sym ppc::*ppc-kernel-globals* :test #'string=))) 588 594 (if pos 589 (- (+ fulltag- uvector (* (1+ pos) 8)))595 (- (+ fulltag-misc (* (1+ pos) word-size-in-bytes))) 590 596 (error "Unknown kernel global : ~s ." sym)))) 591 597 … … 593 599 (let* ((pos (position sym ppc::*ppc-kernel-globals* :test #'string=))) 594 600 (if pos 595 (- (+ fulltag- uvector (* (1+ pos) 4)))601 (- (+ fulltag-misc (* (1+ pos) word-size-in-bytes))) 596 602 (error "Unknown kernel global : ~s ." sym)))) 597 603 … … 599 605 ; The objects in question are generally fixnum-tagged; the entries in the 600 606 ; "kernel-imports" vector are 8 bytes apart. 601 (ccl::defenum (:prefix "KERNEL-IMPORT-" :start 0 :step 8)607 (ccl::defenum (:prefix "KERNEL-IMPORT-" :start 0 :step word-size-in-bytes) 602 608 fd-setsize-bytes 603 609 do-fd-set … … 652 658 (if pos (* (1+ pos) symbol.size)))) 653 659 654 (defconstant nil-value (+ #x2000 symbol.size fulltag- uvector))660 (defconstant nil-value (+ #x2000 symbol.size fulltag-misc)) 655 661 656 662
Note:
See TracChangeset
for help on using the changeset viewer.
