Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits: 93f40930 by Raymond Toy at 2018-01-03T16:13:54-08:00 Make target fixnum 61 bits long
Let's try this and see how far we can get. If it proves to be too complicated, revert this and use 30-bit fixnums instead of 62-bit fixnums.
- - - - - dc477f5b by Raymond Toy at 2018-01-03T16:15:48-08:00 Fix typo: sparc64 -> sparc-64.
- - - - - 34f8edd9 by Raymond Toy at 2018-01-03T19:52:03-08:00 Bignum digits is still int for sparc64
For simplicity, we're keeping bignum digits in a 32-bit object because sparc-v9 doesn't have a 64x64->128 multiply.
- - - - -
1 changed file:
- src/compiler/generic/objdef.lisp
Changes:
===================================== src/compiler/generic/objdef.lisp ===================================== --- a/src/compiler/generic/objdef.lisp +++ b/src/compiler/generic/objdef.lisp @@ -92,10 +92,12 @@ ); eval-when
-(defparameter target-most-positive-fixnum (1- (ash 1 #-amd64 29 #+amd64 61)) +(defparameter target-most-positive-fixnum + (1- (ash 1 #-(or amd64 sparc-64) 29 #+(or amd64 sparc-64) 61)) "most-positive-fixnum in the target architecture.")
-(defparameter target-most-negative-fixnum (ash -1 #-amd64 29 #+amd64 61) +(defparameter target-most-negative-fixnum + (ash -1 #-(or amd64 sparc-64) 29 #+(or amd64 sparc-64) 61) "most-negative-fixnum in the target architecture.")
@@ -202,7 +204,11 @@ (define-primitive-object (bignum :lowtag other-pointer-type :header bignum-type :alloc-trans bignum::%allocate-bignum) - (digits :rest-p t :c-type #-alpha "long" #+alpha "u32")) + (digits :rest-p t + :c-type + #-(or alpha sparc-v9) "long" + #+alpha "u32" + #+sparc-v9 "int"))
(define-primitive-object (ratio :type ratio :lowtag other-pointer-type
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/5e00e1dc01a4e19469e10d230...
--- View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/5e00e1dc01a4e19469e10d230... You're receiving this email because of your account on gitlab.common-lisp.net.