![](https://secure.gravatar.com/avatar/cc13150cabd87c26f35cb4b0ea78d66d.jpg?s=120&d=mm&r=g)
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.