Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
ab27781b by Raymond Toy at 2018-01-21T08:55:56-08:00
Fix typo in building on darwin.
Should be snapshot/bin/lisp
- - - - -
1 changed file:
- .gitlab-ci.yml
Changes:
=====================================
.gitlab-ci.yml
=====================================
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,6 +20,6 @@ osx-runner:
- mkdir snapshot
- (cd snapshot; tar xjf ../cmucl-2018-01-x86-darwin.tar.bz2)
script:
- - bin/build.sh -C "" -o snapshot/lisp/lisp
+ - bin/build.sh -C "" -o snapshot/bin/lisp
- bin/make-dist.sh -I dist darwin-4
- bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/ab27781ba923fff4144c5919b…
---
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/ab27781ba923fff4144c5919b…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits:
f19dd877 by Raymond Toy at 2018-01-13T08:22:44-08:00
Regenerate
- - - - -
9ce8a07e by Raymond Toy at 2018-01-20T09:20:19-08:00
Merge branch 'master' into sparc64-dev
- - - - -
2 changed files:
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl.po
Changes:
=====================================
src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
=====================================
--- a/src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
+++ b/src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
@@ -34,7 +34,7 @@ msgstr "Ethay izesay ofway away eamstray inway-ufferbay."
#: src/code/intl.lisp src/compiler/globaldb.lisp src/code/defstruct.lisp
#: src/code/remote.lisp src/code/wire.lisp src/code/internet.lisp
#: src/code/loop.lisp src/code/run-program.lisp src/code/parse-time.lisp
-#: src/code/profile.lisp src/code/ntrace.lisp src/code/rand-mt19937.lisp
+#: src/code/profile.lisp src/code/ntrace.lisp src/code/rand-xoroshiro.lisp
#: src/code/debug.lisp src/code/debug-int.lisp src/code/debug-info.lisp
#: src/code/eval.lisp src/code/filesys.lisp src/code/pathname.lisp
#: src/code/fd-stream.lisp src/code/extfmts.lisp src/code/serve-event.lisp
@@ -17335,17 +17335,18 @@ msgstr ""
msgid "Type \"yes\" for yes or \"no\" for no. "
msgstr "Ypetay \"esyay\" orfay esyay orway \"onay\" orfay onay. "
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
+#, fuzzy
msgid ""
"Generate an random state vector from the given SEED. The seed can be\n"
-" either an integer or a vector of (unsigned-byte 32)"
+" either an integer or a vector of (unsigned-byte 64)"
msgstr ""
"Enerategay anway andomray tatesay ectorvay omfray ethay ivengay SEED. Ethay "
"eedsay ancay ebay\n"
" eitherway anway integerway orway away ectorvay ofway (unsignedway-ytebay "
"32)"
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Make a random state object. If STATE is not supplied, return a copy\n"
" of the default random state. If STATE is a random state, then return a\n"
@@ -17360,11 +17361,12 @@ msgstr ""
"tatesay eneratedgay omfray\n"
" ethay universalway imetay orway /evday/urandomway ifway availableway."
-#: src/code/rand-mt19937.lisp
-msgid "Argument is not a RANDOM-STATE, T or NIL: ~S"
+#: src/code/rand-xoroshiro.lisp
+#, fuzzy
+msgid "Argument is not a RANDOM-STATE, T, or NIL: ~S"
msgstr "Argumentway isway otnay away RANDOM-STATE, T orway NIL: ~S"
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Generate a uniformly distributed pseudo-random number between zero\n"
" and Arg. State, if supplied, is the random state to use."
@@ -17374,12 +17376,19 @@ msgstr ""
" andway Argway. Tatesay, ifway uppliedsay, isway ethay andomray tatesay "
"otay useway."
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid "Argument is not a positive integer or a positive float: ~S"
msgstr ""
"Argumentway isway otnay away ositivepay integerway orway away ositivepay "
"oatflay: ~S"
+#: src/code/rand-xoroshiro.lisp
+msgid ""
+"Jump the RNG-STATE. This is equivalent to 2^64 calls to the\n"
+" xoroshiro128+ generator. It can be used to generate 2^64\n"
+" non-overlapping subsequences for parallel computations."
+msgstr ""
+
#: src/code/ntrace.lisp
msgid ""
"This is bound to the returned values when evaluating :BREAK-AFTER and\n"
@@ -27348,10 +27357,6 @@ msgid "use inline (unsigned-byte 32) operations"
msgstr "useway inlineway (unsignedway-ytebay 32) operationsway"
#: src/compiler/float-tran.lisp
-msgid "Shouldn't happen"
-msgstr "Ouldnshay't appenhay"
-
-#: src/compiler/float-tran.lisp
msgid "Can't open-code float to rational comparison."
msgstr "Ancay't openway-odecay oatflay otay ationalray omparisoncay."
@@ -30979,6 +30984,9 @@ msgstr ""
"eplacedray ybay ethay\n"
"Unicodeway eplacementray aracterchay."
+#~ msgid "Shouldn't happen"
+#~ msgstr "Ouldnshay't appenhay"
+
#~ msgid "No such program: ~S"
#~ msgstr "Onay uchsay ogrampray: ~S"
=====================================
src/i18n/locale/ko/LC_MESSAGES/cmucl.po
=====================================
--- a/src/i18n/locale/ko/LC_MESSAGES/cmucl.po
+++ b/src/i18n/locale/ko/LC_MESSAGES/cmucl.po
@@ -34,7 +34,7 @@ msgstr "스트림 인 버퍼의 크기."
#: src/code/intl.lisp src/compiler/globaldb.lisp src/code/defstruct.lisp
#: src/code/remote.lisp src/code/wire.lisp src/code/internet.lisp
#: src/code/loop.lisp src/code/run-program.lisp src/code/parse-time.lisp
-#: src/code/profile.lisp src/code/ntrace.lisp src/code/rand-mt19937.lisp
+#: src/code/profile.lisp src/code/ntrace.lisp src/code/rand-xoroshiro.lisp
#: src/code/debug.lisp src/code/debug-int.lisp src/code/debug-info.lisp
#: src/code/eval.lisp src/code/filesys.lisp src/code/pathname.lisp
#: src/code/fd-stream.lisp src/code/extfmts.lisp src/code/serve-event.lisp
@@ -12130,13 +12130,13 @@ msgstr ""
msgid "Type \"yes\" for yes or \"no\" for no. "
msgstr ""
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Generate an random state vector from the given SEED. The seed can be\n"
-" either an integer or a vector of (unsigned-byte 32)"
+" either an integer or a vector of (unsigned-byte 64)"
msgstr ""
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Make a random state object. If STATE is not supplied, return a copy\n"
" of the default random state. If STATE is a random state, then return a\n"
@@ -12144,20 +12144,27 @@ msgid ""
" the universal time or /dev/urandom if available."
msgstr ""
-#: src/code/rand-mt19937.lisp
-msgid "Argument is not a RANDOM-STATE, T or NIL: ~S"
+#: src/code/rand-xoroshiro.lisp
+msgid "Argument is not a RANDOM-STATE, T, or NIL: ~S"
msgstr ""
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Generate a uniformly distributed pseudo-random number between zero\n"
" and Arg. State, if supplied, is the random state to use."
msgstr ""
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid "Argument is not a positive integer or a positive float: ~S"
msgstr ""
+#: src/code/rand-xoroshiro.lisp
+msgid ""
+"Jump the RNG-STATE. This is equivalent to 2^64 calls to the\n"
+" xoroshiro128+ generator. It can be used to generate 2^64\n"
+" non-overlapping subsequences for parallel computations."
+msgstr ""
+
#: src/code/ntrace.lisp
msgid ""
"This is bound to the returned values when evaluating :BREAK-AFTER and\n"
@@ -18909,10 +18916,6 @@ msgid "use inline (unsigned-byte 32) operations"
msgstr ""
#: src/compiler/float-tran.lisp
-msgid "Shouldn't happen"
-msgstr ""
-
-#: src/compiler/float-tran.lisp
msgid "Can't open-code float to rational comparison."
msgstr ""
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/11e8aafe5be25c1ad2b99854…
---
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/11e8aafe5be25c1ad2b99854…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
f19dd877 by Raymond Toy at 2018-01-13T08:22:44-08:00
Regenerate
- - - - -
2 changed files:
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl.po
Changes:
=====================================
src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
=====================================
--- a/src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
+++ b/src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
@@ -34,7 +34,7 @@ msgstr "Ethay izesay ofway away eamstray inway-ufferbay."
#: src/code/intl.lisp src/compiler/globaldb.lisp src/code/defstruct.lisp
#: src/code/remote.lisp src/code/wire.lisp src/code/internet.lisp
#: src/code/loop.lisp src/code/run-program.lisp src/code/parse-time.lisp
-#: src/code/profile.lisp src/code/ntrace.lisp src/code/rand-mt19937.lisp
+#: src/code/profile.lisp src/code/ntrace.lisp src/code/rand-xoroshiro.lisp
#: src/code/debug.lisp src/code/debug-int.lisp src/code/debug-info.lisp
#: src/code/eval.lisp src/code/filesys.lisp src/code/pathname.lisp
#: src/code/fd-stream.lisp src/code/extfmts.lisp src/code/serve-event.lisp
@@ -17335,17 +17335,18 @@ msgstr ""
msgid "Type \"yes\" for yes or \"no\" for no. "
msgstr "Ypetay \"esyay\" orfay esyay orway \"onay\" orfay onay. "
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
+#, fuzzy
msgid ""
"Generate an random state vector from the given SEED. The seed can be\n"
-" either an integer or a vector of (unsigned-byte 32)"
+" either an integer or a vector of (unsigned-byte 64)"
msgstr ""
"Enerategay anway andomray tatesay ectorvay omfray ethay ivengay SEED. Ethay "
"eedsay ancay ebay\n"
" eitherway anway integerway orway away ectorvay ofway (unsignedway-ytebay "
"32)"
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Make a random state object. If STATE is not supplied, return a copy\n"
" of the default random state. If STATE is a random state, then return a\n"
@@ -17360,11 +17361,12 @@ msgstr ""
"tatesay eneratedgay omfray\n"
" ethay universalway imetay orway /evday/urandomway ifway availableway."
-#: src/code/rand-mt19937.lisp
-msgid "Argument is not a RANDOM-STATE, T or NIL: ~S"
+#: src/code/rand-xoroshiro.lisp
+#, fuzzy
+msgid "Argument is not a RANDOM-STATE, T, or NIL: ~S"
msgstr "Argumentway isway otnay away RANDOM-STATE, T orway NIL: ~S"
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Generate a uniformly distributed pseudo-random number between zero\n"
" and Arg. State, if supplied, is the random state to use."
@@ -17374,12 +17376,19 @@ msgstr ""
" andway Argway. Tatesay, ifway uppliedsay, isway ethay andomray tatesay "
"otay useway."
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid "Argument is not a positive integer or a positive float: ~S"
msgstr ""
"Argumentway isway otnay away ositivepay integerway orway away ositivepay "
"oatflay: ~S"
+#: src/code/rand-xoroshiro.lisp
+msgid ""
+"Jump the RNG-STATE. This is equivalent to 2^64 calls to the\n"
+" xoroshiro128+ generator. It can be used to generate 2^64\n"
+" non-overlapping subsequences for parallel computations."
+msgstr ""
+
#: src/code/ntrace.lisp
msgid ""
"This is bound to the returned values when evaluating :BREAK-AFTER and\n"
@@ -27348,10 +27357,6 @@ msgid "use inline (unsigned-byte 32) operations"
msgstr "useway inlineway (unsignedway-ytebay 32) operationsway"
#: src/compiler/float-tran.lisp
-msgid "Shouldn't happen"
-msgstr "Ouldnshay't appenhay"
-
-#: src/compiler/float-tran.lisp
msgid "Can't open-code float to rational comparison."
msgstr "Ancay't openway-odecay oatflay otay ationalray omparisoncay."
@@ -30979,6 +30984,9 @@ msgstr ""
"eplacedray ybay ethay\n"
"Unicodeway eplacementray aracterchay."
+#~ msgid "Shouldn't happen"
+#~ msgstr "Ouldnshay't appenhay"
+
#~ msgid "No such program: ~S"
#~ msgstr "Onay uchsay ogrampray: ~S"
=====================================
src/i18n/locale/ko/LC_MESSAGES/cmucl.po
=====================================
--- a/src/i18n/locale/ko/LC_MESSAGES/cmucl.po
+++ b/src/i18n/locale/ko/LC_MESSAGES/cmucl.po
@@ -34,7 +34,7 @@ msgstr "스트림 인 버퍼의 크기."
#: src/code/intl.lisp src/compiler/globaldb.lisp src/code/defstruct.lisp
#: src/code/remote.lisp src/code/wire.lisp src/code/internet.lisp
#: src/code/loop.lisp src/code/run-program.lisp src/code/parse-time.lisp
-#: src/code/profile.lisp src/code/ntrace.lisp src/code/rand-mt19937.lisp
+#: src/code/profile.lisp src/code/ntrace.lisp src/code/rand-xoroshiro.lisp
#: src/code/debug.lisp src/code/debug-int.lisp src/code/debug-info.lisp
#: src/code/eval.lisp src/code/filesys.lisp src/code/pathname.lisp
#: src/code/fd-stream.lisp src/code/extfmts.lisp src/code/serve-event.lisp
@@ -12130,13 +12130,13 @@ msgstr ""
msgid "Type \"yes\" for yes or \"no\" for no. "
msgstr ""
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Generate an random state vector from the given SEED. The seed can be\n"
-" either an integer or a vector of (unsigned-byte 32)"
+" either an integer or a vector of (unsigned-byte 64)"
msgstr ""
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Make a random state object. If STATE is not supplied, return a copy\n"
" of the default random state. If STATE is a random state, then return a\n"
@@ -12144,20 +12144,27 @@ msgid ""
" the universal time or /dev/urandom if available."
msgstr ""
-#: src/code/rand-mt19937.lisp
-msgid "Argument is not a RANDOM-STATE, T or NIL: ~S"
+#: src/code/rand-xoroshiro.lisp
+msgid "Argument is not a RANDOM-STATE, T, or NIL: ~S"
msgstr ""
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid ""
"Generate a uniformly distributed pseudo-random number between zero\n"
" and Arg. State, if supplied, is the random state to use."
msgstr ""
-#: src/code/rand-mt19937.lisp
+#: src/code/rand-xoroshiro.lisp
msgid "Argument is not a positive integer or a positive float: ~S"
msgstr ""
+#: src/code/rand-xoroshiro.lisp
+msgid ""
+"Jump the RNG-STATE. This is equivalent to 2^64 calls to the\n"
+" xoroshiro128+ generator. It can be used to generate 2^64\n"
+" non-overlapping subsequences for parallel computations."
+msgstr ""
+
#: src/code/ntrace.lisp
msgid ""
"This is bound to the returned values when evaluating :BREAK-AFTER and\n"
@@ -18909,10 +18916,6 @@ msgid "use inline (unsigned-byte 32) operations"
msgstr ""
#: src/compiler/float-tran.lisp
-msgid "Shouldn't happen"
-msgstr ""
-
-#: src/compiler/float-tran.lisp
msgid "Can't open-code float to rational comparison."
msgstr ""
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/f19dd8773ef50989907e1e6c4…
---
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/f19dd8773ef50989907e1e6c4…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits:
a94d7f1f by Raymond Toy at 2018-01-06T18:32:24-08:00
Fix stack computations in COPY-MORE-ARGS
Fixnums aren't 8-byte word offsets, so we need to shift fixnums left
by 1 to get a word offset when computing new stack locations.
- - - - -
11e8aafe by Raymond Toy at 2018-01-06T19:02:09-08:00
Fix stack computations in MORE-ARG-CONTEXT
Fixnums aren't 8-byte word offsets, so we need to shift fixnums left
by 1 to get a word offset when computing new stack locations.
- - - - -
1 changed file:
- src/compiler/sparc64/call.lisp
Changes:
=====================================
src/compiler/sparc64/call.lisp
=====================================
--- a/src/compiler/sparc64/call.lisp
+++ b/src/compiler/sparc64/call.lisp
@@ -1141,12 +1141,17 @@ default-value-8
;; Allocate the space on the stack.
(cond ((zerop fixed)
(inst cmp nargs-tn)
+ ;; Add nargs-tn to csp-tn twice to get the right address
+ ;; because fixnum values need to be multiplied by two to
+ ;; get the right word address/offset.
+ (inst add csp-tn csp-tn nargs-tn)
(inst b :eq done)
(inst add csp-tn csp-tn nargs-tn))
(t
(inst subcc count nargs-tn (fixnumize fixed))
(inst b :le done)
(inst nop)
+ (inst add csp-tn csp-tn count)
(inst add csp-tn csp-tn count)))
(when (< fixed register-arg-count)
;; We must stop when we run out of stack args, not when we run out of
@@ -1158,6 +1163,7 @@ default-value-8
(move dst csp-tn)
;; Initialize src to be end of args.
(inst add src cfp-tn nargs-tn)
+ (inst add src cfp-tn nargs-tn)
(emit-label loop)
;; *--dst = *--src, --count
@@ -1271,7 +1277,9 @@ default-value-8
(:generator 5
(emit-not-implemented)
(inst sub count supplied (fixnumize fixed))
- (inst sub context csp-tn count)))
+ ;; Subtract count twice to get the correct word offset.
+ (inst sub context csp-tn count)
+ (inst sub context context count)))
;;; Signal wrong argument count error if Nargs isn't = to Count.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/5fa489dfddcbaf53394a1b11…
---
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/5fa489dfddcbaf53394a1b11…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits:
d11ccfbf by Raymond Toy at 2018-01-03T20:55:23-08:00
Fix up the fast-ash-right vops
Remove some nil'ed out code too.
- - - - -
caa31bdf by Raymond Toy at 2018-01-03T21:01:16-08:00
Mark allocate-vector and fix up length computation
* Add NOT-IMPLEMENTED for this routine.
* The number of words needs to be multiplied by 2 to get the actual
number of bytes since fixnums are only shifted by 2, and words are
now 8 bytes long.
- - - - -
2 changed files:
- src/assembly/sparc64/array.lisp
- src/compiler/sparc64/arith.lisp
Changes:
=====================================
src/assembly/sparc64/array.lisp
=====================================
--- a/src/assembly/sparc64/array.lisp
+++ b/src/assembly/sparc64/array.lisp
@@ -32,8 +32,12 @@
(:temp ndescr non-descriptor-reg nl0-offset)
(:temp gc-temp non-descriptor-reg nl1-offset)
(:temp vector descriptor-reg a3-offset))
+ (not-implemented "ALLOCATE-VECTOR")
(pseudo-atomic ()
- (inst add ndescr words (* (1+ vm:vector-data-offset) vm:word-bytes))
+ ;; words is a fixnum. Multiply by 2 to get the actual number of
+ ;; bytes to allocate.
+ (inst sllx ndescr words 1)
+ (inst add ndescr ndescr (* (1+ vm:vector-data-offset) vm:word-bytes))
(inst andn ndescr vm:lowtag-mask)
(allocation vector ndescr other-pointer-type :temp-tn gc-temp)
#+gencgc
@@ -42,7 +46,7 @@
;; space. Fill the last word with a zero.
(inst add ndescr vector)
(storew zero-tn ndescr -1 vm:other-pointer-type))
- (inst srl ndescr type vm:word-shift)
+ (inst srl ndescr type vm:fixnum-tag-bits)
(storew ndescr vector 0 vm:other-pointer-type)
(storew length vector vm:vector-length-slot vm:other-pointer-type))
;; This makes sure the zero byte at the end of a string is paged in so
=====================================
src/compiler/sparc64/arith.lisp
=====================================
--- a/src/compiler/sparc64/arith.lisp
+++ b/src/compiler/sparc64/arith.lisp
@@ -555,15 +555,9 @@
(let ((amt (tn-value amount)))
(inst ,shift-inst result number amt))))))))
(frob ash-right-signed fast-ash-right/signed=>signed
- signed-reg signed-num sra 3)
+ signed-reg signed-num sran 3)
(frob ash-right-unsigned fast-ash-right/unsigned=>unsigned
- unsigned-reg unsigned-num srl 3)
- #+(and sparc-v9 sparc-v8plus)
- (frob ash-right-signed fast-ash-right/signed64=>signed64
- signed64-reg signed64-num srax 3)
- #+(and sparc-v9 sparc-v8plus)
- (frob ash-right-unsigned fast-ash-right/unsigned64=>unsigned64
- unsigned64-reg unsigned64-num srlx 3)
+ unsigned-reg unsigned-num srln 3)
)
;; Constant right shift.
@@ -585,32 +579,11 @@
(move result number)
(inst ,shift-inst result number amount))))))
(frob ash-right-signed fast-ash-right-c/signed=>signed
- signed-reg signed-num sra 1 31)
+ signed-reg signed-num sran 1 63)
(frob ash-right-unsigned fast-ash-right-c/unsigned=>unsigned
- unsigned-reg unsigned-num srl 1 31)
- #+(and sparc-v9 sparc-v8plus)
- (frob ash-right-signed fast-ash-right-c/signed64=>signed64
- signed64-reg signed64-num srax 1 63)
- #+(and sparc-v9 sparc-v8plus)
- (frob ash-right-unsigned fast-ash-right-c/unsigned64=>unsigned64
- unsigned64-reg unsigned64-num srlx 1 63)
+ unsigned-reg unsigned-num srln 1 63)
)
-#+nil
-(define-vop (fash-ash-right-c/signed=>signed fast-signed-binop-c)
- (:args (x :target r :scs (signed-reg zero)))
- (:arg-types signed-num
- (:constant (integer 0 31)))
- (:results (r :scs (signed-reg)))
- (:result-types signed-num)
- (:translate ash-right-signed)
- (:note _N"inline (signed-byte 32) arithmetic")
- (:generator 1
- (if (zerop y)
- (move r x)
- (inst srln r x y))))
-
-
(define-vop (fast-ash-right/fixnum=>fixnum)
(:note _N"inline right ASH")
(:translate ash-right-signed)
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/34f8edd9936a038e22820e6e…
---
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/34f8edd9936a038e22820e6e…
You're receiving this email because of your account on gitlab.common-lisp.net.
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/5e00e1dc01a4e19469e10d23…
---
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/5e00e1dc01a4e19469e10d23…
You're receiving this email because of your account on gitlab.common-lisp.net.