Changeset 7462 for branches/working-0710


Ignore:
Timestamp:
Oct 17, 2007, 5:52:48 PM (14 years ago)
Author:
gb
Message:

Fix EGC-CONFIGURATION (bad shifting), CONFIGURE-EGC (disables egc to change
values, re-enables after).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0710/ccl/level-1/l1-aprims.lisp

    r7402 r7462  
    10951095         (g1 (%fixnum-ref g2 target::area.younger))
    10961096         (g0 (%fixnum-ref g1 target::area.younger)))
    1097     (values (ash (the fixnum (%fixnum-ref g0 target::area.threshold)) -8)
    1098             (ash (the fixnum (%fixnum-ref g1 target::area.threshold)) -8)
    1099             (ash (the fixnum (%fixnum-ref g2 target::area.threshold)) -8))))
     1097    (values (ash (the fixnum (%fixnum-ref g0 target::area.threshold)) (- (- 10 target::fixnum-shift)))
     1098            (ash (the fixnum (%fixnum-ref g1 target::area.threshold)) (- (- 10 target::fixnum-shift)))
     1099            (ash (the fixnum (%fixnum-ref g2 target::area.threshold)) (- (- 10 target::fixnum-shift))))))
    11001100
    11011101
     
    11051105are rounded up to a multiple of 64Kbytes in OpenMCL 0.14 and to a multiple
    11061106of 32KBytes in earlier versions.)"
    1107   (unless (egc-active-p)
    1108     (setq e2size (logand (lognot #xffff) (+ #xffff (ash (require-type e2size '(unsigned-byte 18)) 10)))
    1109           e1size (logand (lognot #xffff) (+ #xffff (ash (require-type e1size '(unsigned-byte 18)) 10)))
    1110           e0size (logand (lognot #xffff) (+ #xffff (ash (require-type e0size '(integer 1 #.(ash 1 18))) 10))))
    1111     (%configure-egc e0size e1size e2size)))
     1107  (let* ((was-enabled (egc-active-p)))
     1108    (unwind-protect
     1109         (progn
     1110           (egc nil)
     1111           (setq e2size (logand (lognot #xffff) (+ #xffff (ash (require-type e2size '(unsigned-byte 18)) 10)))
     1112                 e1size (logand (lognot #xffff) (+ #xffff (ash (require-type e1size '(unsigned-byte 18)) 10)))
     1113                 e0size (logand (lognot #xffff) (+ #xffff (ash (require-type e0size '(integer 1 #.(ash 1 18))) 10))))
     1114           (%configure-egc e0size e1size e2size))
     1115      (egc was-enabled))))
    11121116
    11131117
Note: See TracChangeset for help on using the changeset viewer.