Raymond Toy pushed to branch sparc64-dev at cmucl / cmucl
Commits:
-
28feabb4
by Raymond Toy at 2017-01-29T09:00:49-08:00
-
f8d120c1
by Raymond Toy at 2017-01-29T09:00:49-08:00
-
b6317868
by Raymond Toy at 2017-03-05T15:43:56-08:00
-
108dbaf1
by Raymond Toy at 2017-03-05T15:59:18-08:00
7 changed files:
- bin/build.sh
- + src/bootfiles/21b/boot-2017-01-1.lisp
- src/code/module.lisp
- src/compiler/new-assem.lisp
- src/i18n/locale/cmucl.pot
- src/i18n/locale/en@piglatin/LC_MESSAGES/cmucl.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl.po
Changes:
... | ... | @@ -39,7 +39,7 @@ ENABLE2="yes" |
39 | 39 |
ENABLE3="yes"
|
40 | 40 |
ENABLE4="yes"
|
41 | 41 |
|
42 |
-version=21a
|
|
42 |
+version=21b
|
|
43 | 43 |
SRCDIR=src
|
44 | 44 |
BINDIR=bin
|
45 | 45 |
TOOLDIR=$BINDIR
|
1 |
+;; Boot file to increase the max alignment value from 3 to 4.
|
|
2 |
+;;
|
|
3 |
+;; This takes care of everything for the bootstrap, but when new-assem
|
|
4 |
+;; is loaded. you'll get a warning. Select the CLOBBER-IT restart to
|
|
5 |
+;; continue.
|
|
6 |
+ |
|
7 |
+(in-package :new-assem)
|
|
8 |
+ |
|
9 |
+(handler-bind
|
|
10 |
+ ((error (lambda (c)
|
|
11 |
+ (declare (ignore c))
|
|
12 |
+ (invoke-restart 'continue))))
|
|
13 |
+ (defconstant max-alignment 4))
|
|
14 |
+ |
|
15 |
+(ext:without-package-locks
|
|
16 |
+(deftype alignment ()
|
|
17 |
+ `(integer 0 ,max-alignment))
|
|
18 |
+)
|
|
19 |
+ |
|
20 |
+(ext:without-package-locks
|
|
21 |
+(handler-bind ((error (lambda (c)
|
|
22 |
+ (declare (ignore c))
|
|
23 |
+ (invoke-restart 'kernel::clobber-it))))
|
|
24 |
+ (defstruct (segment
|
|
25 |
+ (:print-function %print-segment)
|
|
26 |
+ (:constructor make-segment (&key name run-scheduler inst-hook)))
|
|
27 |
+ ;;
|
|
28 |
+ ;; The name of this segment. Only using in trace files.
|
|
29 |
+ (name "Unnamed" :type simple-base-string)
|
|
30 |
+ ;;
|
|
31 |
+ ;; Whether or not run the scheduler. Note: if the instruction defintions
|
|
32 |
+ ;; were not compiled with the scheduler turned on, this has no effect.
|
|
33 |
+ (run-scheduler nil)
|
|
34 |
+ ;;
|
|
35 |
+ ;; If a function, then it is funcalled for each inst emitted with the
|
|
36 |
+ ;; segment, the VOP, the name of the inst (as a string), and the inst
|
|
37 |
+ ;; arguments.
|
|
38 |
+ (inst-hook nil :type (or function null))
|
|
39 |
+ ;;
|
|
40 |
+ ;; Where to deposit the next byte.
|
|
41 |
+ (fill-pointer (system:int-sap 0) :type system:system-area-pointer)
|
|
42 |
+ ;;
|
|
43 |
+ ;; Where the current output block ends. If fill-pointer is ever sap= to
|
|
44 |
+ ;; this, don't deposit a byte. Move the fill pointer into a new block.
|
|
45 |
+ (block-end (system:int-sap 0) :type system:system-area-pointer)
|
|
46 |
+ ;;
|
|
47 |
+ ;; What position does this correspond to. Initially, positions and indexes
|
|
48 |
+ ;; are the same, but after we start collapsing choosers, positions can change
|
|
49 |
+ ;; while indexes stay the same.
|
|
50 |
+ (current-posn 0 :type posn)
|
|
51 |
+ ;;
|
|
52 |
+ ;; Were in the output blocks are we currently outputing.
|
|
53 |
+ (current-index 0 :type index)
|
|
54 |
+ ;;
|
|
55 |
+ ;; A vector of the output blocks.
|
|
56 |
+ (output-blocks (make-array 4 :initial-element nil) :type simple-vector)
|
|
57 |
+ ;;
|
|
58 |
+ ;; A list of all the annotations that have been output to this segment.
|
|
59 |
+ (annotations nil :type list)
|
|
60 |
+ ;;
|
|
61 |
+ ;; A pointer to the last cons cell in the annotations list. This is
|
|
62 |
+ ;; so we can quickly add things to the end of the annotations list.
|
|
63 |
+ (last-annotation nil :type list)
|
|
64 |
+ ;;
|
|
65 |
+ ;; The number of bits of alignment at the last time we synchronized.
|
|
66 |
+ (alignment max-alignment :type alignment)
|
|
67 |
+ ;;
|
|
68 |
+ ;; The position the last time we synchronized.
|
|
69 |
+ (sync-posn 0 :type posn)
|
|
70 |
+ ;;
|
|
71 |
+ ;; The posn and index everything ends at. This is not maintained while the
|
|
72 |
+ ;; data is being generated, but is filled in after. Basically, we copy
|
|
73 |
+ ;; current-posn and current-index so that we can trash them while processing
|
|
74 |
+ ;; choosers and back-patches.
|
|
75 |
+ (final-posn 0 :type posn)
|
|
76 |
+ (final-index 0 :type index)
|
|
77 |
+ ;;
|
|
78 |
+ ;; *** State used by the scheduler during instruction queueing.
|
|
79 |
+ ;;
|
|
80 |
+ ;; List of postit's. These are accumulated between instructions.
|
|
81 |
+ (postits nil :type list)
|
|
82 |
+ ;;
|
|
83 |
+ ;; ``Number'' for last instruction queued. Used only to supply insts
|
|
84 |
+ ;; with unique sset-element-number's.
|
|
85 |
+ (inst-number 0 :type index)
|
|
86 |
+ ;;
|
|
87 |
+ ;; Simple-Vectors mapping locations to the instruction that reads them and
|
|
88 |
+ ;; instructions that write them.
|
|
89 |
+ (readers (make-array (assem-params-max-locations
|
|
90 |
+ (c:backend-assembler-params c:*backend*))
|
|
91 |
+ :initial-element nil)
|
|
92 |
+ :type simple-vector)
|
|
93 |
+ (writers (make-array (assem-params-max-locations
|
|
94 |
+ (c:backend-assembler-params c:*backend*))
|
|
95 |
+ :initial-element nil)
|
|
96 |
+ :type simple-vector)
|
|
97 |
+ ;;
|
|
98 |
+ ;; The number of additional cycles before the next control transfer, or NIL
|
|
99 |
+ ;; if a control transfer hasn't been queued. When a delayed branch is
|
|
100 |
+ ;; queued, this slot is set to the delay count.
|
|
101 |
+ (branch-countdown nil :type (or null (and fixnum unsigned-byte)))
|
|
102 |
+ ;;
|
|
103 |
+ ;; *** These two slots are used both by the queuing noise and the
|
|
104 |
+ ;; scheduling noise.
|
|
105 |
+ ;;
|
|
106 |
+ ;; All the instructions that are pending and don't have any unresolved
|
|
107 |
+ ;; dependents. We don't list branches here even if they would otherwise
|
|
108 |
+ ;; qualify. They are listed above.
|
|
109 |
+ ;;
|
|
110 |
+ (emittable-insts-sset (make-sset) :type sset)
|
|
111 |
+ ;;
|
|
112 |
+ ;; List of queued branches. We handle these specially, because they have to
|
|
113 |
+ ;; be emitted at a specific place (e.g. one slot before the end of the
|
|
114 |
+ ;; block).
|
|
115 |
+ (queued-branches nil :type list)
|
|
116 |
+ ;;
|
|
117 |
+ ;; *** State used by the scheduler duing instruction scheduling.
|
|
118 |
+ ;;
|
|
119 |
+ ;; The instructions who would have had a read dependent removed if it were
|
|
120 |
+ ;; not for a delay slot. This is a list of lists. Each element in the
|
|
121 |
+ ;; top level list corresponds to yet another cycle of delay. Each element
|
|
122 |
+ ;; in the second level lists is a dotted pair, holding the dependency
|
|
123 |
+ ;; instruction and the dependent to remove.
|
|
124 |
+ (delayed nil :type list)
|
|
125 |
+ ;;
|
|
126 |
+ ;; The emittable insts again, except this time as a list sorted by depth.
|
|
127 |
+ (emittable-insts-queue nil :type list)
|
|
128 |
+ ;;
|
|
129 |
+ ;; Whether or not to collect dynamic statistics. This is just the same as
|
|
130 |
+ ;; *collect-dynamic-statistics* but is faster to reference.
|
|
131 |
+ (collect-dynamic-statistics nil))))
|
|
132 |
+ |
... | ... | @@ -91,7 +91,17 @@ |
91 | 91 |
calling PROVIDE to indicate a successful load of the module.
|
92 | 92 |
|
93 | 93 |
While loading any files, *load-verbose* is bound to *require-verbose*
|
94 |
- which defaults to t."
|
|
94 |
+ which defaults to t.
|
|
95 |
+ |
|
96 |
+ The predefined modules included are :defsystem, :asdf, :lisp-unit,
|
|
97 |
+ :unix, :clx, :clm, :hemlock, and :cmu-contribs.
|
|
98 |
+ |
|
99 |
+ The module :cmu-contribs differs from the other modules in that
|
|
100 |
+ requiring this module only defines the following modules:
|
|
101 |
+ \"contrib-demos\", \"contrib-follow-mouse\",
|
|
102 |
+ \"contrib-games-feebs\", \"contrib-hist\", \"contrib-psgraph\",
|
|
103 |
+ \"contrib-ops\", \"contrib-embedded-c\", \"contrib-sprof\", and
|
|
104 |
+ \"contrib-packed-sse2\". "
|
|
95 | 105 |
(let ((saved-modules (copy-list *modules*))
|
96 | 106 |
(module-name (module-name-string module-name)))
|
97 | 107 |
(unless (member module-name *modules* :test #'string=)
|
... | ... | @@ -80,7 +80,7 @@ |
80 | 80 |
;;; format. If the loader only loads objects 8-byte aligned, we can't do
|
81 | 81 |
;;; any better than that ourselves.
|
82 | 82 |
;;;
|
83 |
-(defconstant max-alignment 3)
|
|
83 |
+(defconstant max-alignment 4)
|
|
84 | 84 |
|
85 | 85 |
(deftype alignment ()
|
86 | 86 |
`(integer 0 ,max-alignment))
|
... | ... | @@ -10397,7 +10397,17 @@ msgid "" |
10397 | 10397 |
" calling PROVIDE to indicate a successful load of the module.\n"
|
10398 | 10398 |
"\n"
|
10399 | 10399 |
" While loading any files, *load-verbose* is bound to *require-verbose*\n"
|
10400 |
-" which defaults to t."
|
|
10400 |
+" which defaults to t.\n"
|
|
10401 |
+"\n"
|
|
10402 |
+" The predefined modules included are :defsystem, :asdf, :lisp-unit,\n"
|
|
10403 |
+" :unix, :clx, :clm, :hemlock, and :cmu-contribs.\n"
|
|
10404 |
+"\n"
|
|
10405 |
+" The module :cmu-contribs differs from the other modules in that\n"
|
|
10406 |
+" requiring this module only defines the following modules:\n"
|
|
10407 |
+" \"contrib-demos\", \"contrib-follow-mouse\",\n"
|
|
10408 |
+" \"contrib-games-feebs\", \"contrib-hist\", \"contrib-psgraph\",\n"
|
|
10409 |
+" \"contrib-ops\", \"contrib-embedded-c\", \"contrib-sprof\", and\n"
|
|
10410 |
+" \"contrib-packed-sse2\". "
|
|
10401 | 10411 |
msgstr ""
|
10402 | 10412 |
|
10403 | 10413 |
#: src/code/module.lisp
|
... | ... | @@ -14850,6 +14850,7 @@ msgstr "" |
14850 | 14850 |
" asecay-ensitivesay."
|
14851 | 14851 |
|
14852 | 14852 |
#: src/code/module.lisp
|
14853 |
+#, fuzzy
|
|
14853 | 14854 |
msgid ""
|
14854 | 14855 |
"Loads a module when it has not been already. Pathname, if\n"
|
14855 | 14856 |
" supplied, is a single pathname or list of pathnames to be loaded if\n"
|
... | ... | @@ -14872,7 +14873,17 @@ msgid "" |
14872 | 14873 |
" calling PROVIDE to indicate a successful load of the module.\n"
|
14873 | 14874 |
"\n"
|
14874 | 14875 |
" While loading any files, *load-verbose* is bound to *require-verbose*\n"
|
14875 |
-" which defaults to t."
|
|
14876 |
+" which defaults to t.\n"
|
|
14877 |
+"\n"
|
|
14878 |
+" The predefined modules included are :defsystem, :asdf, :lisp-unit,\n"
|
|
14879 |
+" :unix, :clx, :clm, :hemlock, and :cmu-contribs.\n"
|
|
14880 |
+"\n"
|
|
14881 |
+" The module :cmu-contribs differs from the other modules in that\n"
|
|
14882 |
+" requiring this module only defines the following modules:\n"
|
|
14883 |
+" \"contrib-demos\", \"contrib-follow-mouse\",\n"
|
|
14884 |
+" \"contrib-games-feebs\", \"contrib-hist\", \"contrib-psgraph\",\n"
|
|
14885 |
+" \"contrib-ops\", \"contrib-embedded-c\", \"contrib-sprof\", and\n"
|
|
14886 |
+" \"contrib-packed-sse2\". "
|
|
14876 | 14887 |
msgstr ""
|
14877 | 14888 |
"Oadslay away odulemay enwhay itway ashay otnay eenbay alreadyway. "
|
14878 | 14889 |
"Athnamepay, ifway\n"
|
... | ... | @@ -10422,7 +10422,17 @@ msgid "" |
10422 | 10422 |
" calling PROVIDE to indicate a successful load of the module.\n"
|
10423 | 10423 |
"\n"
|
10424 | 10424 |
" While loading any files, *load-verbose* is bound to *require-verbose*\n"
|
10425 |
-" which defaults to t."
|
|
10425 |
+" which defaults to t.\n"
|
|
10426 |
+"\n"
|
|
10427 |
+" The predefined modules included are :defsystem, :asdf, :lisp-unit,\n"
|
|
10428 |
+" :unix, :clx, :clm, :hemlock, and :cmu-contribs.\n"
|
|
10429 |
+"\n"
|
|
10430 |
+" The module :cmu-contribs differs from the other modules in that\n"
|
|
10431 |
+" requiring this module only defines the following modules:\n"
|
|
10432 |
+" \"contrib-demos\", \"contrib-follow-mouse\",\n"
|
|
10433 |
+" \"contrib-games-feebs\", \"contrib-hist\", \"contrib-psgraph\",\n"
|
|
10434 |
+" \"contrib-ops\", \"contrib-embedded-c\", \"contrib-sprof\", and\n"
|
|
10435 |
+" \"contrib-packed-sse2\". "
|
|
10426 | 10436 |
msgstr ""
|
10427 | 10437 |
|
10428 | 10438 |
#: src/code/module.lisp
|