Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl

Commits:

2 changed files:

Changes:

  • src/compiler/generic/new-genesis.lisp
    ... ... @@ -148,7 +148,7 @@
    148 148
       "Return a descriptor for a block of LENGTH bytes out of SPACE.  The free
    
    149 149
       pointer is boosted as necessary.  If any additional memory is needed, we
    
    150 150
       vm_allocate it.  The descriptor returned is a pointer of type LOWTAG."
    
    151
    -  (let* ((bytes (round-up length #+amd64 16 #-amd64 (ash 1 vm:lowtag-bits)))
    
    151
    +  (let* ((bytes (round-up length (* 2 vm:word-bytes)))
    
    152 152
     	 (offset (space-free-pointer space))
    
    153 153
     	 (new-free-ptr (+ offset (ash bytes (- vm:word-shift)))))
    
    154 154
         (when (> new-free-ptr (space-words-allocated space))
    
    ... ... @@ -462,9 +462,12 @@
    462 462
         (copy-to-system-area bytes (* vm:vector-data-offset
    
    463 463
     				   ;; the word size of the native backend which
    
    464 464
     				   ;; may be different from the target backend
    
    465
    -				   (if (= (c:backend-fasl-file-implementation
    
    466
    -					   c::*native-backend*)
    
    467
    -					  #.c:amd64-fasl-file-implementation)
    
    465
    +				   (if (or (= (c:backend-fasl-file-implementation
    
    466
    +					       c::*native-backend*)
    
    467
    +					      #.c:amd64-fasl-file-implementation)
    
    468
    +					   (= (c:backend-fasl-file-implementation
    
    469
    +					       c::*native-backend*)
    
    470
    +					      #.c:sparc64-fasl-file-implementation))
    
    468 471
     				       64
    
    469 472
     				       32))
    
    470 473
     			 (descriptor-sap des)
    

  • src/compiler/generic/vm-macs.lisp
    ... ... @@ -27,8 +27,9 @@
    27 27
     ;;; given a number of words.
    
    28 28
     ;;;
    
    29 29
     (defmacro pad-data-block (words)
    
    30
    -  `(logandc2 (+ (ash ,words word-shift) #+amd64 15 #-amd64 lowtag-mask)
    
    31
    -    #+amd64 15 #-amd64 lowtag-mask))
    
    30
    +  (let ((dual-word-mask (1- (ash 2 word-shift))))
    
    31
    +    `(logandc2 (+ (ash ,words word-shift) ,dual-word-mask)
    
    32
    +	       ,dual-word-mask)))
    
    32 33
     
    
    33 34
     ;;; DEFENUM -- Internal Interface.
    
    34 35
     ;;;