OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-binutils/] [binutils-2.19.1/] [cgen/] [ChangeLog] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 jlechner
2009-08-29  Doug Evans  
2
 
3
        * hardware.scm (-keyword-parse): Fix `enum-prefix' default for
4
        rtl version 0.7.
5
        * doc/rtl.texi: Improve docs on rtl 0.7 vs 0.8 differences.
6
 
7
2009-08-27  Doug Evans  
8
 
9
        Add do-count rtl function.
10
        * rtl-c.scm (s-do-count): New function.
11
        (do-count): New rtl handler.
12
        * rtl-traverse.scm (-rtx-traverse-iteration): New function.
13
        (-rtx-make-traverser-table): Add ITERATION.
14
        * rtl.scm (rtx-make-iteration-limit-var): New function.
15
        (rtx-env-make-iteration-locals): New function.
16
        * rtx-funcs.scm (do-count): New rtl function.
17
        * cpu/play.cpu: Add do-count-test insn.
18
        * doc/rtl.texi: Add docs on do-count.
19
 
20
2009-08-26  Doug Evans  
21
 
22
        * read.scm (parse-error): Change error message output format
23
        to match context-owner-error.
24
        * rtl-c.scm (-rtl-c-get): Call estate-error instead of error.
25
        (rtl-c-set-quiet, rtl-c-set-trace): Ditto.
26
        (s-if, s-cond, -gen-non-vm-case-test): Ditto.
27
        (operand): Call estate-error instead of context-error.
28
        (local, delay): Ditto.
29
        (ref, attr): Call estate-error instead of error.
30
        * rtl-traverse.scm (tstate-error): New function.
31
        (-rtx-traverse-error): Call tstate-error instead of context-error.
32
        (-rtx-traverse-operands, -rtx-traverse): Ditto.
33
        (estate-error): New function.
34
        * rtl.scm (rtx-lvalue-mode-name): Handle locals.  Call estate-error
35
        instead of error.
36
        (e-if): Call estate-error instead of error.
37
        * rtx-funcs.scm (error): Call estate-error instead of context-error.
38
        (member): Ditto.
39
        * utils-cgen.scm (context-error): New arg `intro', all callers updated.
40
        Rewrite to call context-owner-error.
41
        (context-owner-error): New function.
42
 
43
        * ifield.scm ( constructor): New arg `location',
44
        all callers updated.
45
        * insn.scm ( constructor): Ditto.
46
        ( constructor): Ditto.
47
        * minsn.scm ( constructor): Ditto.
48
        * operand.scm ( constructor): Ditto.
49
        * utils-cgen.scm (builtin-location): New function.
50
        (): Fix default value of member `location'.
51
        (source-ident?): New function.
52
 
53
        * rtl-traverse.scm (estate-new-env): Rename arg state -> estate.
54
        (estate-push-env, estate-with-modifiers): Ditto.
55
        (estate-deepen): New function.
56
 
57
2009-08-25  Dave Korn  
58
 
59
        * sim-model.scm (-gen-mach-defns): Use @PREFIX@_INSN__MAX instead of
60
        @CPU@_INSN__MAX.  Use @prefix@ instead of @cpu@ for engine_run
61
        routines.
62
 
63
2009-08-25  Doug Evans  
64
 
65
        * doc/pmacros.texi (pmacro default argument values): Add text.
66
 
67
2009-08-23  Doug Evans  
68
 
69
        * hardware.scm (): Rename member print-name -> enum-prefix.
70
        Rename member prefix -> name-prefix.
71
        ( getters): Update.
72
        (-keyword-parse): Update.  Default enum-prefix to NAME-.
73
        (-keyword-read): Update.  Don't compute default value for
74
        enum-prefix here.
75
        (define-keyword): Update.
76
        (-hw-parse-keyword): Pass "UNUSED" for enum-prefix to -keyword-parse.
77
        * read.scm (cgen-rtl-version): New function.
78
        (-supported-rtl-versions): Add (0 8).
79
        * desc-cpu.scm (-gen-hw-decl): Remove cruft.
80
        * desc.scm ( gen-defn): prefix -> name-prefix.
81
        * gas-test.scm ( test-data): prefix -> name-prefix.
82
        * cpu/arm.cpu (gr-names, shift-type): Call define-rtl-version.
83
        Update, print-name -> enum-prefix, make uppercase.
84
        Remove unnecessary name-prefix spec.
85
        * cpu/fr30.cpu (gr-names, cr-names, dr-names): Ditto.
86
        * cpu/ip2k.cpu (register-names): Ditto.
87
        * cpu/m68k.cpu (dr-names, ar-names): Ditto.
88
        * cpu/sparc.cpu (gr-names): Ditto.
89
        * cpu/xc16x.cpu (gr-names, ext-names,psw-names): Ditto.
90
        (grb-names, conditioncode-names, extconditioncode-names): Ditto.
91
        (grb8-names, r8-names, regmem8-names, regdiv8-names): Ditto.
92
        (reg0-name, reg0-name1, regbmem8-names, memgr8-names): Ditto.
93
        * cpu/ia32.cpu (gr8-names, gr16-names, gr-names): Call
94
        define-rtl-version.  Update, print-name -> enum-prefix, make uppercase,
95
        prefix -> name-prefix.
96
        * cpu/sh64-compact.cpu (frc-names): Call define-rtl-version.
97
        Update, print-name -> enum-prefix, make uppercase.
98
        (drc-names, xf-names): Ditto.
99
        * cpu/xstormy16.cpu (gr-names, gr-Rb-names): Ditto.
100
        * doc/rtl.texi (Keywords): New section.
101
        (hardware indices): Update text.
102
        (rtl versions): Add 0.8.
103
 
104
        Add define-rtl-version.
105
        * read.scm (-CGEN-RTL-VERSION): Renamed from -CGEN-LANG-VERSION.
106
        (cgen-rtl-major, cgen-rtl-minor): Similarly renamed.
107
        (cgen-lang-fixlevel): Delete.
108
        (-supported-rtl-versions): New variable.
109
        (-cmd-define-rtl-version): New function.
110
        (init-reader!): New command define-rtl-version.
111
        (-cgen): Add rtl version to --version output.
112
        * doc/rtl.texi: Document rtl version support.
113
        * cpu/play.cpu: Add define-rtl-version.
114
 
115
2009-08-22  Doug Evans  
116
 
117
        * Makefile.am (OPTIONS): Define.
118
        (desc): Just generate -desc.[ch] files.
119
        * Makefile.in: Regenerate.
120
        * desc-cpu.scm (cgen-desc.h): Skip call to gen-extra-cpu.h if there's
121
        no .opc file.
122
        (cgen-desc.c): Similarly.
123
        * gen-all-desc: New file.
124
        * opcodes.scm (opc-file-provided?): New function.
125
 
126
        * mach.scm (current-*-add!): Update calls to parse-error.
127
        * operand.scm (op:new-mode): Update call to parse-error.
128
        * utils-cgen.scm (make-obj-context): New function.
129
 
130
        * NEWS: Copy over entries from 1.1 branch.
131
 
132
2009-08-20  Doug Evans  
133
 
134
        * gas-test.scm ( test-data): Catch invalid requests,
135
        flag a warning and compensate.
136
        (
137
        (
138
        (cgen-build.sh): Convert symbols to strings before passing to
139
        string-append.
140
        (cgen-allinsn.exp): Ditto.
141
 
142
        * doc/pmacros.texi (.splice): Add more text.
143
 
144
2009-08-19  Doug Evans  
145
 
146
        * configure.in (AM_INIT_AUTOMAKE): Change version to 1.1.50 to
147
        distinguish from 1.1.
148
        * configure: Regenerate.
149
        * read.scm (-CGEN-VERSION): Update.
150
        * doc/version.texi: Update.
151
 
152
        New builtin .pmacro?.
153
        * pmacros.scm (-pmacro-builtin-pmacro?): New function.
154
        (pmacros-init!): Add .pmacro?.
155
        * doc/pmacros.text: Document .pmacro?.
156
        * testsuite/pmacros-1.test: Test .pmacro?.
157
 
158
        * pmacros.scm (scan-list1): Reorganize tracing so that the tracing
159
        of a pmacro begins before its arguments are evaluated, improves
160
        readability.
161
 
162
        * pmacros.scm (.sll, .srl, .sra): Fix thinko.
163
        * testsuite/pmacros-1.test: Ditto.  Add better tests.
164
 
165
        * doc/rtl.texi (Instructions): Improve docs of when ${...} is needed
166
        in assembler syntax.
167
        (Operands): Similarly.
168
 
169
2009-08-18  Doug Evans  
170
 
171
        * ifield.scm (ifld-encode-mode): Add FIXME.
172
        * opcodes.scm ( gen-insert): Handle encode parameters with
173
        modes.
174
        ( gen-extract): Similarly.
175
 
176
        * read.scm (parse-error): Handle #f for context-location.
177
        * utils-cgen.scm (unspecified-location): Fix building of
178
        single-location.
179
 
180
        * doc/rtl.texi: Document how to write hex and boolean values.
181
 
182
        * gas-test.scm ( test-data): Handle () values.
183
        ( test-data): Convert symbols to strings before passing
184
        to string-append.
185
        ( test-data): Enumerate all cases.  Emit correctly sized
186
        result for scalars.
187
 
188
        * operand.scm (hw-index-scalar): Set `name'.
189
        (hw-index-anyof, hw-index-derived): Ditto.
190
 
191
2009-08-17  Doug Evans  
192
 
193
        * pmacros.scm (-pmacro-builtin-internal-test): New function.
194
        (pmacros-init!): Add .internal-test.
195
        * testsuite/test-utils.sh.in (post_process): Tweak FAIL output.
196
        * testsuite/testsuite.cpu (internal-verify): New pmacro.
197
        * doc/pmacros.text: Document .internal-test.
198
 
199
        * utils-cgen.scm (parse-name): Handle (add 3) -> add3.
200
        (parse-comment): Allow numbers.
201
        * doc/porting.texi: Document that names and comments may be lists.
202
 
203
        * insn.scm (-insn-parse): Fix typo.
204
 
205
        Rename .eval -> .exec.  Add new .eval.
206
        * pmacros.scm (-pmacro-built-exec): Renamed from -pmacro-builtin-eval.
207
        (-pmacro-builtin-eval): New function.
208
        (pmacros-init!): Add .exec.
209
        * doc/pmacros.texi: Update, .exec -> .eval.  Document new .eval.
210
        * testsuite/location-1.test: Update.
211
        * testsuite/pmacros-1.test: Add test for .eval.
212
 
213
2009-08-16  Doug Evans  
214
 
215
        * doc/porting.texi: Remove support for Guile 1.4.
216
 
217
        * read.scm (current-reader-location): Return unspecified location
218
        if reader hasn't been initialized yet.
219
 
220
2009-08-13  Doug Evans  
221
 
222
        * dev.scm: Document tracing options.
223
 
224
        * pmacros.scm (pmacro-dump): New function.
225
        (check-pmacro): Tweak debugging output.
226
        * doc/cgenint.texi: Mention pmacro-dump, pmacro-debug.
227
        * doc/pmacros.texi (.splice): Use pmacro-dump instead of pmacro-expand.
228
 
229
        Add .let* pmacro builtin.
230
        * pmacros.scm (-pmacro-builtin-let*): New function.
231
        (pmacros-init!): Add .let*.
232
        * doc/pmacros.texi: Document .let*.
233
        * testsuite/pmacros-1.test: Test .let*.
234
 
235
2009-08-12  Doug Evans  
236
 
237
        Clean up cpu file parsing, pass context consistently instead of the
238
        old "errtxt" argument.
239
        NOTE: ACU == "All Callers Updated".
240
        * attr.scm (-parse-simple-attribute): Renamed from
241
        parse-simple-attribute, ACU.
242
        (-attr-parse): Change errtxt argument to context, ACU.
243
        (-attr-read): Ditto.
244
        (atlist-parse): Ditto.  Put context arg first.
245
        (attr-parse): Use parse-error instead of context-error.
246
        * enum.scm (parse-enum-vals): Change errtxt argument to context, ACU.
247
        (-enum-parse-prefix, -enum-parse, -enum-read): Ditto.
248
        * hardware.scm (-keyword-parse): Renamed from keyword-parse.
249
        `context' arg is now a  object.  ACU.
250
        (-keyword-read): `context' arg is now a  object.  ACU.
251
        (-hw-parse-indices): Change errtxt argument to context, ACU.
252
        (-hw-parse-values, -hw-parse-handlers): Ditto.
253
        (-hw-parse-getter, -hw-parse-setter, -hw-parse, -hw-read): Ditto.
254
        (-hw-validate-layout, -hw-create-getter-from-layout,
255
        -hw-create-setter-from-layout): Ditto.
256
        (:parse!, :parse!): Ditto.
257
        (:parse!, :parse!): Ditto.
258
        (:parse!): Ditto.
259
        * ifield.scm (-ifield-parse, ifield-read): Ditto.
260
        (-ifld-parse-follows, -ifld-parse-encode-decode): Ditto.
261
        (-ifld-parse-encode, -ifld-parse-decode): Ditto.
262
        (-multi-ifield-parse, -multi-ifield-read): Ditto.
263
        * insn.scm (-insn-parse, -insn-read): Ditto.
264
        (parse-syntax): Ditto.  Put context arg first.
265
        (-parse-insn-format-symbol): Change errtxt argument to context, ACU.
266
        (-parse-insn-format-ifield-spec, -parse-insn-format-list): Ditto.
267
        (-parse-insn-format): Ditto.
268
        * mach.scm (-arch-parse-alignment, -arch-parse-machs): Ditto.
269
        (-arch-parse-isas): Ditto.
270
        (-isa-read): Add context arg, ACU.
271
        (-cpu-parse, -cpu-read, -mach-read): Ditto.
272
        * minsn.scm (-minsn-parse-expansion): Change errtxt argument to
273
        context, ACU.
274
        (-minsn-parse, -minsn-read, -minsn-compute-iflds): Ditto.
275
        (minsn-make-alias): Ditto.
276
        * mode.scm (-mode-parse): Ditto.
277
        (parse-mode-name): Ditto.  Put context arg first.
278
        * model.scm (-prefetch-parse, -retire-parse, -pipeline-parse): Change
279
        errtxt argument to context, ACU.
280
        (-unit-parse, -model-parse, -model-read): Ditto.
281
        * operand.scm (-operand-parse-getter): Use parse-error instead of
282
        context-error.
283
        (-operand-parse-setter): Ditto.
284
        (-operand-parse): Change errtxt argument to context, ACU.
285
        (-operand-read, -derived-operand-parse, -derived-operand-read): Ditto.
286
        (-anyof-operand-parse, -anyof-operand-read): Ditto.
287
        * read.scm (reader-error): Delete.  Use parse-error instead.
288
        (parse-error): Change errtxt argument to context, ACU.  Split args
289
        argument into expr and maybe-help-text.
290
        (-reader-process-expanded-1!): Reorganize.
291
        * rtl.scm (-subr-read): Change errtxt argument to context, ACU.
292
        * types.scm (parse-type): Ditto.
293
        * utils-cgen.scm (single-location->simple-string): New function.
294
        (): Replace members file,lineno with location.
295
        (make-prefix-context): Renamed from context-make-prefix, ACU.
296
        (make-current-context): New function.
297
        (context-append, context-append-name): New functions.
298
        (context-make-reader): Delete.
299
        (parse-name): Change errtxt argument to context, ACU.
300
        Put context arg first.
301
        (parse-comment): Ditto.
302
        (parse-number): Change errtxt argument to context, ACU.
303
        (arg-list-validate-name, arg-list-check-no-args,
304
        arg-list-symbol-arg): Ditto.
305
 
306
        * read.scm (-cmd-if): Don't assume test is a list.
307
 
308
        * html.scm (get-insn-properties): Delete errtxt, unused.
309
 
310
2009-08-11  Doug Evans  
311
 
312
        * doc/rtl.texi (hardware types): Add pc.
313
 
314
2009-08-07  Doug Evans  
315
 
316
        Add -t option for tracing things like commands, pmacro expansion.
317
        * dev.scm (cload): New arg #:trace.
318
        * pmacros.scm (-pmacro-expand): Rewrite pmacro tracing.
319
        (pmacro-trace): New arg `loc'.  Rewrite pmacro tracing.
320
        (pmacro-debug): Call pmacro-trace instead of -pmacro-expand.
321
        * read.scm (): New members trace-commands?, trace-pmacros?.
322
        (-reader-process-expanded-1!): Trace commands if requested.
323
        (-reader-process!): Call pmacro-trace of pmacro tracing requested.
324
        (-set-trace-options!): New function.
325
        (-init-reader!): New function.
326
        (cpu-load): New arg trace-options, all callers updated.
327
        Call -init-reader! and -set-trace-options!.
328
        (cgen-usage): Improve output formatting.
329
        (common-arguments): New option -t.
330
        (-cgen): Process -t.
331
        * utils-cgen.scm (single-location->string): Renamed from
332
        pretty-print-single-location.  All callers updated.
333
        (location->string): Renamed from pretty-print-location.
334
        All callers updated.
335
        (source-properties-location->string): New function.
336
        * doc/running.texi: Document -t.
337
 
338
2009-08-06  Doug Evans  
339
 
340
        * read.scm (debug-env, debug-var-names, debug-var, debug-tty,
341
        debug-tty-port, debug-repl, debug-quit, debug-repl-env): Move to ...
342
        * utils.scm: ... here.
343
 
344
2009-08-05  Doug Evans  
345
 
346
        Track source location better, for better error messages.
347
        * pmacros.scm (-pmacro-eval): Delete, unused.
348
        (pmacro-expand, -pmacro-expand): New arg `loc', all callers updated.
349
        (-pmacro-expand-expr-list, -smacro-apply): Ditto.
350
        (scan-list, scan): Ditto.
351
        (-pmacro-builtin-pmacro, -pmacro-builtin-let, -pmacro-builtin-if,
352
        -pmacro-builtin-case, -pmacro-builtin-cond, -pmacro-builtin-begin,
353
        -pmacro-builtin-andif, -pmacro-builtin-orif): Ditto.
354
        (scan-list1): New function.
355
        (-pmacro-build-lambda): New arg `loc', all callers updated.  Rewrite.
356
        * read.scm (): New member `location'.
357
        (-reader-lookup-command): Renamed from reader-lookup-command,
358
        all callers updated.
359
        (reader-error): Rewrite to produce better source location info.
360
        (current-reader-location): New function.
361
        (-reader-process-expanded-1!): Renamed from -reader-process-expanded-1.
362
        All callers updated.  Record source location of expression.
363
        (reader-process-expanded!): Renamed from reader-process-expanded.
364
        All callers updated.
365
        (-reader-process!): Renamed from reader-process.  New arg `loc'.
366
        All callers updated.  Record source location of define-pmacro.
367
        * utils-cgen.scm (): New class.
368
        (single-location): New (pseudo) class.
369
        (pretty-print-single-location, pretty-print-location): New functions.
370
        (location-top, location-push-single, location-push): New functions.
371
        (unspecified-location, current-input-location): New functions.
372
        (location-property): New object property.
373
        (location-property-set!): New function.
374
        (): Renamed from .  New member `location'.
375
        All uses updated.
376
        * testsuite/location-1.test: New testcase.
377
        * testsuite/run-tests.sh: Fix fail count handling.
378
        * testsuite/test-utils.sh.in (run_cgen): New option `-f'.  Allow tests
379
        to expect cgen to fail.
380
 
381
        * pmacros.scm (*): Use "pmacro" instead of "macro" more consistently.
382
 
383
        * read.scm (-cmd-include): Renamed from include.  All callers updated.
384
        (-cmd-if): Renamed from cmd-if.  All callers updated.
385
        Use reader-process-expanded! on then/else clauses instead of eval1.
386
 
387
2009-07-22  Doug Evans  
388
 
389
        * modes.scm (TI,OI): New modes.
390
        * types.scm (parse-type): Improve error checking.  Don't hardwire
391
        mode names here.
392
        * utils.scm (non-negative-integer?): New function.
393
 
394
        * pmacros.scm (-pmacro-builtin-find): New predicate.
395
        (pmacros-init!): Add .find.
396
        * doc/pmacros.tex: Document .find.
397
        * testsuite/pmacros-1.test: Test .find.
398
 
399
2009-07-20  Doug Evans  
400
 
401
        * insn.scm (multi-insn-instantiate!): Use logging messages instead of
402
        commented out printfs.
403
        * rtl.scm (rtl-finish!): Whitespace tweaks.
404
        * model.scm (parse-insn-timing): Tweak logging message.
405
        * operand.scm: Comment and whitespace tweaks.
406
        (op:type): Tweak error message.
407
        (op-ifield): Tweak logging message.
408
        (-derived-operand-parse, anyof-merge-semantics): Ditto.
409
        * read.scm: Whitespace cleanup.
410
        * utils.scm: Whitespace cleanup.
411
 
412
2009-07-19  Doug Evans  
413
 
414
        Fix binding of nested pmacro parameters.
415
        * pmacros.scm (-pmacro-env-make): New arg prev-env.
416
        All callers updated.
417
        (-pmacro-bulid-lambda): Ditto.
418
        * doc/pmacros.texi: Update.
419
        * testsuite/pmacros-1.test: Add testcase.
420
 
421
        * ifield.scm (-multi-ifield-make-default-insert): Fix shifts
422
        calculation.
423
        (-multi-ifield-make-default-extract): Ditto.
424
 
425
        * rtl-c.scm (addc-cflag, addc-oflag, subc-cflag, subc-oflag): Define.
426
        (add-cflag, add-oflag, sub-cflag, sub-oflag): Deprecate.
427
        * rtx-funcs.scm (addc-cflag, addc-oflag, subc-cflag, subc-oflag):
428
        Define.
429
        (add-cflag, add-oflag, sub-cflag, sub-oflag): Deprecate.
430
        * doc/rtl.texi: Update.
431
 
432
        * doc/pmacros.texi (.not): Emphasize (.not 0) is not 1.
433
 
434
        Rename builtin boolean pmacros, for consistency with rtl.
435
        * pmacros.scm: .and -> .andif, .or -> .orif, .bitand -> .and,
436
        .bitor -> .or, .bitxor -> .xor, .bitinv -> .inv.
437
        * doc/pmacros.texi: Update.
438
        * testsuite/pmacros-1.test: Update.
439
 
440
2009-07-17  Doug Evans  
441
 
442
        Use hash tables to record ifields, operands, insns, macro-insns.
443
        * attr.scm (attr-builtin!): Tweak some comments.
444
        * hardware.scm (hardware-builtin!): Call all-isas-attr-value.
445
        * ifield.scm (): Subclass from  instead of
446
        .
447
        (): New constructor.
448
        (ifield-builtin!): Add isa attr to f-nil, f-anyof.
449
        * insn.scm (): Subclass from  instead of
450
        .
451
        (-sub-insn-make!): Add hack to avoid differences in generated code.
452
        (multi-insn-instantiate!): Add total number of multi-insns to
453
        logging message.
454
        * mach.scm (): Rename members ifld-list, op-list, insn-list,
455
        minsn-list to foo-table.  New member next-ordinal.
456
        Update getters/setters.
457
        (arch-ifld-list, arch-op-list, arch-insn-list, arch-minsn-list):
458
        New functions.
459
        (-get-next-ordinal!, -get-lowest-ordinal): New function.
460
        (-make-ident-object-table, -ident-object-table->list,
461
        -ident-object-table-add!, -ident-object-table-lookup): New functions.
462
        (current-ifld-list, current-ifld-add! current-ifld-lookup,
463
        -ifld-already-defined?): Rewrite.
464
        (current-op-list, current-op-add! current-op-lookup,
465
        -op-already-defined?): Rewrite.
466
        (current-raw-insn-list, insn-list-car, insn-list-splice!): Delete.
467
        (current-insn-list, current-insn-add! current-insn-lookup,
468
        -insn-already-defined?): Rewrite.
469
        (current-minsn-list, current-minsn-add! current-minsn-lookup,
470
        -minsn-already-defined?): Rewrite.
471
        (all-isas-attr-value, all-isas-attr, attr-isa-list): New functions.
472
        (MAX-VIRTUAL-INSNS): Define.
473
        (arch-analyze-insns!): Add hack to avoid differences in generated code.
474
        Update use of arch-insn-list.
475
        (mach-init!): Initialize ifld-table, op-table, insn-table, minsn-table.
476
        (arch-finish!): Delete references to ifld-list, op-list, insn-list,
477
        minsn-list.
478
        * minsn.scm (): Subclass from  instead of
479
        .  New constructor.
480
        * operand.scm (): Subclass from  instead of
481
        .
482
        * sid.scm (-virtual-insn-add!): New function.
483
        (-create-virtual-insns!): Call it.
484
        (-fill-sim-insn-list!): Rewrite.
485
        * sim.scm (-virtual-insn-add!, -create-virtual-insns!): New functions.
486
        (sim-finish!): Move contents to -create-virtual-insns!, and call it.
487
        * utils-cgen.scm (): New class.
488
        (obj-ordinal, obj-set-ordinal!): New functions.
489
        (add-ident-methods!): Delete.
490
 
491
        * model.scm (parse-insn-timing): Change logging message to level 3.
492
 
493
2009-07-16  Doug Evans  
494
 
495
        * doc/rtl.texi (Enumerated constants): Add example, fix a typo,
496
        add a link to define-normal-insn-enum.
497
 
498
        * doc/porting.texi (Conventions): Add docs on writing integers.
499
 
500
        * cpu/simplify.inc (*): One line doc strings don't need \n.
501
        (df): Invoke define-full-ifield instead of claiming it's an alias.
502
        (dno): Define.
503
        (dnop): Mark as deprecated.
504
 
505
        * cpu/play.cpu: Add example of hardware `layout'.
506
        * doc/porting.tex: Add docs on simplify.inc.
507
        * doc/rtl.texi: Cleanup pass over "Simplification macros",
508
        and other things.
509
 
510
        * ifield.scm: Whitespace/formatting cleanup.
511
 
512
        * ifield.scm (-multi-ifield-parse): Watch for missing subfields.
513
 
514
        * read.scm (parse-error): Don't print single entry args as a list.
515
        (-reader-process-expanded-1): Convert symbol to string for
516
        string-append.
517
 
518
        * insn.scm (multi-insn-instantiate!): Tweak logging message.
519
 
520
2009-07-15  Doug Evans  
521
 
522
        * cpu/simplify.inc (dno): New pmacro.
523
        * doc/porting.texi: Add section on simplify.inc.
524
        * doc/rtl.texi (Instruction operands): Mention dno, dnop.
525
 
526
2009-07-15  Doug Evans  
527
 
528
        * gen-all-doc: Generate index.html.
529
 
530
2009-07-13  Doug Evans  
531
 
532
        Extend pmacro language, add testsuite.
533
        * Makefile.am (SUBDIRS): Add testsuite.
534
        * Makefile.in: Regenerate.
535
        * configure.in (AC_OUTPUT): Create testsuite/Makefile,
536
        testsuite/test-utils.sh.
537
        * configure: Regenerate.
538
        * dev.scm (cload): Handle testsuite app.
539
        (load-testsuite): New function.
540
        * pmacros.scm: (-pmacro-debug?): New global.
541
        (-smacro-table): New global.
542
        (-smacro-lookup, -smacro-set!): New functions.
543
        (-pmacro-make): New argument `syntactic-form?', all callers updated.
544
        (-pmacro-syntactic-form?): New function.
545
        (-pmacro-expected-number, -pmacro-verify-number): New functions.
546
        (-pmacro-expected-integer, -pmacro-verify-integer): New functions.
547
        (-pmacro-expected-non-negative-integer): New function.
548
        (-pmacro-verify-non-negative-integer): New function.
549
        (-pmacro-expand-expr-list): New function.
550
        (-pmacro-process-args-1): Renamed from -pmacro-process-args.
551
        (-pmacro-process-args): Renamed from -pmacro-invoke.
552
        (-pmacro-apply, -smacro-apply): New functions.
553
        (-pmacro-expand): Rewrite syntactic form processing.
554
        (-pmacro-build-lambda): Reformat.
555
        (define-pmacro): Watch for more errors in definition.
556
        (pmacro-debug): New function.
557
        (pmacro-trace): Set/reset -pmacro-debug?.
558
        (all existing builtin pmacro helpers): Rename to -pmacro-builtin-foo.
559
        (-pmacro-builtin-substring): Fix.  Add support for `end' marker.
560
        (-pmacro-builtin-for-each, et.al.): New helpers for .for-each, .let,
561
        .if, .case, .cond, .begin, .print, .dump, .error, .list, .ref,
562
        .length, .replicate, .equals, .and, .or, .not, .eq, .ne, .lt, .gt,
563
        .le, .ge, .add, .sub, .mul, .div, .rem, .sll, .srl, .sra, .bitand,
564
        .bitor, .bitxor, bitinv, .car, .cdr, .caar, .cadr, .cdar, .cddr.
565
        (pmacros-init!): Initialize -smacro-table.
566
        Rewrite pmacro initialization.
567
        * read.scm (reader-process-expanded): Renamed from
568
        -reader-process-expanded.  All callers updated.
569
        Recognize () as a no-op.
570
        (cpu-load): Tweak logging messages.
571
        * utils.scm (message): Add comment.
572
        * cpu/play.cpu: Add some instructions to play with .let.
573
        * doc/cgenint.texi: Move some debugging related docs to here from
574
        cgen.texi.
575
        * doc/pmacros.texi: Reorganize.  Add docs for new builtin pmacros.
576
        * testsuite/Makefile.am: New file.
577
        * testsuite/Makefile.in: New file.
578
        * testsuite/test-utils.sh.in: New file.
579
        * testsuite/run-tests.sh: New file.
580
        * testsuite/testsuite.cpu: New file.
581
        * testsuite/pmacros-1.test: New file.
582
 
583
        * decode.scm: Comment and formatting tweaks.
584
        (-build-decode-table-guts): Add more data to logging message.
585
 
586
2009-07-12  Doug Evans  
587
 
588
        Delete files that now live in ../cpu.
589
        * cpu/iq10.cpu: Delete.
590
        * cpu/iq2000.cpu: Delete.
591
        * cpu/iq2000.opc: Delete.
592
        * cpu/iq2000m.cpu: Delete.
593
        * cpu/m32r.cpu: Delete.
594
        * cpu/m32r.opc: Delete.
595
 
596
2009-07-09  Doug Evans  
597
 
598
        * utils-sim.scm (-gen-decode-bits): New argument `entire-val'.
599
        All callers updated.  Work around -ve shifts by referencing the
600
        entire value.
601
 
602
        * utils.scm (message): Handle pairs.
603
 
604
2009-07-08  DJ Delorie  
605
 
606
        * cpu/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
607
        cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
608
        cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
609
        written to.
610
 
611
2009-07-07  Doug Evans  
612
 
613
        * cpu/play.cpu (add): Use (ifield enum) for one format element.
614
        * cpu/play.opc: New file.
615
 
616
        Allow arbitrary enums in instruction formats, e.g. (f-op1 OP1_4).
617
        * insn.scm (-parse-insn-format-ifield-spec): Recognize (ifield enum).
618
        * doc/rtl.texi (Instructions): Update.
619
 
620
        * cgen-opc.scm (-opc-file-path,opc-file-path): Move to opcodes.scm
621
        (opc-arguments, -OPC): Call set-opc-file-path!.
622
        * opcodes.scm (-opc-file-path,opc-file-path): Moved here.
623
        (set-opc-file-path!): New function.
624
        * dev.scm: Mention set-opc-file-path!.  Mention doc options.
625
 
626
        * opc-ibld.scm (gen-insn-builder): Convert symbols to strings
627
        before passing to gen-c-args.
628
 
629
2009-07-06  DJ Delorie  
630
 
631
        * cpu/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
632
        * cpu/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
633
        unspecified accesses to control registers.
634
 
635
2009-07-01  DJ Delorie  
636
 
637
        * cpu/mep-ivc2.cpu: Add VOLATILE to insns that make
638
        unspecified accesses to control registers.
639
 
640
        * cpu/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic names to VLIW variants.
641
        (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
642
 
643
2009-06-27  Doug Evans  
644
 
645
        * gen-all-intrinsics: New file.
646
 
647
2009-06-24  Doug Evans  
648
 
649
        * All *.scm files: Update copyright year.
650
        * utils.scm (copyright-fsf, copyright-redhat): Ditto.
651
 
652
2009-06-23  DJ Delorie  
653
 
654
        * intrinsics.scm: Updates to support IVC2.
655
        (belongs-to-group?): Check IVC2 slots.
656
        (-slots-attribute): New.
657
        (targets::attributes): Add SLOTS.
658
        (target:add-well-known-intrinsics): Add CPMOV.
659
        (md-insn): Add CPTYPE and CRET?.
660
        (add-md-insn): Likewise.
661
        (add-intrinsic-for-isa): Disable the duplicate tests, as IVC2 has
662
        duplicate insns with different bit patterns.
663
        (write-cgen-insn?): Add cret? support.
664
        (intrinsics.h): Add vector types.
665
        (runtime-op): Add vector support.
666
        (intrinsic-protos.h): Let GCC define its types.  Add cret? support.
667
 
668
        * cpu/mep-core.cpu: Add CPTYPE and CRET attributes.
669
        * cpu/mep-ivc2.cpu: Update all insns to include type information.
670
        (h-cr-ivc2): Default to typeless.
671
        (h-ccr-ivc2): Fix register width.
672
        (SLOTS): Fix values and default.
673
        (ivc2_*): Add control register names.
674
        (crop, crqp, crpp, croc, crqc, crpc): Default to typeless.
675
 
676
        * cpu/mep.opc (mep_cgen_insn_supported_asm): New, skip the short
677
        version of BSR when assembling VLIW bundles.  Use it in mep-asm.c
678
 
679
2009-06-22  Doug Evans  
680
 
681
        * semantics.scm (insn-build-known-values): Fix typo in comment.
682
 
683
2009-06-21  Doug Evans  
684
 
685
        * rtl-xform.scm (rtx-simplify-insn): New function.
686
        * html.scm (gen-insn-docs): Call it.
687
        * sem-frags.scm (sem-find-common-frags, -frag-test-data): Ditto.
688
        * iformat.scm (ifmt-analyze): Minor simplification.
689
 
690
        * semantics.scm (semantic-compile): Change arg sem-code-list to
691
        sem-code.
692
        (semantic-attrs): Ditto.
693
        * iformat.scm (ifmt-analyze): Update.
694
        (ifmt-compute!): Update.
695
        * rtl-traverse.scm (-compile-expr-fn, rtx-compile): Move to
696
        rtl-xform.scm.
697
        (-rtx-trim-args, -rtx-trim-for-doc, rtx-trim-for-doc): Ditto.
698
        * rtl.scm (-rtx-canonicalize-expr, rtx-canonicalize): Ditto.
699
        * semantics.scm (rtx-simplify): Ditto.
700
        (rtx-const-equal, rtx-const-list-equal): Ditto, and make local.
701
        (rtx-simplify-eq-attr-mach, rtx-simplify-eq-attr-insn): Ditto.
702
        (-simplify-expr-fn): Move to rtl-xform.scm.
703
        (-solve-expr-fn, rtx-solve): Ditto.
704
        * rtl-xform.c: New file.
705
        * read.scm: Load it.
706
 
707
        * rtl-c.scm (delay): Add FIXME, tweak formatting.
708
        * rtl-traverse.scm (-rtx-traverse-expr): Tweak comments.
709
        (-rtx-traverse, rtx-traverse): Ditto.
710
 
711
2009-06-20  Doug Evans  
712
 
713
        * doc/rtl.texi (Expressions): Enhance docs of shift ops.
714
 
715
        * configure.in: Update version to 1.1.
716
        * configure: Regenerate.
717
        * read.scm (-CGEN-VERSION): Update to 1.1.0.
718
 
719
2009-06-20  Masaki Muranaka  
720
            Doug Evans  
721
 
722
        * desc-cpu.scm (cgen-desc.h): Tweak logit message for consistency.
723
        (cgen-desc.c): Ditto.
724
        * sid-cpu.scm (cgen-desc.h, cgen-cpu.h, cgen-defs.h): Ditto.
725
        (cgen-write.cxx, cgen-semantics.cxx, cgen-sem-switch.cxx): Ditto.
726
        * sid-decode.scm (cgen-decode.h, cgen-decode.cxx): Ditto.
727
        * sid-model.scm (cgen-model.cxx, cgen-model.h): Ditto.
728
        * sim-arch.scm (cgen-arch.h, cgen-arch.c): Ditto.
729
        (cgen-cpuall.h, cgen-ops.c): Ditto.
730
        * sim-cpu.scm (cgen-cpu.h, cgen-defs.h, cgen-cpu.c): Ditto.
731
        (cgen-read.c, cgen-write.c, cgen-semantics.c): Ditto.
732
        (cgen-sem-switch.c): Ditto.
733
        * sim-decode.scm (cgen-decode.h, cgen-decode.c): Ditto.
734
        * sim-model.c (cgen-model.c): Ditto.
735
 
736
2009-06-18  Doug Evans  
737
 
738
        * gen-all-doc: Add fr30, ip2k, iq2000, lm32, mep, mt.
739
 
740
        * html.scm (doc-analyze!): Provide default IDOC attribute if missing.
741
 
742
        * dev.scm (cload): Change #:arch argument to take the path to the
743
        .cpu file instead of just the name of the architecture.
744
        * read.scm (arch-path): Remove trailing '/'.
745
        (cpu-load): Set `arch-path' to directory of .cpu file.
746
        (-cgen): Don't set `arch-path' here.
747
        (include): Update.
748
        * doc/porting.texi: Update.
749
 
750
2009-06-14  Doug Evans  
751
 
752
        * gen-all-doc: Use files in ../cpu where possible.
753
 
754
        * Makefile.am (ARCHFILE): Fix path.
755
        * Makefile.in: Regenerate.
756
        * html.scm: Use "pre" instead of "plaintext".
757
 
758
        * doc/cgenint.texi: Renamed from internals.texi.  Several cleanups.
759
        * doc/app.texi: Cleanup pass.
760
        * doc/cgen.texi: Cleanup pass.
761
        * doc/glossary.texi: Add entries for ifield, iformat, sformat, insn.
762
        * doc/intro.texi: Cleanup pass.
763
        * doc/mdate-sh: New file.
764
        * doc/opcodes.texi: Cleanup pass.
765
        * doc/pmacros.texi: Cleanup pass.
766
        * doc/porting.texi: Cleanup pass.
767
        * doc/rtl.texi: Cleanup pass.
768
        * doc/running.texi: Cleanup pass.  Document more runtime options.
769
        * doc/stamp-vti: Update.
770
        * doc/version.texi: Update.
771
 
772
        * Makefile.am (AUTOMAKE_OPTIONS): Add 1.9
773
        (GUILE): Fix definition.
774
        * Makefile.in: Regenerate with automake 1.9.6.
775
        * aclocal.m4: Regenerate with aclocal 1.9.6.
776
        * configure.in (AC_PREREQ): Set to 2.59.
777
        (GENINSRC_NEVER): Define.
778
        * configure: Regenerate with autoconf 2.59.
779
        * doc/Makefile.am (info_TEXINFOS): Add cgenint.texi.
780
        (cgen.info,cgen.dvi): Delete.
781
        (cgen_TEXINFOS,cgenint_TEXINFOS): Define.
782
        (noinst_TEXINFOS): Add cgenint.texi.
783
        (DOCFILES): Add missing files.
784
        (MAINTAINERCLEANFILES,DISTCLEANFILES): Define.
785
        * doc/Makefile.in: Regenerate with automake 1.9.6.
786
 
787
        * guile.scm: Add "." to %load-path if >= guile version 1.8.
788
 
789
        * attr.scm: Removing trailing whitespace.
790
        * cgen-intrinsics.scm: Ditto.
791
        * cgen-sim.scm: Ditto.
792
        * cos.scm: Ditto.
793
        * enum.scm: Ditto.
794
        * guile.scm: Ditto.
795
        * sim.scm: Ditto.
796
 
797
2009-05-28  DJ Delorie  
798
 
799
        * cpu/mep.opc (parse_signed16_range): New.
800
        (parse_unsigned16_range): New.
801
        * cpu/mep-ivc2.cpu (imm16p0, simm16p0): Use them.
802
 
803
2009-05-26  DJ Delorie  
804
 
805
        * cpu/mep-ivc2.cpu (h-ccr-ivc2): Enable for C3 slots, fix
806
        accumulator names.
807
        (f-ivc2-ccrn-c3hi): New.
808
        (f-ivc2-ccrn-c3lo): New.
809
        (f-ivc2-ccrn-c3): New.
810
        (ivc2c3ccrn): Use it.
811
 
812
2009-05-22  DJ Delorie  
813
 
814
        * cpu/mep.opc (mep_examine_ivc2_insns): Fix bug in ivc2 decoder.
815
        (mep_config_map): Regenerate.
816
 
817
        * cpu/mep-ivc2.cpu (h-ccr-ivc2): Add generic names as well as
818
        ivc2-specific names.
819
        (simm8p20): New.
820
        (cmovc): move to after field definitions, use ivc2-specific
821
        register names.
822
        (cpmovi_b_P0S_P1): New.
823
 
824
2009-05-19  DJ Delorie  
825
 
826
        * cpu/mep.opc: Regenerate configuration.
827
        (parse_cdisp10): Only check CPU flags, not COP flags.
828
        (check_configured_mach): Likewise.
829
 
830
2009-05-13  DJ Delorie  
831
 
832
        * intrinsics.scm (insns.md): Add RTL predicates.
833
        (intrinsics.h): Remove old C intrinsics.
834
 
835
2009-04-29  DJ Delorie  
836
 
837
        * mep-ivc2.cpu: New.
838
        * mep-core.cpu: Regenerated.  Add support for deferred register
839
        writes.
840
        (SLOT): Add IVC2 slot types.
841
        (sim-syscall): Rename to something more appropriate.
842
        * mep-ext-cop.cpu: Regenerate.
843
        * mep.opc: Regenerate.  Add "coprocessor supported" define area.
844
        (print_slot_insn): New.
845
        (mep_examine_ivc2_insns): New.
846
        (mep_print_insn_set_ivc2_mode): New.
847
        (mep_print_insn): Support IVC2 slotting.
848
 
849
2009-04-20  DJ Delorie  
850
 
851
        * intrinsics.scm (intrinsics-analyze!): Include aliases.
852
        (guess-mode): Drop COP* syntax.
853
        (need-insn): Add "--syscall--" to the list.
854
        (enum-type): Drop COP* syntax.
855
        (intrinsics.h): Likewise.
856
        (intrinsic-protos.h): Change file header to allow it to be
857
        included.
858
 
859
2009-04-17  DJ Delorie  
860
 
861
        * cpu/mep-c5.cpu (f-12s20): Change to signed.
862
        (lhucpm1): Limit to C5 mach.
863
        (dsp0,dsp1): Rewrite as aliases so that intrinsics are generated.
864
        * cpu/mep-core.cpu (extend-cdisp10): New.
865
        (f-cdisp10): Change to signed, use extend-cdisp10 to sign extend.
866
 
867
2009-04-08  DJ Delorie  
868
 
869
        * cpu/mep-c5.cpu: New.
870
        * cpu/mep-core.cpu: Add C5 support.
871
        * cpu/mep.opc: Likewise.
872
 
873
2009-02-18  Pierre Muller  
874
 
875
        * opc-itab.scm (<>_cgen_init_opcode_table): Avoid compiler warning
876
        about calling memset with a zero length.
877
 
878
2009-02-03  DJ Delorie  
879
 
880
        * cpu/mep-core.cpu: Update to new MeP configuration.
881
        * cpu/mep-ext-cop.cpu: Likewise.
882
        * cpu/mep.opc: Likewise.
883
 
884
2008-12-23  Frank Ch. Eigler  
885
 
886
        * sim.scm (-op-gen-queued-write): Add needed symbol->string.
887
 
888
2008-06-17  Dave Brolley  
889
 
890
        * cpu/xstormy16.cpu (h-pc): Add a set handler.
891
        (h-gr): Likewise.
892
 
893
2007-11-13  Dave Brolley  
894
 
895
        * cgen-intrinsics.scm (load-files): Remove reference to fixup.scm.
896
 
897
2007-11-05  Dave Brolley  
898
 
899
        * intrinsics.scm,cgen-intrinsics.scm: New application which
900
        generates code to support intrinsic functions for insns in the
901
        mep architecture in gcc.
902
 
903
2007-09-21  Dave Brolley  
904
 
905
        * cpu/mep-core.cpu (rnc, rnuc, rns, rnus, rn3c, rn3uc, rn3s)
906
        (rn3us): CDATA attribute now LONG.
907
 
908
2007-08-21  Dave Brolley  
909
 
910
        * rtl-c.scm (const): Generate call to MAKEDI for integers larger
911
        than 32 bits.
912
 
913
2007-07-05  Nick Clifton  
914
 
915
        * utils.scm (copyright-fsf): Update copyright notice to refer to
916
        the GPL version 3.
917
 
918
2007-05-22  Nick Clifton  
919
 
920
        * doc/cgen.texi: Use @copying around the copyright notice.
921
        * doc/internals.texi: Likewise.
922
 
923
2007-02-05  Dave Brolley  
924
 
925
        * *mep*: New cpu description for Toshiba Media Processor (MeP).
926
 
927
2007-02-05  Dave Brolley  
928
 
929
        * opc-asmdis.scm (-gen-init-asm-fn): Include CGEN_ASM_INIT_HOOK
930
        in the generated code for @arch@_cgen_init_asm if it is defined.
931
 
932
        * Contribute the following changes:
933
        2005-04-05  Richard Sandiford  
934
 
935
        * attr.scm (): New attribute class.
936
        (attr-kind): Handle .
937
        (parse-simple-attribute): New function.
938
        ( 'parse-value): Use parse-simple-attribute.
939
        ( 'parse-value): Likewise.
940
        ( 'parse-value): Likewise.
941
        ( 'parse-value): Likewise.
942
        ( 'parse-value): New function.
943
        (-attr-parse): Handle .
944
        (-attr-read): Likewise.
945
        ( 'gen-value-for-defn-raw): New function.
946
        ( 'gen-value-for-defn): New function.
947
 
948
2006-11-07  Dave Brolley  
949
 
950
        * sid-model.scm (gen-model-unit-fn-decl): Use symbol->string where
951
        necessary.
952
 
953
2006-10-18  Dave Brolley  
954
 
955
        * Contribute the following changes:
956
 
957
        2006-07-11  Dave Brolley  
958
 
959
        * cpu/sh64-compact.cpu (movual, movual2): New insns.
960
        (movcol): New insn.
961
        * cpu/sh.cpu (sh4a-nofpu-models): New pmacro.
962
        * sid.scm (-op-gen-delayed-set-maybe-trace): If delay used, note the
963
        hardware or memory mode which was used.
964
        * sid-cpu.scm (hw-need-write-stack?): New function.
965
        (-gen-hw-stream-and-destream-fns): Compute stack-regs. Use it to
966
        identify hardware which uses write stacks.
967
        (useful-mode-names): Renamed to write-stack-memory-mode-names.
968
        Initialized to an empty list.
969
        (-gen-writestacks, -gen-reset-fn, -gen-unified-write-fn): Use
970
        hw-need-write-stack?.
971
        * hardware.scm (used-in-delay-rtl?): New member of .
972
        (define-getters ): Define used-in-delay-rtl?.
973
        (used-in-delay-rtl?): New method of .
974
        (hw-used-in-delay-rtl?): New function.
975
 
976
        2006-06-20  Dave Brolley  
977
 
978
        * sid.scm (gen-attr-type): Removed.
979
        * cpu/sh.cpu (SH2a-nofpu-MACH): Add sh5.
980
        (SH2a-MACH): Add sh5.
981
        (sh2a-nofpu-models): Add units for sh5.
982
        (sh2a-fpu-models): Likewise.
983
 
984
        2006-06-15  Dave Brolley  
985
 
986
        * cpu/sh-sim.cpu: New file.
987
        * cpu/sh-sid.cpu: New file.
988
        * cpu/sh64-media.cpu (dshci): Add xtiming argument and splice it in.
989
        (All fields): Remap for (insn-lsb0? #f)
990
        (All insns): Add timing specs.
991
        * cpu/sh64-compact.cpu (dshcf,dshcop): Replace 'ignored' argument with
992
        'xattrs' and .splice it in.
993
        (32-BIT-INSN,SH4-GROUP,SH4A-GROUP): New insn attributes.
994
        (h-frc,h-drc): Add PROFILE attribute.
995
        (h-fpccr): Removed.
996
        (h-vbr): New hardware.
997
        (All fields): Remap for (insn-lsb0? #f)
998
        (f-imm20-hi,f-imm20-lo,f-imm20): New fields.
999
        (fr0,fmovm,fmovn,imm20,imm12x4,imm12x8,vbr): New operands.
1000
        (fpscr): Use h-fpscr.
1001
        (fsdm,fsdn): Use h-fsd.
1002
        (dshci): Add xtiming argument and splice it in.
1003
        (dr,xd): pmacros removed.
1004
        (All insns): Add timing specs, *-MACH attribibutes,
1005
        SH4{A}-GROUP attributes.
1006
        (divu,mulr,ldc-vbr,ldc-sr,ldcl-vbr,movl12,movl13,stcl-vbr): New insns.
1007
        * cpu/sh.cpu): Include sh-sid.cpu or sh-sim.cpu depending on whether
1008
        we're being processed for sim or sid.
1009
        (define-arch): Change insn-lsb0? for #f. Add machs sh2e, sh2a-fpu,
1010
        sh2a-nofpu, sh4-nofpu, sh4a-nofpu, sh4a, sh4al.
1011
        (define-isa compact): Add (isa-parallel-insns 2).
1012
        (define-isa media): Add (isa-parallel-insns 2). Add
1013
        (default-insn-word-bitsize 32). Change base-insn-bitsize to 32.
1014
        (define-mach): Add sh2e, sh2a-fpu, sh2a-nofpu, sh4-nofpu, sh4a-nofpu,
1015
        sh4a, sh4al
1016
        (SH2-MACH, SH2e-MACH, SH2a-nofpu-MACH, SH2a-MACH, SH3-MACH)
1017
        (SH3e-MACH, SH4-nofpu-MACH, SH4-MACH, SH4a-nofpu-MACH, SH4a-MACH)
1018
        (SH4al-MACH, SH5-MACH): New pmacros.
1019
        (common-units, common-fp-units, sh2a-nofpu-units, sh2a-fpu-units)
1020
        (sh4-nofpu-units, sh4-common-fp-units, sh5-media-units)
1021
        (sh5-media-fp-units, common-model, common-model-with-fp)
1022
        (sh3-model, sh3e-model): New pmacros.
1023
        (define-model sh2): New model.
1024
        (define-model sh2e): New model.
1025
        (define-model sh3): New model.
1026
        (define-model sh3e): New model.
1027
        (define-model sh2a-nofpu): New model.
1028
        (define-model sh2a-fpu): New model.
1029
        (define-model sh4-nofpu): New model.
1030
        (define-model sh4): New model.
1031
        (define-model sh4a-nofpu): New model.
1032
        (define-model sh4a): New model.
1033
        (define-model sh4al): New model.
1034
        (define-model sh5-media): New model.
1035
        (define-model sh5): Add all units.
1036
        (all-models, sh2e-models, sh2a-nofpu-models, sh2a-fpu-models)
1037
        (sh3-models, sh3e-models, sh4-nofpu-models, sh4-models)
1038
        (sh5-media-models, shad-models, fsqrt-models): New pmacros.
1039
        (h-pc): Add PROFILE attribute.
1040
        (h-fr): Likewise.
1041
        (h-tr): Likewise.
1042
        (h-gr,h-grc): Likewise.
1043
        (h-cr): Set h-sr in setter.
1044
        (h-frbit): Get/Set h-fpscr.
1045
        (h-szbit,h-prbit): Likewise.
1046
        (h-fp): Add PROFILE attribute. Now indexed by even indices 0-62.
1047
        Add getter and setter.
1048
        (h-fc): Add PROFILE attribute. Now indexed by quad indices 0-60.
1049
        Adjust getter and setter.
1050
        (h-fmtx): Add PROFILE attribute. Now indexed by 0, 16, 32 and 48.
1051
        Adjust getter and setter.
1052
        (h-dr): Add PROFILE attribute. Now indexed by even indices 0-62.
1053
        (h-fsd,h-fmov): New hardware.
1054
 
1055
2006-07-24  Ralk Wildenhues  
1056
 
1057
        * doc/app.texi, doc/internals.texi, doc/intro.texi,
1058
        doc/notes.texi, doc/porting.texi, doc/running.texi,
1059
        doc/sim.texi: Fix some typos.
1060
 
1061
2006-07-14  Dave Brolley  
1062
 
1063
        * sid.scm (-op-gen-delayed-set-maybe-trace): If delay used, note the
1064
        hardware or memory mode which was used.
1065
        * sid-cpu.scm (hw-need-write-stack?): New function.
1066
        (-gen-hw-stream-and-destream-fns): Compute stack-regs. Use it to
1067
        identify hardware which uses write stacks.
1068
        (useful-mode-names): Renamed to write-stack-memory-mode-names.
1069
        Initialized to an empty list.
1070
        (-gen-writestacks, -gen-reset-fn, -gen-unified-write-fn): Use
1071
        hw-need-write-stack?.
1072
        * hardware.scm (used-in-delay-rtl?): New member of .
1073
        (define-getters ): Define used-in-delay-rtl?.
1074
        (used-in-delay-rtl?): New method of .
1075
        (hw-used-in-delay-rtl?): New function.
1076
 
1077
2006-06-20  Dave Brolley  
1078
 
1079
        * sid.scm (gen-attr-type): Removed.
1080
 
1081
2006-05-10  Dave Brolley  
1082
 
1083
        * read.scm (cmd-if): Provide the correct argument to reader-error. Add
1084
        support for (if (application-is? ) (...) (...)).
1085
        (-cgen): Add trailing "/" to arch-path.
1086
        * utils.scm (dirname): Removed. dirname is a primitive function.
1087
 
1088
2006-05-09  Dave Brolley  
1089
 
1090
        * utils-sim.scm (-gen-decode-insn-entry): Generated code should shift
1091
        'entire_insn' not 'base_insn'.
1092
        * sid-model.scm (-gen-model-class-decls): Handle the case where insn-timing
1093
        is null.
1094
        * sim.scm (-gen-arch-model-decls): Likewise.
1095
        * sid-cpu.scm (-gen-scache-semantic-fn): Generate code to set
1096
        abuf->written if profiling.
1097
        (-gen-hw-stream-and-destream-fns): Use symbol->string instead of
1098
        object->string om the mode.
1099
        (-hw-gen-write-stack-decl): Likewise.
1100
        * read.scm (include): Use arch-path as file location.
1101
        (arch-path): Define it with a default setting.
1102
        (-cgen): Update arch-path when "-a" option is specified.
1103
        * utils.scm (dirname): New function.
1104
 
1105
2006-05-05  Steve Ellcey  
1106
 
1107
        * configure.in: Remove AC_ARG_PROGRAM.
1108
        * configure: Regenerate with autoconf 2.59.
1109
 
1110
2006-03-14  Hans-Peter Nilsson  
1111
 
1112
        * dev.scm (cload) : New case, duplicated from
1113
        SIMULATOR.
1114
 
1115
2006-03-03 Shrirang Khisti 
1116
 
1117
        * cpu/xc16x.opc (parse_hash): Return NULL if the input was parsed
1118
        or an error message otherwise.
1119
        (parse_dot, parse_pof, parse_pag, parse_sof, parse_seg): Likewise.
1120
        Fix up comments to correctly describe the functions.
1121
 
1122
2006-02-17  Shrirang Khisti  
1123
            Anil Paranjape   
1124
            Shilin Shakti    
1125
 
1126
        * cpu/xc16x.cpu: New file containing complete CGEN specific XC16X
1127
        CPU description.
1128
        * cpu/xc16x.opc: New file containing supporting XC16C routines.
1129
 
1130
2006-02-10  Nick Clifton  
1131
 
1132
        * cpu/iq2000.opc (parse_hi16): Truncate shifted value to 16 bits.
1133
 
1134
2005-12-28  Nathan Sidwell  
1135
 
1136
        * sid-cpu.scm (-gen-hw-stream-and-destream-fns): Stringize mode
1137
        for concatenation.
1138
        (-hw-gen-write-stack-decl): Likewise.
1139
 
1140
2005-12-05  Hans-Peter Nilsson  
1141
 
1142
        * utils-sim.scm (-gen-decode-insn-entry): Correct last change for
1143
        non-(adata-integral-insn? CURRENT-ARCH) case.
1144
 
1145
2005-10-28  Dave Brolley  
1146
 
1147
        Contribute the following changes:
1148
        2005-09-19  Dave Brolley  
1149
 
1150
        * attr.scm (gen-value-for-defn-raw): New methods.
1151
        (gen-value-for-defn): Don't test for 'SID-SIMULATOR. Call
1152
        gen-value-for-defn-raw.
1153
        * sid.scm (gen-obj-attr-sid-defn): Call gen-value-for-defn-raw.
1154
 
1155
        2002-12-13  Dave Brolley  
1156
 
1157
        * utils-cgen.scm (gen-attr-type): Moved from sid.scm.
1158
        (-gen-attr-accessors): New function.
1159
        (gen-obj-attr-defn): Update terminating initializer.
1160
        (gen-obj-attr-end-defn): New function.
1161
        * sid.scm (gen-attr-type): Moved to utils-cgen.scm.
1162
        * sid-cpu.scm (cgen-desc.h): Generate code to include
1163
        "opcode/cgen-bitset.h"
1164
        * intrinsics.scm (kept-insn-isas): Correct the extraction of the isa
1165
        name.
1166
        * desc.scm ('gen-defn): Update terminating initializer.
1167
        * desc-cpu.scm (gen-ifld-decls): Call -gen-attr-accessors. Update
1168
        terminatinig initializer.
1169
        (gen-hw-decls): Ditto.
1170
        (gen-operand-decls): Ditto.
1171
        (gen-insn-decls): Ditto.
1172
        (-gen-hash-defines): Generate code to include "opcde/cgen-bitset.h"
1173
        (gen-insn-table): Update terminating initializer.
1174
        (-gen-cpu-open): Update generation of @arch@_cgen_rebuild_tables,
1175
        @arch@_cgen_cpu_open, @arch@_cgen_cpu_close.
1176
        * attr.scm (charmask-bytes): New function.
1177
        (bitset-attr->charmask): New function.
1178
        (): Handle isa-attributes specially. Also handle
1179
        differences for SID-SIMULATOR.
1180
        (): Handle differences for SID-SIMULATOR.
1181
        (): Ditto.
1182
 
1183
2005-10-26  Kazuhiro Inaoka 
1184
 
1185
        * cpu/m32r.opc (parse_hi16): Do not assume a 32-bit host word size.
1186
 
1187
2005-10-24  DJ Delorie  
1188
 
1189
        * operand.scm (-anyof-merge-syntax): Print a more useful error
1190
        message.
1191
 
1192
2005-10-19  Nick Clifton  
1193
 
1194
        * cpu/m32r.opc (parse_slo16): Fix bad application of previous
1195
        patch.
1196
 
1197
2005-10-18  Andreas Schwab  
1198
 
1199
        * cpu/m32r.opc (parse_slo16): Better version of previous patch.
1200
 
1201
2005-10-14  Kazuhiro Inaoka 
1202
 
1203
        * cpu/m32r.opc (parse_slo16): Do not assume a 32-bit host word
1204
        size.
1205
 
1206
2005-08-02  Dave Brolley  
1207
 
1208
        * rtl-c.scm (s-unop): Don't dereference
1209
        CGEN_CPU_FPU (current_cpu)->ops->xxxxx in the generated code.
1210
        (s-binop, s-convop, s-cmpop): Likewise.
1211
 
1212
2005-07-29  Dave Brolley  
1213
 
1214
        * sid-cpu.scm (-gen-scache-semantic-fn): Generate a declation of 'written'
1215
        if with-profile or with-parallel-write.
1216
        (cgen-semantics.cxx): Make the @prefix@ namespace available if with-parallel.
1217
        * operand.scm (op:new-mode): Convert (obj:name op) to a string for
1218
        string-append.
1219
 
1220
2005-07-15  Alan Modra  
1221
 
1222
        * cpu/fr30.opc (print_register_list): Correct format strings.
1223
        * cpu/ip2k.opc: Likewise.
1224
 
1225
2005-07-05  Nick Clifton  
1226
 
1227
        * cpu/iq2000.opc (parse_lo16, parse_mlo16): Make value parameter
1228
        unsigned in order to avoid compile time warnings about sign
1229
        conflicts.
1230
 
1231
2005-07-01  Nick Clifton  
1232
 
1233
        * desc-cpu.scm: Update to ISO C90 function declaration style.
1234
        * opc-asmdis.scm: Likewise.
1235
        * opc-ibld.scm: Likewise.
1236
        * opc-itab.scm: Likewise.
1237
        * cpu/fr30.opc: Likewise.
1238
        * cpu/i960.opc: Likewise.
1239
        * cpu/ip2k.opc: Likewise.
1240
        * cpu/iq2000.opc: Likewise.
1241
        * cpu/m32r.opc: Likewise.
1242
        * cpu/openrisc.opc: Likewise.
1243
        * cpu/sh.opc: Likewise.
1244
        * cpu/sparc.opc: Likewise.
1245
        * cpu/xstormy16.opc: Likewise.
1246
 
1247
2005-06-15  Dave Brolley  
1248
 
1249
        * sid-cpu.scm (-gen-hw-stream-and-destream-fns): New function.
1250
        (cgen-cpu.h): Call it.
1251
 
1252
        Contributed on behalf of Graydon Hoare
1253
        2001-06-05  graydon hoare  
1254
 
1255
        * utils.scm (foldl): Define.
1256
        (foldr): Define.
1257
        (filter): Define.
1258
        (union): Define.
1259
        (intersection): Simplify.
1260
        * sid.scm : Set APPLICATION to SID-SIMULATOR.
1261
        (-op-gen-delayed-set-maybe-trace): Define.
1262
        ( 'gen-set-{quiet,trace}): Delegate to
1263
        op-gen-delayed-set-quiet etc. Note: this is still a little tangled
1264
        up and needs cleaning.
1265
        (-with-parallel?): Hardwire with-parallel to #t.
1266
        ( 'cxmake-get): Replace with lookahead-aware code
1267
        * sid-decode.scm: Remove per-insn writeback fns.
1268
        (-gen-idesc-decls): Redefine sem_fn type.
1269
        * sid-cpu.scm (gen-write-stack-structure): Replace parexec stuff
1270
        with write stack stuff.
1271
        (cgen-write.cxx): Replace per-insn writebacks with single write
1272
        stack writeback. Add write stack reset function.
1273
        (-gen-scache-semantic-fn insn): Replace parexec stuff with write
1274
        stack stuff.
1275
        * rtl-c.scm (xop): Clone operand into delayed operand if #:delayed
1276
        estate attribute set.
1277
        (delay): Set #:delayed attribute to calculated delay, update
1278
        maximum delay of cpu, check (delay ...) usage.
1279
        * operand.scm (): Add delayed slot to .
1280
        * mach.scm (): Add max-delay slot to .
1281
        * dev.scm (load-sid): Set APPLICATION to SID-SIMULATOR.
1282
        * doc/rtl.texi (Expressions): Add section on (delay ...).
1283
 
1284
2005-06-13  Jim Blandy  
1285
 
1286
        * pmacros.scm (-pmacro-upcase, -pmacro-downcase): Handle symbols
1287
        as well as strings.
1288
 
1289
2005-06-07  Zack Weinberg  
1290
 
1291
        * doc/porting.texi: Change all mention of md_apply_fix3 and
1292
        gas_cgen_md_apply_fix3 to md_apply_fix and gas_cgen_md_apply_fix
1293
        respectively.
1294
 
1295
2005-05-18  Dave Brolley  
1296
 
1297
        * utils-sim.scm (-gen-decode-default-entry): New function.
1298
        (-gen-decode-insn-entry): Now takes 'invalid-insn' argument. Generate
1299
        code to check that all opcodes bits match.
1300
        (-gen-decoder-switch): Use -gen-decode-default-entry.
1301
 
1302
2005-05-16  Jim Blandy  
1303
 
1304
        * sid.scm (gen-ifetch): Require BITSIZE to be exactly the size
1305
        fetched by one of our GETIMEM* methods.
1306
        * utils-gen.scm (-extract-chunk-specs): Always fetch full
1307
        base-insn-sized chunks.
1308
 
1309
2005-05-10  Nick Clifton  
1310
 
1311
        * Update the address and phone number of the FSF organization in
1312
        the GPL notices in the following files:
1313
        COPYING.CGEN, utils.scm, cpu/iq2000m.cpu, cpu/openrisc.cpu,
1314
        cpu/powerpc.cpu, slib/random.scm
1315
 
1316
2005-05-06  Jim Blandy  
1317
 
1318
        * pprint.scm, cos-pprint.scm: Add documentation.
1319
 
1320
        * pprint.scm (pprint): Don't wipe out elide-table after each call.
1321
 
1322
        * pprint.scm, cos-pprint.scm: New files.
1323
 
1324
2005-04-04  Nick Clifton  
1325
 
1326
        * opcodes.scm (-gen-parse-address): Initialise value to zero to
1327
        avoid a compile time warning.
1328
 
1329
2005-03-18  Nick Clifton  
1330
 
1331
        * cpu/ip2k.opc (parse_lit8): Change wording of error message to
1332
        "percent-operand" from "%operand" as the latter confuses xgettext
1333
        into thinking that it is a C printf formating directive, which
1334
        prevents proper translation.
1335
 
1336
2005-02-23  Nick Clifton  
1337
 
1338
        * opcodes.scm (gen-parse-number): Add a cast to the desired
1339
        pointer signed'ness in order to prevent compile time warnings.
1340
        * cpu/ip2k.opc: Fixed compile time warnings about differing
1341
        signed'ness of pointers passed to functions.
1342
        * cpu/iq2000.opc: Likewise.
1343
        * cpu/m32r.opc: Likewise.
1344
        * cpu/openrisc.opc: Likewise.
1345
        * cpu/xstormy16.opc: Likewise.
1346
 
1347
2005-02-22  Alan Modra  
1348
 
1349
        * desc-cpu.scm (gen-ifld-decls): Move cgen_ifld_table from here..
1350
        (cgen-desc.h): ..to here, after opcode/cgen.h include.
1351
 
1352
2005-02-16  Dave Brolley  
1353
 
1354
        * utils.scm: Update copyright years.
1355
        * utils-gen.scm (gen-ifld-extract): Pass base-length to -gen-ifld-extract-base.
1356
        * sid.scm (gen-ifetch): Handle the case where bitsize == 24.
1357
        * operand.scm (-derived-operand-parse): Move logit message from level 1
1358
        to level 2.
1359
 
1360
2005-02-15  Nick Clifton  
1361
 
1362
        * opc-itab.scm (-gen-ifmt-table-1): Add an ATTRIBUTE_UNUSED to
1363
        prevent compile time warning messages.
1364
        * opc-opinst.scm (-gen-operand-instance-table): Likewise.
1365
        * utils-gen.scm (attr-int-gen-defn): Likewise.
1366
        (attr-gen-defn): Likewise.
1367
        * cpu/ip2k.opc (parse_addr16_p): Remove unused function.
1368
        (print_dollarhex16): Remove unused function.
1369
 
1370
2005-02-15  Jim Blandy  
1371
 
1372
        * guile.scm (cgen-call-with-debugging): Doc fix.
1373
 
1374
        Make backtraces work more reliably.
1375
        * guile.scm: Set up debugging parameters, and enable debugging and
1376
        source positions while loading.
1377
        (cgen-call-with-debugging, cgen-debugging-stack-start): New
1378
        functions.
1379
        * read.scm: Don't set debugging parameters here.
1380
        (catch-with-backtrace): Function deleted.
1381
        (-cgen): Simply note the presence or absence of the -b option.
1382
        Pass the flag to cgen-call-with-debugging, so debugging is turned
1383
        off here if the user didn't request it, for faster computation.
1384
        (cgen): Call cgen-debugging-stack-start here, instead of
1385
        catch-with-backtrace.
1386
 
1387
        * Makefile.am (GUILE): Explicitly load guile.scm here, and leave a
1388
        trailing -s.
1389
        (desc, html, opcodes, sim-arch, sim-cpu, gas-test, sim-test):
1390
        Don't write out the trailing -s here.
1391
        * Makefile.in: Regenerated.
1392
        * cgen-doc.scm, cgen-gas.scm, cgen-stest.scm): Don't load
1393
        fixup.scm here; let the caller decide which Scheme's customization
1394
        file to preload.
1395
        * dev.scm: Load guile.scm, not fixup.scm.
1396
        * fixup.scm: Deleted; contents have all moved to guile.scm.
1397
        * README: Doc fix.
1398
 
1399
        * guile.scm (debug-write): New function.
1400
 
1401
2005-02-14  Jim Blandy  
1402
 
1403
        * pmacros.scm (pmacros-init!): For .eval macros, use eval1 as the
1404
        transformer procedure, not eval.  Transformer procedures take one
1405
        argument.
1406
 
1407
2005-02-11  Nick Clifton  
1408
 
1409
        * cpu/iq2000.opc (parse_jtargq10): Change type of valuep argument
1410
        to 'bfd_vma *' in order avoid compile time warning message.
1411
 
1412
2005-02-09  Jim Blandy  
1413
 
1414
        * cgen-sim.scm (load-files): Don't load fixup.scm.  (See
1415
        corresponding change in the sim/common directory.)
1416
 
1417
2005-02-07  Jim Blandy  
1418
 
1419
        * cgen-opc.scm: Don't load fixup.scm here.  (See corresponding
1420
        changes in the opcodes directory.)
1421
 
1422
        * guile.scm: New file, containing Guile-specific definitions and
1423
        adaptations.  This is loaded by the app-specific shell scripts.
1424
        Initially identical to fixup.scm.
1425
        * cgen-sid.scm: Don't load fixup.scm here.
1426
 
1427
        * cos.scm: Profile elm-xset! when requested, not elm-set!; the
1428
        latter is a macro.
1429
 
1430
2005-01-27  Jim Blandy  
1431
 
1432
        * utils.scm (string/symbol->append): Renamed from 'concat'.
1433
        * opcodes.scm (gen-switch): Use new name.
1434
        * insn.scm (-sub-insn-make!): Same.
1435
        * rtl.scm (rtx-dump): Same.
1436
        * semantics.scm (semantic-compile): Same.
1437
 
1438
2005-01-20  Jim Blandy  
1439
 
1440
        * opcodes.scm (gen-switch): Use concat instead of string-map.
1441
 
1442
        * utils.scm (concat): New function.
1443
        * insn.scm (-sub-insn-make!): Use concat instead of string-map.
1444
        * rtl.scm (rtx-dump): Same.
1445
        * semantics.scm (semantic-compile): Same.
1446
 
1447
2004-12-16  Jim Blandy  
1448
 
1449
        * utils-cgen.scm (parse-name): Don't assume that string-map can be
1450
        applied to symbols.  Process everything as strings, and then
1451
        convert to a symbol at the end.
1452
 
1453
        * read.scm (debug-repl): Temporarily redirect input and output to
1454
        /dev/tty while we debug, so we don't interfere with whatever CGEN
1455
        is reading or writing.
1456
        * utils.scm (setter-getter-fluid-let, with-input-and-output-to):
1457
        New functions.
1458
 
1459
2004-11-15  Michael K. Lechner 
1460
 
1461
        * cpu/iq2000.cpu: Added quotes around macro arguments so that they
1462
        will work with newer versions of guile.
1463
 
1464
2004-10-27  Nick Clifton  
1465
 
1466
        * cpu/iq2000m.cpu: Import latest version from cpu/ directory.
1467
        * cpu/iq2000.cpu: Likewise.
1468
 
1469
2004-07-21  DJ Delorie  
1470
 
1471
        * cpu/xstormy16.cpu (movhmemgr): Use hmem8, not lmem8.
1472
 
1473
2003-03-14  Frank Ch. Eigler  
1474
 
1475
        * cpu/iq2000.opc (parse_jtargq10): Add ATTRIBUTE_UNUSED on unused args.
1476
        (parse_jtargq10, iq2000_cgen_isa_register, parse_mlo16): Declare.
1477
 
1478
2004-03-30  Kazuhiro Inaoka  
1479
 
1480
        * cpu/m32r.opc (parse_hi16): Fixed shigh(0xffff8000) bug.
1481
 
1482
2004-03-22  Dave Brolley  
1483
 
1484
        * utils.scm (copyright-fsf): Update copyright years.
1485
        (copyright-red-hat): Ditto.
1486
        * sid.scm (-op-gen-set-trace): Generate trace code before semantic
1487
        code.
1488
        (-op-gen-set-trace-parallel): Ditto.
1489
 
1490
2004-02-10  Kazuhiro Inaoka  
1491
 
1492
        * cpu/m32r.opc (my_print_insn): Fixed incorrect output when
1493
        disassembling codes for 0x*2 addresses.
1494
 
1495
2004-01-29  Dave Brolley  
1496
 
1497
        * decode.scm (-opcode-slots): For short insns, generate 'opcode' with
1498
        zeroes in the extra bit positions and generate 'opcode-mask' with ones
1499
        in the extra bit positions.
1500
 
1501
2003-12-15  Kazuhiro Inaoka  
1502
 
1503
        * cpu/m32r.cpu: Add PIPE_O attribute to "pop" instruction.
1504
 
1505
2003-12-04  Alan Modra  
1506
 
1507
        * cpu/openrisc.opc (openrisc_sign_extend_16bit): Don't rely on
1508
        "short" being 16 bit.
1509
        (parse_hi16): Likewise.  Fix type-punned pointer warnings too, and
1510
        internationalize error message.
1511
        (parse_lo16): Likewise.  Remove useless code.
1512
 
1513
2003-12-03  Kazuhiro Inaoka  
1514
 
1515
        * cpu/m32r.cpu : Add new model m32r2.
1516
        Add new instructions.
1517
        Replace occurrances of 'Mitsubishi' with 'Renesas'.
1518
        Changed PIPE attr of push from O to OS.
1519
        Care for Little-endian of M32R.
1520
        * cpu/m32r.opc (CGEN_DIS_HASH, my_print_insn):
1521
        Care for Little-endian of M32R.
1522
        (parse_slo16): signed extension for value.
1523
 
1524
2003-10-26  Dave Brolley  
1525
 
1526
        * sid-decode.scm (-gen-record-profile-args): Test trace_counter_p
1527
        and final_insn_count_p. Don't test WITH_PROFILE_MODEL_P.
1528
        (-gen-extract-fn): Call -gen-record-profile-args.
1529
 
1530
2003-10-21  Dave Brolley  
1531
 
1532
        * sid-model.scm (-gen-model-class-decls): Generate MAX_UNITS as
1533
        a static const int.
1534
        * decode.scm (-opcode-slots): Correct typo in logit call.
1535
 
1536
2003-10-09  Jim Blandy  
1537
 
1538
        * desc-cpu.scm (gen-hw-table-decls): Emit an 'extern' declaration
1539
        for @arch@_cgen_hw_table.  GDB needs to be able to find this.
1540
 
1541
        * mach.scm (def-isa-attr!): hardware can have ISA attributes, too.
1542
 
1543
2003-10-06  Dave Brolley  
1544
 
1545
        * gen-all-doc: Add fr550.
1546
 
1547
2003-09-11  Doug Evans  
1548
 
1549
        * Makefile.am (ARCHFILE): New var.
1550
        (desc): Pass $(ARCHFILE) for -a parm, not $(ARCH).
1551
        (html,opcodes,sim-arch,sim-cpu,gas-test,sim-test): Ditto.
1552
        * Makefile.in: Regenerate.
1553
 
1554
2003-09-08  Dave Brolley  
1555
 
1556
        On behalf of Doug Evans 
1557
        Pass in paths to input files, instead of assuming they live in
1558
        $srcdir/cpu.  Plus misc. option processing cleanup.
1559
        * cgen-doc.scm (doc-arguments): Make options strings not symbols.
1560
        Add pre-process pass to all options.
1561
        * cgen-gas.scm (gas-arguments): Ditto.
1562
        * cgen-sid.scm (sim-arguments): Ditto.
1563
        * cgen-sim.scm (sim-arguments): Ditto.
1564
        * cgen-stest.scm (stest-arguments): Ditto.
1565
        * cgen-opc.scm (opc-arguments): Ditto.  New argument -OPC.
1566
        (-opc-file-path): New global.
1567
        (opc-file-path): New fn.
1568
        * opcodes.scm (read-cpu.opc): Replace srcdir,cpu args with opc-file.
1569
        All callers updated.
1570
        (gen-extra-cpu.h,gen-extra-cpu.c,gen-extra-opc.h,gen-extra-opc.c,
1571
        gen-extra-asm.c,gen-extra-dis.c,gen-extra-ibld.h,gen-extra-ibld.c):
1572
        Replace srcdir arg with opc-file.  All callers updated.
1573
        * read.scm (-opt-spec-update): Delete.
1574
        (opt-get-first-pass,opt-get-second-pass): New fns.
1575
        (-cgen): Process application-specific arguments in two passes.
1576
 
1577
2003-08-29  Dave Brolley  
1578
 
1579
        * cpu/frv.cpu: Removed.
1580
        * cpu/frv.opc: Removed.
1581
 
1582
2003-08-21  Nick Clifton  
1583
 
1584
        * cpu/frv.cpu (mbtoh): Replace input parameter to
1585
        u-media-dual-expand and u-media-dual-btoh with output parameter.
1586
        (cmbtoh): Add profiling hack.
1587
 
1588
2003-08-19  Michael Snyder  
1589
 
1590
        * cpu/frv.cpu: Fix typo, Frintkeven -> FRintkeven
1591
 
1592
2003-08-07  Michael Meissner  
1593
 
1594
        * opc-opinst.scm (-gen-operand-instance-table): Initialize all of
1595
        the elements for the END record of CGEN_OPINST, silencing warnings.
1596
 
1597
2003-07-15  Doug Evans  
1598
 
1599
        Add guile 1.6.4 support.
1600
        - empty list must be quoted
1601
        - string functions have stricter type checking
1602
        - eval now takes a second argument
1603
        - symbol-bound? is deprecated
1604
        * attr.scm (-attr-parse): Use stringsym-append to build errtxt.
1605
        (bitset-attr->list): Ensure arg to string-cut is a string.
1606
        (attr-parse): Ensure args to string-ref and string-drop1 are strings.
1607
        (,gen-value-for-defn): Fetch string name of self.
1608
        * cos.scm (-class-list): Must quote empty list.
1609
        (-class-parent-classes,-class-compute-class-desc): Ditto.
1610
        (class-make,make,object-reset!): Ditto.
1611
        (method-make-make!): Call eval1 instead of eval.
1612
        (method-make-forward!,method-make-virtual-forward!): Ditto.
1613
        * decode.scm (subdtable-add): Use stringsym-append instead of
1614
        string-append.
1615
        (-gen-exprtable-name): Fetch string name of exprtable-entry-insn.
1616
        (-build-decode-table-entry): Fetch string name of insn.
1617
        * desc-cpu.scm (-gen-isa-table-defns): Fetch string name of isa.
1618
        (-gen-mach-table-defns): Ditto for mach.
1619
        (gen-ifld-defns): Ditto for ifld.
1620
        (gen-hw-table-defns): Ditto for hw.
1621
        (gen-operand-table): Ditto for op.
1622
        (gen-insn-table-entry): Ditto for insn.
1623
        * desc.scm (gen-attr-table-defn): Ditto for attr.
1624
        (,gen-defn): Don't pass symbols to string-append.
1625
        * enum.scm (parse-enum-vals): Use symbolstr-append instead of
1626
        symbol-append.
1627
        (enum-vals-upcase): Use symbol-upcase to build result.
1628
        (-enum-parse): Use stringsym-append to build errtxt.
1629
        * fixup.scm (*guile-major-version*,*guile-minor-version*): New globals.
1630
        (eval1): New function.
1631
        (symbol-bound?): Provide own version if >= guile 1.6.
1632
        * hardware.scm (define-keyword): Use string-append instead of
1633
        symbol-append.
1634
        * html.scm (gen-html-header,gen-table-of-contents,gen-arch-intro,
1635
        cgen.html,cgen-insn.html): Convert current-arch-name to a string
1636
        before using.
1637
        (gen-list-entry): Handle either symbol or string `name' arg.
1638
        (gen-obj-doc-header): Fetch string name of `o' arg.
1639
        (define-cpu-intro): Ditto for cpu.
1640
        (gen-mach-intro): Ditto for mach.
1641
        (gen-model-intro): Ditto for model.
1642
        (gen-isa-intro): Ditto for isa.
1643
        (gen-machine-doc-1): Ditto for isa.
1644
        (gen-reg-doc-1): Convert mach to string first.
1645
        (gen-insn-doc-1): Ditto.  Convert model/unit names to strings first.
1646
        (gen-insn-doc-list): Fetch string name of mach.  Convert insn name
1647
        to string first.
1648
        (gen-insn-categories): Fetch string name of mach.  Convert
1649
        enum-val-name to string first.
1650
        (gen-insn-docs): Fetch string name of mach.
1651
        * ifield.scm (ifld-ilk): Result is a string.
1652
        * iformat.scm (-ifmt-search-key): Convert attr value to string first.
1653
        Fetch string name of ifld.
1654
        (-sfmt-search-key): Similarily for ifld and op.
1655
        * insn.scm (syntax-make): Fetch string name of syntax element.
1656
        * mach.scm (-cpu-parse): Use stringsym-append to build errtxt.
1657
        * minsn.scm (minsn-make-alias): Fetch string name of minsn.
1658
        * mode.scm (mode:c-type): Result is a string.
1659
        (mode:enum): Fetch string name of mode.
1660
        (-mode-parse): Use stringsym-append to build errtxt.
1661
        * model.scm (model:enum): Fetch string name of model.
1662
        (-model-parse): Use stringsym-append to build errtxt.
1663
        (parse-insn-timing): Must quote empty list.
1664
        * opc-itab.scm (-gen-minsn-table-entry): Fetch string name of minsn.
1665
        (-gen-minsn-opcode-entry): Ditto.
1666
        * opcodes.scm (,gen-function-name): `what' arg is a symbol,
1667
        convert to string.
1668
        (read-cpu.opc): Convert current-arch-name to a string before using.
1669
        * operand.scm (,gen-pretty-name): Ensure `name' is a string.
1670
        (): Must quote empty list.
1671
        (op-sort): Simplify, call alpha-sort-obj-list to do sort.
1672
        * pgmr-tools.scm (pgmr-pretty-print-insn-value): Fetch string name
1673
        of ifld.
1674
        * pmacros.scm (-pmacro-build-lambda): Use eval1 instead of eval.
1675
        (-pmacro-sym): Must convert symbols to strings before passing to
1676
        string-append.
1677
        (-pmacro-str): Ditto.
1678
        (pmacros-init!): Use eval1 instead of eval.
1679
        * read.scm (keep-mach-atlist?): Simplify, use bitset-attr->list.
1680
        (keep-isa-atlist?): Ditto.
1681
        (cmd-if): Use eval1 instead of eval.
1682
        * rtl-c.scm (,get-name): Fetch string name of self.
1683
        (-rtl-c-get): Fetch string name of src.
1684
        (s-unop): Ditto for mode.
1685
        (s-binop,s-binop-with-bit,s-shop,s-convop,s-cmpop): Ditto.
1686
        (-gen-par-temp-defns,subword): Ditto.
1687
        (join): Use stringsym-append instead of string-append.
1688
        * rtl-traverse.scm (rtx-option?): Convert option to string first.
1689
        (rtx-traverse-debug): Fetch string name of rtx-obj.
1690
        * rtl.scm (def-rtx-node): Use eval1 instead of eval.
1691
        (def-rtx-syntax-node,def-rtx-operand-node,def-rtx-macro-node): Ditto.
1692
        (rtx-pretty-name): Result is a string.
1693
        (-rtx-hw-name): Use symbolstr-append instead of symbol-append.
1694
        * semantics.scm (semantic-compile): Simplify, use alpha-sort-obj-list.
1695
        * sid-cpu.scm (cgen-write.cxx): Convert current-arch-name to a string
1696
        before using.
1697
        (-gen-sfrag-case): Fetch string name of user.
1698
        * sid-model.scm (unit:enum): Fetch string name of unit.
1699
        * sid.scm (,cxmake-get): Fetch string name of mode.
1700
        (,gen-set-quiet): Ditto.
1701
        (gen-mode-defs): Ditto.
1702
        (sim-finish!): Convert current-arch-name to a string before using.
1703
        * sim-cpu.scm (-gen-scache-semantic-fn): Fetch string name of insn.
1704
        (-gen-no-scache-semantic-fn): Ditto.
1705
        (cgen-defs.h): Fetch string name of isa.
1706
        (cgen-read.c): Convert current-arch-name to a string before using.
1707
        (cgen-write.c): Ditto.
1708
        * sim-model.scm (unit:enum): Fetch string name of unit.
1709
        (gen-model-fn-decls): Use stringsym-append instead of string-append.
1710
        (-gen-model-timing-table): Fetch string name of model.
1711
        (-gen-mach-model-table): Ditto.
1712
        (-gen-mach-defns): Fetch string name of mach.
1713
        * sim.scm (gen-reg-access-defn): Fetch string name of hw.
1714
        (,cxmake-get): Fetch string name of mode.
1715
        (,gen-set-quiet): Ditto.
1716
        (gen-mode-defs): Ditto.
1717
        (sim-finish!): Must quote empty list.
1718
        * utils-cgen.scm (): Must quote empty list.
1719
        (obj:str-name): New fn.
1720
        (parse-comment): Result is a string.
1721
        (parse-symbol): Result is a symbol.
1722
        (parse-string): Result is a string.
1723
        (keyword-list?): Convert arg to string before calling string-ref.
1724
        (keyword-list->arg-list): Ditto.
1725
        (gen-attr-name): Convert attr-name to string first.
1726
        (alpha-sort-obj-list): Use symbol
1727
        * utils-gen.scm (attr-gen-decl): Fetch string name of attr.
1728
        (gen-define-ifmt-ifields): Ditto for fld.
1729
        * utils.scm (gen-c-symbol): Ensure str is a string before calling
1730
        map-over-string.
1731
        (gen-file-name): Ditto.
1732
        (symbol-downcase,symbol-upcase,symbol
1733
        (stringsym-append,symbolstr-append,->string,->symbol): New fns.
1734
        (reduce): Call eval1 instead of eval.
1735
        * cpu/m32r.cpu (addi): Don't use `#.'.
1736
 
1737
        * gen-all-sim: Fix some typos.
1738
 
1739
2003-07-08  Doug Evans  
1740
 
1741
        * gen-all-doc: Ensure run from cgen src dir.
1742
        * gen-all-opcodes: Build in ./tmp-opcodes.  Don't delete dir when done.
1743
        * gen-all-sid: Similarily, in ./tmp-sid.
1744
        * gen-all-sim: Similarily, in ./tmp-sim.
1745
 
1746
2003-06-20  Doug Evans  
1747
 
1748
        * gen-all-sim: Add fr30,sh64 support.  Only generate m32r by default.
1749
 
1750
2003-06-19  Doug Evans  
1751
 
1752
        * mach.scm (-ifld-already-defined?): New proc.
1753
        (current-ifld-add!): Use it.
1754
        (-op-already-defined?): New proc.
1755
        (current-op-add!): Use it.
1756
        (-insn-already-defined?): New proc.
1757
        (current-insn-add!): Use it.
1758
        (-minsn-already-defined?): New proc.
1759
        (current-minsn-add!): Use it.
1760
        (obj-isa-list): New proc.
1761
        (isa-supports?): Use it.
1762
 
1763
2003-06-10  Doug Evans  
1764
 
1765
        * insn.scm (insn-builtin!): RELAX renamed to RELAXABLE.
1766
        * cpu/m32r.cpu (all insns): Ditto.
1767
 
1768
        * mach.scm (current-*-add!): Disallow redefinition.  Make result
1769
        "unspecified".
1770
 
1771
        * gen-all-doc: Split arm and frv docs up a bit.
1772
 
1773
        * cpu/arm.cpu: Add IDOC attribute.
1774
        * cpu/frv.cpu: Ditto.
1775
        * cpu/i960.cpu: Ditto.
1776
        * cpu/openrisc.cpu: Ditto.
1777
        * cpu/xstormy16.cpu: Ditto.
1778
        * cpu/m32r.cpu: Ditto.
1779
        (all insns): Explicitly specify IDOC attribute.
1780
 
1781
        * Makefile.am (MACH,ISAS,INSN_FILE_NAME): New vars.
1782
        (desc,opcodes,sim-arch,sim-cpu,gas-test,sim-test): Use MACH,ISAS.
1783
        (html): Use MACH,ISAS,INSN_FILE_NAME.  Generate insn.html separately.
1784
        * Makefile.in: Regenerate.
1785
        * attr.scm (:parse-value-def): Implement.
1786
        (-attr-read): Defer computing default value until we know the type.
1787
        (attr-has-attr?): Delete, move contents to :has-attr?.
1788
        (:attr-present?): New method.
1789
        (atlist-attr-present?,obj-attr-present?): New fns.
1790
        (obj-has-attr-value?,obj-has-attr-value-no-default?): New fns.
1791
        (attr-builtin!): New insn attr IDOC.
1792
        * cgen-doc.scm (doc-arguments): New args -I,-N.
1793
        * enum.scm (parse-enum-vals): New arg errtxt, all callers updated.
1794
        Support comment as fourth element of enum value.
1795
        (enum-val-name,enum-val-value,enum-val-attrs,enum-val-comment): New fns.
1796
        * html.scm (gen-html-header): New arg kind, all callers updated.
1797
        (gen-table-of-contents): New arg insn-file, all callers updated.
1798
        (gen-list-entry,gen-doc-header): New fn.
1799
        (get-operands): Delete.
1800
        (gen-iformat-table): Rewrite.
1801
        (gen-insn-doc-1): Print constant-folded and trimmed semantics.
1802
        (gen-insn-doc-list): New args name, comment, insns.  All callers updated.
1803
        (get-insn-properties,guess-insn-idoc-attr!): New fn.
1804
        (insn-sets-pc?,insn-refs-mem?,insn-uses-fpu?): New fns.
1805
        (get-insns-for-category,gen-categories-insn-lists): New fns.
1806
        (gen-insn-docs): Simplify each insn's semantics first.
1807
        Print insn tables sorted by IDOC categories.
1808
        (*insn-html-file-name*): New global.
1809
        (cgen-insn.html): New fn.
1810
        (cgen-all): Update.
1811
        * insn.scm (): Create a setter for the `tmp' member.
1812
        * semantics.scm (insn-build-known-values): Renamed from
1813
        -build-known-values.  All callers updated.
1814
 
1815
        * rtl.scm: Move traveral/evaluation support to ...
1816
        * rtl-traverse.scm: New file.
1817
        * read.scm: Maybe-load rtl-traverse.scm.
1818
 
1819
        * rtl.scm (-rtx-valid-types): Add SETRTX.
1820
 
1821
        * rtx-funcs.scm (nop,parallel): Fix mode.
1822
 
1823
        * utils.scm (eqv-lookup-index): New fn.
1824
        (assq-lookup-index): Renamed from lookup-index.  All callers updated.
1825
 
1826
        * dev.scm (load-doc): Set APPLICATION.
1827
 
1828
2003-06-10  Dave Brolley  
1829
 
1830
        * sid-cpu.scm: Generate #include of config.h into @prefix@-sem.cxx.
1831
        * sid-decode.scm: Generate #include of config.h into
1832
        @prefix@-decode.cxx.
1833
        * sid-model.scm: Generate #include of config.h into @prefix@-model.cxx.
1834
 
1835
2003-06-07  Doug Evans  
1836
 
1837
        * gen-all-sid: New file.
1838
        * gen-all-opcodes: New file.
1839
 
1840
2003-06-05  Nick Clifton  
1841
 
1842
        * cpu/frv.cpu (FRintieven): New operand.  An even-numbered only
1843
        version of the FRinti operand.
1844
        (FRintjeven): Likewise for FRintj.
1845
        (FRintkeven): Likewise for FRintk.
1846
        (mdcutssi, media-dual-word-rotate-r-r, mqsaths,
1847
        media-quad-arith-sat-semantics, media-quad-arith-sat,
1848
        conditional-media-quad-arith-sat, mdunpackh,
1849
        media-quad-multiply-semantics, media-quad-multiply,
1850
        conditional-media-quad-multiply, media-quad-complex-i,
1851
        media-quad-multiply-acc-semantics, media-quad-multiply-acc,
1852
        conditional-media-quad-multiply-acc, munpackh,
1853
        media-quad-multiply-cross-acc-semantics, mdpackh,
1854
        media-quad-multiply-cross-acc, mbtoh-semantics,
1855
        media-quad-cross-multiply-cross-acc-semantics,
1856
        media-quad-cross-multiply-cross-acc, mbtoh, mhtob-semantics,
1857
        media-quad-cross-multiply-acc-semantics, cmbtoh,
1858
        media-quad-cross-multiply-acc, media-quad-complex, mhtob,
1859
        media-expand-halfword-to-double-semantics, mexpdhd, cmexpdhd,
1860
        cmhtob): Use new operands.
1861
        * cpu/frv.opc (CGEN_VERBOSE_ASSEMBLER_ERRORS): Define.
1862
        (parse_even_register): New function.
1863
 
1864
2003-06-04  Doug Evans  
1865
 
1866
        Better handling of 64 bit and mixed 32/64 bit architectures.
1867
        * hardware.scm (hw-update-word-modes!): New fn.
1868
        * mach.scm (define-cpu)): Call mode-set-word-modes!,
1869
        hw-update-word-modes!.
1870
        (state-word-bitsize): Replace FIXME with requested check.
1871
        (arch-analyze-insns!): Call mode-ensure-word-sizes-defined.
1872
        * mode.scm (mode-find): Ignore INT,UINT.
1873
        (-mode-word-sizes-kind): New global.
1874
        (mode-set-word-modes!,mode-set-identical-word-bitsizes!,
1875
        mode-set-biggest-word-bitsizes!,mode-ensure-word-sizes-defined): New fns.
1876
        (mode-init!): Initialize -mode-word-sizes-kind.  Move initialization
1877
        of mode-list to ...
1878
        (mode-builtin!): ... here.  Initialize WI/UWI/AI/IAI to something
1879
        unusable, correct values set later.
1880
        (mode-finish!): Remove cruft.
1881
        * html.scm (doc-init!): Call mode-set-biggest-word-bitsizes!.
1882
        * opcodes.scm (opcodes-init!): Ditto.
1883
        * rtx-funcs.scm (annul): Fix mode of pc.
1884
        * cpu/ia64.cpu: Remove cruft that sets word modes.
1885
        * cpu/xstormy16.cpu (define-cpu): Set word-bitsize.
1886
 
1887
2003-06-03  Nick Clifton  
1888
 
1889
        * cpu/frv.cpu (media-dual-word-rotate-r-r): Use a signed 6-bit
1890
        immediate value not unsigned.
1891
 
1892
2003-05-21  J"orn Rennecke 
1893
 
1894
        * cpu/sh.cpu: Amend comments to refer to SuperH.
1895
        * cpu/sh64-compact.cpu: Change comment to refer to SuperH.
1896
        * cpu/sh64-media.cpu: Likewise.
1897
        (Saturation): Update manual reference.
1898
 
1899
2003-05-15  Doug Evans  
1900
 
1901
        * Makefile.am (srcroot): New var.
1902
        (html): New rule.
1903
        * Makefile.in: Regenerate.
1904
        * cgen-doc.scm: New file.
1905
        * html.scm: New file.
1906
        * gen-all-doc: New file.
1907
        * dev.scm (cload): Handle DOC application.
1908
        (load-doc): New fn.
1909
        * machs.scm (machs-for-cpu): New fn.
1910
        * model.scm (models-for-cpu): New fn.
1911
        * utils.scm (gen-c-copyright): Renamed from gen-copyright.
1912
        All uses updated.
1913
        (iota): Rewrite to be identical to pmacro version.  All uses updated.
1914
        * utils-cgen.scm (alpha-sort-obj-list): New fn.
1915
 
1916
        * utils-sim.scm (-gen-decoder-switch): Back out patch of 2003-01-09.
1917
        (-gen-decode-bits): Instead put in better fix here.
1918
 
1919
        * cpu/i960.cpu (index): Rename to indx.  All uses updated.
1920
 
1921
2003-05-01  DJ Delorie  
1922
 
1923
        * cpu/xstormy16.cpu (alignfix-mem): Correct logic for unaligned
1924
        word accesses.
1925
        (set-alignfix-mem): Likewise.
1926
 
1927
2003-04-16  Dave Brolley  
1928
 
1929
        * doc/rtl.texi (Iiming): Correct example to use 'model-name'.
1930
        * utils.scm (copyright-fsf): Update generate copyright years.
1931
        (copyright-cygnus): Ditto.
1932
        * sid.scm (-op-gen-set-trace): Generate code to fill in bitmask of modified
1933
        operands.
1934
        (-gen-arch-model-decls): Don't generate unit enum declaration or MAX_UNITS
1935
        here.
1936
        ('gen-profile-code): New parameter 'when'.
1937
        ('gen-profile-code): Ditto.
1938
        ('gen-profile-code): Ditto.
1939
        ('gen-profile-code): Ditto. Only generate 'referenced' and
1940
        'insn_reference' for the 'after' function.
1941
        * model.scm (unit:enum): Moved to sim-model.scm.
1942
        * sim-model.scm (unit:enum): Moved from model.scm.
1943
        * sid-decode.scm (-gen-scache-decls): Generate the 'written' field.
1944
        * cgen-sid.scm (sim-arguments): Document the generation of model.h.
1945
        * sid-model.scm (unit:enum): New version for sid.
1946
        (gen-model-class-name): New function.
1947
        (gen-model-unit-fn-decl): New function.
1948
        (gen-model-fn-decls): Call gen-model-unit-fn-decl.
1949
        (gen-model-unit-fn-name): New parameter 'when'.
1950
        (-gen-model-insn-fn-name): Ditto.
1951
        (-gen-model-insn-qualified-fn-name): New function.
1952
        (-gen-model-insn-fn-decl): New function.
1953
        (-gen-model-insn-fn-decls): New function.
1954
        (-gen-model-insn-fn): New parameter 'when'. Call
1955
        -gen-model-insn-qualified-fn-name.
1956
        (-gen-model-insn-fns): Generate the constructor for the model. Generate
1957
        functions for modelling insn before and after execution.
1958
        (-gen-model-class-decls): New function.
1959
        (" (gen-model-class-name model) "): New function.
1960
        (gen-model-classes): New function.
1961
        (-gen-insn-timing): Generate functions for modelling insn before and after
1962
        execution.
1963
        (-gen-insn-unit-timing): Generate class-qualified names.
1964
        (-gen-model-timing-table): Ditto.
1965
        (cgen-model.cxx): Generate #include for @cpu@.h. Omit generation of code
1966
        not needed (yet) by sid.
1967
        (cgen-model.h): New function.
1968
 
1969
2003-04-15  Rohit Kumar Srivastava 
1970
 
1971
        * cpu/sh.cpu: Replace occurrances of 'Hitachi' with 'Renesas'.
1972
        * cpu/sh64-compact.cpu: Likewise.
1973
        * cpu/sh64-media.cpu: Likewise.
1974
 
1975
2003-03-21  DJ Delorie  
1976
 
1977
        * cpu/xstormy16.cpu (basic-psw): New argument ws (wordsize),
1978
        which indicates if the sign flag is set from bit 15 or 7.
1979
        Adjust all callers.
1980
        (set-psw): New argument ws, propogate it.
1981
        (set-psw-nowrite): Likewise.
1982
        (set-mem-psw): Likewise.
1983
        (set-psw-carry): Likewise.  Use temporaries to prevent
1984
        prematurely overwriting needed inputs.
1985
        (set-psw-rrotate17): Fix logic.
1986
        (shrgrgr): Preserve carry for zero-bit shifts.
1987
        (shrgrimm): Likewise.
1988
        (shlgrgr): Likewise.
1989
        (shlgrimm): Likewise.
1990
        (asrgrgr): Likewise.
1991
        (asrgrimm): Likewise.
1992
        (reset): New.
1993
 
1994
2003-03-12  Frank Ch. Eigler  
1995
 
1996
        * sid.scm: Set APPLICATION to SID-SIMULATOR.
1997
 
1998
2002-03-05  DJ Delorie  
1999
 
2000
        * cpu/xstormy16.cpu (set-psw-add): Use temporaries to prevent
2001
        prematurely overwriting needed inputs.
2002
        (set-psw-sub): Likewise.
2003
 
2004
Fri Feb 21 19:48:19 2003  J"orn Rennecke 
2005
 
2006
        * cpu/sh64-media.cpu (make-mextr): Fix setting of count.
2007
 
2008
2003-02-18  DJ Delorie  
2009
 
2010
        * xstormy16.cpu (set-mem-alignfix-psw): Remove.
2011
        (movlmemimm): Just mask the address.
2012
        (movhmemimm): Likewise.
2013
        (movlmemgr): Likewise.
2014
        (movhmemgr): Likewise.
2015
        (set-psw): Always set the psw last.
2016
        (set-psw-carry): Likewise.
2017
        (set-psw-add): Likewise.
2018
        (set-psw-sub): Likewise.
2019
 
2020
        * xstormy16.cpu (set-psw-rrotate17): New.  Choose the correct set
2021
        of 16 patterns from the set-psw-rotate17 function.
2022
        (movgrigr, movgripostincgr, movgripredecgr, movgriigr,
2023
        movgriipostincgr, movgriipredecgr): Set psw correctly.
2024
        (movfgrigr, movfgripostincgr, movfgripredecgr, movfgriigr,
2025
        movfgriipostincgr, movfgriipredecgr): Fix semantics.
2026
        (rrcgrgr, rrcgrimm4): Use new set-psw-rrotate17 function.
2027
 
2028
2003-02-11  Dave Brolley  
2029
 
2030
        * desc-cpu.scm (gen-ifld-defns): Add all ifields to the
2031
        @arch@_cgen-ifld_table.
2032
        (gen-maybe-multi-ifld): Use the ifield enumerators to index the
2033
        @arch@_cgen-ifld_table.
2034
 
2035
2003-02-03  Frank Ch. Eigler  
2036
 
2037
        * sid-cpu.scm (-gen-sfrag-engine-fn): Generate more hygienic C++.
2038
 
2039
2003-01-09  Graydon Hoare  
2040
 
2041
        * utils-sim.scm (-gen-decoder-switch): Fix edge condition for
2042
        empty ISAs.
2043
 
2044
2003-01-07  Graydon Hoare  
2045
 
2046
        * utils-gen.scm (attr-int-gen-defn): Define.
2047
 
2048
2002-12-21  Doug Evans  
2049
 
2050
        * ifield.scm (-ifield-parse): Rewrite  computation.
2051
        (-get-ifld-word-offset,-get-ifld-word-length): New fns.
2052
 
2053
        * dev.scm (cload): Update location of .cpu files.
2054
 
2055
2002-12-19  Doug Evans  
2056
 
2057
        * utils-sim.scm (gen-profile-sym): New fn.
2058
        (,sbuf-profile-sym): New method.
2059
        (,sbuf-profile-elm): Use it.
2060
        * sim.scm (,gen-record-profile): Use sbuf-profile-sym instead
2061
        of hardcoding symbol name.
2062
        (,gen-profile-code): Ditto.
2063
        (,gen-profile-code): Use gen-profile-sym instead of hardcoding
2064
        symbol name.
2065
 
2066
        * mode.scm (mode-sem-mode): New fn.
2067
        * operand.scm (op:new-mode): Update. mode-name.
2068
        (op-natural-mode?) New fn.
2069
        * rtl.scm (hw): Set hw-name,mode-name.
2070
 
2071
        Back out sim*.scm changes of 2001-04-02  Ben Elliston  
2072
        Instead do:
2073
        * sim-decode.scm (-gen-decode-insn-globals): Use @PREFIX@_INSN__MAX
2074
        as size of IDESC-TABLE-VAR.
2075
        (@prefix@_init_idesc_table): Ditto.
2076
        * sim-model.scm (-gen-mach-defns): Ditto.
2077
        * sim.scm (gen-cpu-insn-enum-decl): Rename last elm from max to -max.
2078
 
2079
        * utils-sim.scm (-gen-decode-insn-entry): Fix some spacing in output.
2080
 
2081
        * insn.scm (-parse-insn-format-symbol): Improve error message.
2082
        (-parse-insn-format): Ditto.
2083
 
2084
        * gen-all-sim: New script.
2085
 
2086
2002-12-16  DJ Delorie  
2087
 
2088
        * cpu/xstormy16.opc (parse_immediate16): Add prototype.
2089
 
2090
2002-12-16  Andrew MacLeod  
2091
 
2092
        * cpu/xstormy16.cpu (imm16): Call handler immediate16.
2093
        * cpu/xstormy16.opc (parse_small_immediate): Return on '@'.
2094
        (parse_immediate16): Handle immediate16 values, which now include
2095
        @hi(label) and @lo(label)
2096
 
2097
2002-12-03  Alan Modra  
2098
 
2099
        * desc-cpu.scm (gen-maybe-multi-ifld): Remove superfluous parens.
2100
        Add braces and cast for union field.
2101
        (gen-multi-ifield-nodes): Add braces and cast for union field.
2102
        (cgen_operand_table): Similarly fix sentinel.
2103
        (cgen_cpu_close): Constify "insns".  Formatting.
2104
        (cgen-desc.c): Include xregex.h.
2105
        * cpu/ip2k.opc (ip2k_cgen_insn_supported): Move to opc.c section.
2106
        Prototype.
2107
        : Include safe-ctype.h.
2108
        (ip2k_asm_hash): Use ISSPACE and TOLOWER.
2109
        (PARSE_FUNC_DECL): Declare.  Use to prototype parse_fr, parse_addr16,
2110
        parse_addr16_p, parse_addr16_cjp, parse_lit8 and parse_bit3.
2111
        (parse_fr): Constify "old_strp".  Correct type of "tempvalue".
2112
        Don't test it for >= 0.  Use ISSPACE rather than isspace.  Formatting.
2113
        (parse_addr16): Correct type of "value".  Formatting.
2114
        (parse_addr16_p): Likewise.
2115
        (parse_addr16_cjp): Likewise.
2116
        (parse_lit8): Likewise.
2117
        (parse_bit3): Formatting.
2118
        (PRINT_FUNC_DECL): Define.  Use to prototype print_fr, print_dollarhex,
2119
        print_dollarhex8, print_dollarhex16, print_dollarhex_addr16h,
2120
        print_dollarhex_addr16l, print_dollarhex_p, print_dollarhex_cj and
2121
        print_decimal.
2122
        (print_fr): Add ATTRIBUTE_UNUSED on unused args.  Formatting.
2123
        (print_dollarhex): Add ATTRIBUTE_UNUSED on unused args.
2124
        (print_dollarhex8): Likewise.
2125
        (print_dollarhex16): Likewise.
2126
        (print_dollarhex_addr16h): Likewise.
2127
        (print_dollarhex_addr16l): Likewise.
2128
        (print_dollarhex_p): Likewise.
2129
        (print_dollarhex_cj): Likewise.
2130
        (print_decimal): Likewise.
2131
        * cpu/xstormy16.opc (parse_mem8): Use ISALNUM rather than isalnum.
2132
 
2133
2002-11-30  Hans-Peter Nilsson  
2134
 
2135
        * doc/rtl.texi (Model variants): Mention current limitations for
2136
        unit inputs and outputs.
2137
        (Hardware elements) : Be slightly more
2138
        verbose.
2139
        (Instructions) : input/output overrides have a direction
2140
        operand.
2141
 
2142
2002-11-25  DJ Delorie  
2143
 
2144
        * xstormy16.cpu (sdiv, divlh, sdivlh): Fix sdivlh/divlh encodings.
2145
 
2146
2002-11-21  Jeff Johnston  
2147
 
2148
        * cpu/iq10.cpu: New file.
2149
        * cpu/iq2000.cpu: Likewise.
2150
        * cpu/iq2000.opc: Likewise.
2151
        * cpu/iq2000m.cpu: Likewise.
2152
 
2153
2002-11-19  DJ Delorie  
2154
 
2155
        * cpu/xstormy16.cpu (sdiv, divlh, sdivlh): New.
2156
 
2157
2002-11-05  Frank Ch. Eigler  
2158
 
2159
        * dev.scm: Call getenv with a string, not a symbol.
2160
 
2161
2002-10-08  Doug Evans  
2162
            Hans-Peter Nilsson  
2163
 
2164
        * types.scm (bitrange-overlap?): Handle lsb0?.
2165
 
2166
2002-09-07  Frank Ch. Eigler  
2167
 
2168
        From Robert Cragie :
2169
        * cpu/arm7.cpu (ldm*-sw*, stm*-sw*): New instructions.
2170
 
2171
2002-07-17  Frank Ch. Eigler  
2172
            Ben Elliston  
2173
            John Healy  
2174
            Jeff Johnston  
2175
            Alan Lehotsky  
2176
            Ubicom Inc. 
2177
 
2178
        * cpu/ip2k.cpu: New file.
2179
        * cpu/ip2k.opc: Likewise.
2180
 
2181
2002-07-01  Hans-Peter Nilsson  
2182
 
2183
        * utils-gen.scm (-gen-extract-word): Handle lsb0?.
2184
 
2185
2002-06-25  J"orn Rennecke 
2186
 
2187
        * cpu/sh64-compact.cpu (movw5): Use Correct operand field for reg.
2188
        * cpu/sh64-media.cpu (-ldhi-byte, -ldhi-word, -ldhi-long): New macros.
2189
        (-ldlo-byte, -ldlo-word, -ldlo-long): Likewise.
2190
        (-sthi-word, -sthi-long -stlo-byte, -stlo-word, -stlo-long): Likewise.
2191
        (ldhil, ldhiq, ldlol, ldloq, stlol, stloq): Implement.
2192
        (mshfhib, mshfhil, mshfhiw, mshflob, mshflol, mshflow): Fix indices.
2193
        (-sthi-byte): If there is a single byte to store, store it at
2194
        proper address.
2195
        (sthil, sthiq): Fix big-endian behaviour.
2196
        (mcnvslw, mcnvswb, mcnvswub, mmacfxwl, mmacnfx.wl): Fix indices.
2197
        (mmulfxl, mmulfxw, mmulfxrpw, mmulhiwl, mmullowl): Likewise.
2198
        (saturate): Use Dimode to check if saturation operation is required.
2199
        (usaturate): Likewise.
2200
        (mpermw): Fix mask.
2201
        (-maddsl, -maddsub): Compute to-be-saturated value in wider mode.
2202
        (-maddsw, mmacfxwl, mmacnfx.wl, -mshaldsl, -mshaldsw): Likewise.
2203
        (-mshardl, -mshardw, -msubsl, -msubsub, -msubsw): Likewise.
2204
        (msadubq): Fix subword index in second operand of first subtraction.
2205
 
2206
2002-06-20  Hans-Peter Nilsson  
2207
 
2208
        * sim-cpu.scm (gen-semantic-code): Prepend with setup-semantics
2209
        code.
2210
 
2211
2002-06-18  Dave Brolley  
2212
 
2213
        * cpu/frv.cpu: New cpu description.
2214
        * cpu/frv.opc: New cpu support code.
2215
 
2216
2002-05-21  Dave Brolley  
2217
 
2218
        * decode.scm (-opcode-slots): Don't consider bits beyond the
2219
        length of the insn.
2220
 
2221
2002-05-17  Johan Rydberg  
2222
 
2223
        * cpu/powerpc.cpu: New file.
2224
 
2225
2002-05-01  Graydon Hoare  
2226
 
2227
        * desc-cpu.scm (@arch@_cgen_cpu_close): Fix memory leaks.
2228
 
2229
2002-03-20  Hans-Peter Nilsson  
2230
 
2231
        * doc/pmacros.texi (Symbol concatenation): Mention that .sym
2232
        results are expanded recursively.
2233
 
2234
2002-03-19  Hans-Peter Nilsson  
2235
 
2236
        * pmacros.scm (-pmacro-expand,scan): If result is a symbol,
2237
        call scan-symbol on it, to enable recursive macro-expansion.
2238
 
2239
2002-01-25  Frank Ch. Eigler  
2240
 
2241
        * sid-cpu.scm (-gen-hardware-types): Generate single hardware union
2242
        for multiple-isa configurations.
2243
        * sid-decode.scm (-gen-decode-fn): Tolerate empty insn list.
2244
 
2245
2002-02-04  Ben Elliston  
2246
 
2247
        * cpu/sh.cpu, cpu/sh.opc: New files.
2248
        * cpu/sh64-comact.cpu, cpu/sh64-media.cpu: Likewise.
2249
 
2250
2002-01-29  Hans-Peter Nilsson  
2251
 
2252
        * doc/rtl.texi: Fix typo: define-attr, not define-attribute.
2253
        (Enumerated constants): Mention that an ifield must not specify a
2254
        multi-ifield.
2255
        (Instruction operands): Ditto for index.
2256
        (Expressions) : Remove misplaced mention of local
2257
        variables.
2258
        : Mention that mode must be specified and non-VOID when the
2259
        result is used.
2260
 
2261
2002-01-28  Hans-Peter Nilsson  
2262
 
2263
        * doc/porting.texi: When referring to *.opc, mention they are in
2264
        the cpu subdir.  Call top-level directory toplevel, not devo.
2265
        Close string in define-normal-insn example.
2266
 
2267
        * doc/pmacros.texi: Fix .substr typo to .substring.
2268
        Mention that .sym expansions are not further expanded.
2269
 
2270
2002-01-22  Graydon Hoare  
2271
 
2272
        * desc-cpu.scm (ifld-number-cache): Add.
2273
        (ifld-number): Add.
2274
        (gen-maybe-multi-ifld-of-op): Add.
2275
        (gen-maybe-multi-ifld): Add.
2276
        (gen-multi-ifield-nodes): Add.
2277
        (cgen-desc.c): Add call to gen-multi-ifield-nodes.
2278
 
2279
2002-01-10  matthew green  
2280
 
2281
        * cpu/xstormy16.cpu (gr-Rbj-names): Rename this ...
2282
        (gr-Rb-names): ... to this.
2283
        (h-Rb): New hardware piece.
2284
        (h-Rbj): Use gr-Rb-names.
2285
        (Rb): Use h-Rb.
2286
        (holdx): New instruction.
2287
 
2288
2002-01-07  Ben Elliston  
2289
 
2290
        * utils.scm (package-cygnus-simulators): Rename from this ..
2291
        (package-red-hat-simulators): .. to this.
2292
        * opcodes.scm (option-set!): Use package-red-hat-simulators.
2293
        * sid-cpu.scm (cgen-desc.h): Likewise.
2294
        (cgen-cpu.h): Likewise.
2295
        (cgen-defs.h): Likewise.
2296
        (cgen-write.cxx): Likewise.
2297
        (cgen-semantics.cxx): Likewise.
2298
        (cgen-sem-switch.cxx): Likewise.
2299
        * sid-decode.scm (cgen-decode.h): Likewise.
2300
        (cgen-decode.cxx): Likewise.
2301
        * sid-model.scm (cgen-model.cxx): Likewise.
2302
        * sid.scm (option-set!): Likewise.
2303
        * sim.scm (option-set!): Likewise.
2304
 
2305
2002-01-07  Ben Elliston  
2306
 
2307
        * utils.scm (copyright-fsf): Add 2002.
2308
        (copyright-cygnus): Rename to copyright-red-hat.
2309
        (copyright-red-hat): Add 2002.
2310
        (CURRENT-COPYRIGHT): Update comment.
2311
        * opcodes.scm (option-set!): Update callers.
2312
        * sid-model.scm (cgen-model.cxx): Likewise.
2313
        * sid-cpu.scm: Likewise.
2314
        * sid-decode.scm: Likewise.
2315
        * sid.scm (option-set!): Handle "redhat" as an option for
2316
        "copyright"; use copyright-red-hat.
2317
        * sim.scm (option-set!): Likewise.
2318
 
2319
2002-01-03  Dave Brolley  
2320
 
2321
        * decode.scm (-distinguishing-bit-population): Compute num-insns, the
2322
        number of insns in the list.  Update the population count function to
2323
        identify and prioritize 3 catgories of useful bits.
2324
        (-population-top-few): Don't consider bits with a population count of
2325
        zero.
2326
        (-build-decode-table-entry): Don't call
2327
        filter-harmlessly-ambiguous-insns.  Filter out non-specialized and
2328
        identical insns at the next tree level.
2329
        * insn.scm (filter-harmlessly-ambiguous-insns): Note in a comment that
2330
        this function is no longer used.
2331
        (filter-non-specialized-ambiguous-insns): New function.
2332
        (filter-identical-ambiguous-insns): New function.
2333
        (find-identical-insn): New function.
2334
        (filter-harmlessly-ambiguous-insns): Removed.
2335
 
2336
2001-11-26  Geoffrey Keating  
2337
            matthew green  
2338
            Frank Ch. Eigler  
2339
            Nick Clifton  
2340
 
2341
        * cpu/xstormy16.cpu: New file.
2342
        * cpu/xstormy16.opc: New file.
2343
 
2344
2001-11-26  Frank Ch. Eigler  
2345
 
2346
        * doc/sim.texi, rtl.texi, porting.texi: Correct texinfo markup typos.
2347
 
2348
2001-11-14  Dave Brolley  
2349
 
2350
        * utils-gen.scm (-gen-extract-word): Correct computation of the length
2351
        of the field being extracted.
2352
 
2353
2001-10-29  Johan Rydberg  
2354
 
2355
        * doc/rtl.texi (Expressions): Document the (error ..), (sqrt ..),
2356
        (cos ...) and (sin ..) rtx.
2357
 
2358
2001-10-13  Nick Clifton  
2359
 
2360
        * desc-cpu.scm: Do not include ctype.h in generated desc
2361
        files.  They will inherit safe-ctype.h instead.
2362
 
2363
2001-10-08  Nick Clifton  
2364
 
2365
        * desc-cpu.scm: Add missing function prototypes (for generated
2366
        C files).  Fix compile time warning messages about unused
2367
        parameters (for generated C files).
2368
        * opc-asmdis.scm: The same.
2369
        * opc-ibld.c: The same.
2370
        * opc-itab.scm: The same.
2371
        * cpu/fr30.opc: The same.
2372
        * cpu/m32r.opc: The same.
2373
        * cpu/openrisc.opc: The same.
2374
 
2375
2001-09-17  graydon hoare  
2376
 
2377
        * insn.scm (syntax-break-out): Correct logic in handling escaped
2378
        syntax characters.
2379
 
2380
2001-07-12  Jeff Johnston  
2381
 
2382
        * opc-itab.scm (@arch@_cgen_init_opcode_table): Unconditionally
2383
        call @arch@_cgen_build_insn_regex now that regex support is in
2384
        libiberty.
2385
 
2386
2001-07-12  Frank Ch. Eigler  
2387
 
2388
        * insn.scm (filter-harmlessly-ambiguous-insns): Fix msg typo.
2389
        (mask-superset?): Look for strict supersets to allow rejection of
2390
        duplicate insns.
2391
 
2392
2001-07-11  Frank Ch. Eigler  
2393
 
2394
        * sid-cpu.scm (-gen-mach-params): New proc to emit ...CHUNK_BITSIZE...
2395
        (cgen-desc.h): Call it.
2396
        * sid-decode.scm (-gen-decode-fn): Use base-insn-bitsize as
2397
        decode-size.
2398
        * utils-sim.scm (-gen-decode-insn-entry): For SID only, prepare
2399
        entire_insn for extraction, if it's shorter than base-insn-bitsize.
2400
 
2401
2001-07-11  Frank Ch. Eigler  
2402
 
2403
        * desc-cpu.scm (-gen-mach-table-defns): Emit fourth field: the
2404
        mach->cpu insn-chunk-bitsize.
2405
        (-gen-cpu-open): In @arch@_cgen_rebuild_tables, process above new
2406
        field toward CGEN_CPU_TABLE->insn_chunk_bitsize.
2407
        * mach.scm (): New field insn-chunk-bitsize.
2408
        (-cpu-parse, -cpu-read): Parse/initialize it.
2409
        * doc/rtl.texi (define-cpu): Document it.
2410
 
2411
2001-07-09  Geoffrey Keating  
2412
 
2413
        * ifield.scm ( 'field-start): Don't look at word-len.
2414
 
2415
2001-07-06  Ben Elliston  
2416
 
2417
        * opcodes.scm (read-cpu.opc): Read .opc files from subdir/cpu.
2418
 
2419
2001-07-05  Ben Elliston  
2420
 
2421
        * README: Update.
2422
 
2423
        * read.scm (include): Include files from srcdir/cpu.
2424
        (-cgen): Likewise for loading .cpu files.
2425
        * sid.scm (sim-finish!): Read .sim files from srcdir/cpu.
2426
        * *.cpu: Move all cpu descriptions into cpu subdirectory.
2427
        * *.opc: Likewise.
2428
        * simplify.inc: Likewise.
2429
 
2430
2001-07-04  Ben Elliston  
2431
 
2432
        * read.scm (include): Log "Including file" message at level 1,
2433
        rather than outputting it with (display).
2434
        (cpu-load): Log "Loading cpu description" and "Processing cpu
2435
        description" messages at levels 1 and 2, respectively, rather than
2436
        using (display).
2437
 
2438
2001-06-14  Geoffrey Keating  
2439
 
2440
        * desc.scm ( 'gen-defn): Add extra zero into
2441
        CGEN_KEYWORD_ENTRY initializers.
2442
 
2443
        * gas-test.scm (gen-gas-test): Create 8 testcases, not just 5.
2444
        ( 'test-data): Involve both the index and the hardware
2445
        in testcase generation.
2446
        ( 'test-data): Generate test data from the underlying
2447
        object.
2448
        ( 'test-data): Generate test data by computing bit
2449
        patterns for the field, then decoding them.
2450
        ( 'test-data): Allow for new calling convention.
2451
        ( 'test-data): Likewise.
2452
        ( 'test-data): Convert index values into keywords.
2453
        ( 'test-data): Convert index values into integer strings.
2454
 
2455
        * gas-test.scm (cgen-build.sh): Escape '.' as well.
2456
 
2457
2001-06-01  Frank Ch. Eigler  
2458
 
2459
        * rtl.scm (hw): Encode hw access mode into  name, since this
2460
        is required for multi-mode hw types (memory).
2461
 
2462
2001-05-11  Ben Elliston  
2463
 
2464
        * gas-test.scm (cgen-build.sh, gentest): Escape $ with a backslash
2465
        when generating allinsn.d from objdump output. Without it, the
2466
        testsuite will treat $ as the regular expression for end of line.
2467
 
2468
2001-05-09  Ben Elliston  
2469
 
2470
        * doc/porting.texi (Doing a GAS port): Replace `cgen_opcode_open'
2471
        with `cgen_cpu_open'; documentation had become out of date.
2472
        * doc/rtl.texi (Instruction operands): Likewise.
2473
 
2474
2001-05-07  Frank Ch. Eigler  
2475
 
2476
        * iformat.scm (compute-insn-base-mask-length): Rewrite to tolerate
2477
        various-base-length instruction sets.
2478
 
2479
2001-04-02  Ben Elliston  
2480
 
2481
        * sid-cpu.scm (-last-insn): New function.
2482
        (-gen-sem-switch-engine): Loop through idesc while less than or
2483
        equal to the last instruction enum, not less than the MAX enum.
2484
        (-gen-sfrag-engine-fn): Clean up frag_label_table initialisation.
2485
        * sid-decode.scm (-gen-decode-insn-globals): Define the idesc
2486
        table's size to be the last instruction enum plus one, not
2487
        @PREFIX@_INSN_MAX.
2488
        * sid.scm (gen-cpu-insn-enum-decl): Do not append a dummy `max'
2489
        instruction onto the instruction list.
2490
 
2491
        * sim-decode.scm (@prefix@_init_idesc_table): Compute tabsize
2492
        using the size of the table and its elements.
2493
        (-gen-decode-insn-globals): Define the idesc table's size to be
2494
        the last instruction enum plus one, not @PREFIX@_INSN_MAX.
2495
        * sim-model.scm (-gen-mach-defns): Define CPU_MAX_INSNS as the
2496
        last instruction enum plus one, not @CPU@_INSN_MAX.
2497
 
2498
2001-03-28  Ben Elliston  
2499
 
2500
        * doc/version.texi (UPDATED, EDITION): Update.
2501
        * doc/stamp-vti: Likewise.
2502
 
2503
2001-03-26  Ben Elliston  
2504
 
2505
        * doc/credits.texi (Credits): Update.
2506
 
2507
        * gas-test.scm (,test-data): Prefix keywords by their
2508
        specified prefix and, if necessary, escape `$' in gas-build.sh to
2509
        prevent unwanted shell variable expansion.
2510
 
2511
2001-03-24  Ben Elliston  
2512
 
2513
        * gas-test.scm (,test-data): Choose pseudo-random data.
2514
        (,test-data): Likewise.
2515
        (,test-data): Likewise.
2516
        (,test-data): Likewise.
2517
        (-collate-test-set): New function.
2518
        (build-test-set): Use it.
2519
        (gen-gas-test): Generate five test cases per instruction.
2520
        (cgen-allinsn.exp): Include "-*- Tcl -*-" in DejaGNU test file.
2521
 
2522
        * read.scm: Load "slib/random" if random is not defined.
2523
        * slib/random.scm: New file.
2524
 
2525
        * utils.scm: Remove comments about the Hobbit compiler.
2526
        (copyright-cygnus): Add 2001.
2527
        (package-cygnus-simulators): Replace "Cygnus" with "Red Hat".
2528
        (package-gnu-simulators): Tidy.
2529
 
2530
2001-03-23  Ben Elliston  
2531
 
2532
        * cgen-gas.scm: Inline documentation improvements.
2533
 
2534
2001-03-21  Ben Elliston  
2535
 
2536
        * opc-itab.scm (compute-syntax): Emit a parse error if an operand
2537
        given in a syntax string is undefined.
2538
 
2539
        * opc-itab.scm (compute-syntax): Emit a parse error if an operand
2540
        name is empty or invalid -- eg. "$(rs)" instead of "($rs)".
2541
 
2542
2001-03-20  Patrick Macdonald  
2543
 
2544
        * desc-cpu.scm (@arch@_cgen_cpu_open): Correct machine calculation
2545
        for arg_type CGEN_CPU_OPEN_BFDMACH.
2546
 
2547
2001-03-20  Ben Elliston  
2548
 
2549
        * opc-itab.scm (-gen-insn-enum): Do not append a dummy `max'
2550
        instruction onto the instruction list. Define MAX_INSNS to be the
2551
        value of the last instruction enum plus one.
2552
 
2553
2001-03-14  Nick Clifton  
2554
 
2555
        * utils.scm (copyright-fsf): Add 2001.  Remove (C).
2556
 
2557
2001-03-05  Dave Brolley  
2558
 
2559
        * sim-decode.scm (-gen-extract-case): Generate declaration of "insn"
2560
        if the number of ifields is greater than zero.
2561
 
2562
2001-03-01  Frank Ch. Eigler  
2563
 
2564
        * sid.cpu (-op-gen-set-trace[-parallel], -create-virtual-insns!):
2565
        Emit LIKELY/UNLIKELY branch probability hints.
2566
        * sid-decode.cpu (-gen-record-args): Ditto.
2567
 
2568
2001-02-02  Patrick Macdonald  
2569
 
2570
        * desc-cpu.scm (-gen-hash-defines): Rename
2571
        CGEN_ACTUAL_MAX_SYNTAX_BYTES to CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS.
2572
 
2573
2001-01-26  Frank Ch. Eigler  
2574
 
2575
        * sid-cpu.scm (gen-parallel-exec-type): Use unsigned long long for
2576
        writeback tracking.
2577
        (-gen-write-fn, -gen-sem-case, -gen-sfrag-case): Ditto.
2578
        * sid-decode.scm (-gen-scache-decls): Exclude writeback tracking field
2579
        if unnecessary.
2580
        * sid.scm ( gen-write): Use unsigned long long expression
2581
        for writeback.
2582
        (-op-gen-set-trace, -op-gen-set-trace-parallel): Ditto.
2583
        ( gen-profile-code): Ditto.
2584
 
2585
2001-01-23  Johan Rydberg  
2586
 
2587
        * doc/rtl.texi (Expressions): Document the (index-of ...) and
2588
        (regno ...) rtx.
2589
 
2590
2001-01-08  Frank Ch. Eigler  
2591
 
2592
        * operand.scm ( pretty-sem-name): New field.
2593
        ( make): Initialize it from hw-name.
2594
        (op:set-pretty-sem-name!): New function.
2595
        ( gen-pretty-name): Default to fetching new field.
2596
        * rtl.scm (hw): Copy hw-name to pretty-sem-name instead.  Restore
2597
        sem-name setting from -rtx-hw-name.
2598
 
2599
2001-01-08  Frank Ch. Eigler  
2600
 
2601
        * rtl.scm (hw): Copy hw-name to new operand's sem-name, to simplify
2602
        its subsequent gen-pretty-name.
2603
 
2604
        * read.scm: Increase thread working stack limit and backtrace
2605
        depth limits.
2606
 
2607
2001-01-08  Frank Ch. Eigler  
2608
 
2609
        * doc/rtl.texi: Deprecate and depreciate the decode-assist construct.
2610
 
2611
2001-01-06  Johan Rydberg  
2612
 
2613
        * openrisc.cpu (or32): Setup semantics for h-delay-insn to
2614
        current insn plus 4.
2615
        (h-delay-insn): New hardware register.
2616
        (l-jal): Uses h-delay-insn instead of pc when setting link register.
2617
        (l-jalr): Likewise.
2618
        (l-bal): Likewise.
2619
 
2620
        * openrisc.opc (parse_hi16): Sign extend value.
2621
        (parse_lo16): Likewise.
2622
 
2623
2001-01-06  Ben Elliston  
2624
 
2625
        * utils-gen.scm (gen-sfmt-enum-decl): Use @prefix@ and @PREFIX@
2626
        instead of @cpu@ and @CPU@ to generically prefix symbol names.
2627
        * sim-cpu.scm (-gen-sem-fn-table-entry): Likewise.
2628
        (-gen-semantic-fn-table): Likewise.
2629
        (-gen-scache-semantic-fn): Likewise.
2630
        (-gen-no-scache-semantic-fn): Likewise.
2631
        (cgen-read.c): Likewise.
2632
        (cgen-sem-switch.c): Likewise.
2633
        * desc-cpu.scm (cgen-desc.c): Use @arch@, not @prefix@, since this
2634
        is a filename prefix.
2635
        * sim-decode.scm (IDESC-TABLE-VAR): Use @prefix@, et al.
2636
        (-gen-decode-insn-globals): Likewise.
2637
        (-gen-idesc-decls): Likewise.
2638
        (cgen-decode.h): Likewise.
2639
        (cgen-decode.c): Likewise.
2640
        * sim.scm (gen-cpu-insn-enum-decl): Likewise.
2641
        (gen-cpu-insn-enum): Likewise.
2642
        (sim-finish!): Likewise.
2643
 
2644
2001-01-05  Johan Rydberg  
2645
 
2646
        * openrisc.cpu: New file.
2647
        * openrisc.opc: Likewise.
2648
 
2649
2000-12-12  Ben Elliston  
2650
 
2651
        * doc/rtl.texi (Expressions): Document the (delay ..) rtx.
2652
 
2653
2000-12-07  Ben Elliston  
2654
 
2655
        * sim-decode.scm (-gen-extract-case): Do not emit a definition for
2656
        "insn" when there are zero ifields to extract.
2657
 
2658
2000-12-04  Frank Ch. Eigler  
2659
 
2660
        * utils-sim.scm (gen-define-argbuf-macro): Handle sfmt=#f case, to be
2661
        used by simple/non-scache simulators.
2662
        * sim-cpu.scm (-gen-read-case): Call gen-define/undef-field-macro
2663
        regardless of with-scache?.
2664
        (-gen-write-case, -gen-no-scache-semantic-fn, -gen-sem-case): Ditto.
2665
 
2666
2000-12-03  Ben Elliston  
2667
 
2668
        * desc-cpu.scm (cgen-desc.h): Clarify generated filenames.
2669
        (cgen-desc.c): Likewise.
2670
 
2671
2000-12-01  Greg McGary  
2672
 
2673
        * desc.scm (,gen-defn): Prepend prefix to keyword names.
2674
 
2675
2000-12-01  Ben Elliston  
2676
 
2677
        * sim-cpu.scm (cgen-cpu.h): Only emit argbuf, scache and extract
2678
        definitions if run without with-multipla-isa?.
2679
        (cgen-defs.h): New function. Emit an ISA-specific defs file.
2680
        * cgen-sim.scm (sim-arguments): Accept -G option to generate defs.
2681
 
2682
2000-11-24  Ben Elliston  
2683
 
2684
        * sim-cpu.scm (-gen-hardware-struct): New function.
2685
        (-gen-hardware-types): If with-multiple-isa is specified, emit all
2686
        hardware elements wich have share one or more ISAs with the ISAs
2687
        being kept.
2688
 
2689
        * sim.scm (-with-multiple-isa?): New symbol.
2690
        (with-multiple-isa?): New function.
2691
        (option-init!): Initialise -with-multiple-isa?.
2692
        (option-set!): Handle with-multiple-isa option.
2693
 
2694
2000-11-21  Ben Elliston  
2695
 
2696
        * utils.scm (copyright-fsf): Add the year 2000.
2697
 
2698
2000-11-20  Frank Ch. Eigler  
2699
 
2700
        * opc-itab.scm (-gen-ifmt-table, -gen-macro-insn-table: Remove
2701
        unneeded "\n\n" from F() macro definition.
2702
 
2703
2000-11-15  Greg McGary  
2704
 
2705
        * utils-cgen.scm (gen-define-with-symcat): New function.
2706
        * desc-cpu.scm (gen-ifld-defns): Use it.
2707
        (gen-hw-table-defns): Use it.
2708
        (-gen-hash-defines): Use it.
2709
        (gen-operand-table): Use it.
2710
        (gen-insn-table): Use it.  Remove spurious `#undef MNEM'.
2711
        * opc-itab.scm (-gen-ifmt-table): Use it.
2712
        (-gen-insn-opcode-table): Use it.
2713
        (-gen-macro-insn-table): Use it.
2714
        * opc-opinst.scm (-gen-operand-instance-tables): Use it.
2715
        * sim-cpu.scm (cgen-semantics.c): Use it.
2716
        (cgen-sem-switch.c): Use it.
2717
 
2718
2000-11-10  Frank Ch. Eigler  
2719
 
2720
        * utils-sim.scm (-gen-decode-insn-entry): Add fn? parameter to signal
2721
        request to emit calls to insn extractors as functions rather than
2722
        branches to inline blocks.
2723
        (-gen-decode-expr-set-itype, -gen-decode-expr-entry): Ditto.
2724
        (-gen-decode-table-entry, -gen-decoder-switch, gen-decoder): Ditto.
2725
 
2726
        * sim-decode.c (-gen-decode-fn): Tell (gen-decode) to emit branches
2727
        to extractor clauses.
2728
 
2729
2000-11-10  Frank Ch. Eigler  
2730
 
2731
        * decode.scm (-distinguishing-bit-population): Significantly
2732
        improve popularity heuristic.  Renamed from
2733
        (-mask-bit-population): Gone.
2734
        (-population-above-threshold): Sort new bit numbers in order of
2735
        popularity.
2736
        (-population-top-few): Allow up to three more bits to be selected
2737
        than requested.  Correct selection order to prefer better bits.
2738
        Correct bug in fewer-than-requested case.  Keep threshold as
2739
        floating-point.
2740
        (decode-best-get-bits): Pass also the insn-values.
2741
 
2742
        * utils-sim.scm (-gen-decoder-switch): Add comment suggesting a
2743
        future optimization.
2744
 
2745
        * utils.scm (message): Format nested lists better.
2746
 
2747
2000-11-09  Doug Evans  
2748
 
2749
        * dev.scm: Add srcdir to %load-path.
2750
 
2751
        * rtx-funcs.scm (subword): Mode of argument can be different
2752
        than mode of result, so don't use OP0 to specify argument's mode.
2753
 
2754
2000-11-02  Ben Elliston  
2755
 
2756
        * doc/porting.texi (Building a GAS test suite): Document my change
2757
        to gas-build.sh.
2758
 
2759
2000-11-01  Ben Elliston  
2760
 
2761
        * sim-test.scm (cgen-build.sh): Include "-*- Asm -*-" in test cases.
2762
 
2763
2000-10-31  Ben Elliston  
2764
 
2765
        * gas-test.scm (cgen-build.sh): Allow the generated script to run
2766
        with no command line arguments if the gas build directory can be
2767
        determined.
2768
 
2769
2000-10-26  Doug Evans  
2770
 
2771
        * insn.scm (-parse-insn-format-symbol): Fix spelling error,
2772
        op-ifld -> op-ifield.
2773
 
2774
2000-10-23  Frank Ch. Eigler  
2775
 
2776
        * thumb.scm (cc-tests): Add (ISA thumb) attribute.
2777
 
2778
2000-10-13  matthew green  
2779
 
2780
        * utils-cgen.scm (get-ifetch): Move from here ...
2781
        * sim.scm (get-ifetch): ... to here.
2782
        * sid.scm (get-ifetch): Copy and port to c++.
2783
 
2784
2000-10-06  Dave Brolley  
2785
 
2786
        * utils-gen.scm (-gen-ifld-extract-base): Compute start position as
2787
        ifld-start + ifld-word-offset.
2788
        (gen-ifld-extract): Check adata-integral-insn? before checking whether
2789
        the field is beyond the base number of bits.
2790
        (gen-define-ifields): Use a base-length of 32 if adata-integral-insn?.
2791
        (gen-extract-ifields): Ditto.
2792
        * gas-test.scm (gentest): Generate backslashes before '[' and ']'
2793
        characters in the regular expression.
2794
 
2795
2000-10-02  Frank Ch. Eigler  
2796
 
2797
        * desc-cpu.scm: (gen-operand-decls): Emit MAX_OPERANDS as a
2798
        preprocessor constant.
2799
 
2800
2000-09-21  Frank Ch. Eigler  
2801
 
2802
        * slib/logical.scm: New file from slib.  Provides robust bitwise
2803
        logical operations for large integers.
2804
        * read.scm: maybe-load it.
2805
 
2806
2000-09-15  Frank Ch. Eigler  
2807
 
2808
        * enum.scm (define-full-insn-enum): Filter with keep-isa predicate.
2809
        * ifield.scm (-ifield-parse, -multi-ifield-parse): No longer assert
2810
        single-isa predicate, but support keep-isa filtering.
2811
 
2812
2000-09-08  Frank Ch. Eigler  
2813
 
2814
        * rtl-c.scm (s-sequence): Handle nested c-calls in both
2815
        statement-expression and comma-expression contexts.
2816
        (s-c-call, s-c-raw-call): Add warning comment about bad assumption.
2817
 
2818
2000-09-08  Frank Ch. Eigler  
2819
 
2820
        * decode.scm (-population-top-few): Signal error gracefully if
2821
        decoding is about to become ambiguous.
2822
 
2823
2000-09-06  Frank Ch. Eigler  
2824
 
2825
        * doc/rtl.texi (decode-assist): Describe this field as optional.
2826
 
2827
2000-09-06  Frank Ch. Eigler  
2828
 
2829
        * utils-gen.scm (gen-multi-ifld-extract): Handle case of multi-ifield
2830
        with decode proc.
2831
 
2832
2000-09-05  Dave Brolley  
2833
 
2834
        * sim.scm (sim-finish!): Honour the definition of FAST_P when calling
2835
        @cpu@_pbb_begin. Use 0 if FAST_P is not defined.
2836
 
2837
2000-08-29  Dave Brolley  
2838
 
2839
        * utils-gen.scm (gen-ifld-extract): Pass total-len if
2840
        adata-integral-insn is true for this architecture.
2841
 
2842
2000-08-24  Frank Ch. Eigler  
2843
 
2844
        * hardware.scm ( get-index-mode): Define method.
2845
        * operand.scm ( gen-pretty-name): Tolerate no op:sem-name.
2846
        * rtl-c.scm (-c-rtl-get): Improve an error message.
2847
        * sim.scm (-op-gen-set-trace): Support  lvalues.
2848
 
2849
2000-08-22  Frank Ch. Eigler  
2850
 
2851
        * Makefile.in (DIST_COMMON): Regenerated.
2852
        * ifield.scm ( needed-iflds): New method.
2853
        * iformat.scm (-ifmt-lookup-sfmt!): Use base ifields for
2854
        sfmts built from s.
2855
        * operand.scm (-derived-parse-encoding): Give  a fixed
2856
        type symbol 'derived-ifield, not an unparseable string.
2857
        * utils-sim.scm (op-needed-iflds) Handler 'derived-ifield case.
2858
        (-sfmt-contents): Add tracing.
2859
 
2860
        From Doug Evans :
2861
        * sim.scm ( cxmake-get): Result is a , not a string of
2862
        C code.
2863
 
2864
2000-08-20  Doug Evans  
2865
 
2866
        * rtl-c.scm (rtl-c-expr-with-estate): New fn.
2867
        (rtl-c-expr-parsed,rtl-c-expr): New fns.
2868
        (-rtl-c-get): Rename from rtl-c-get.
2869
        (rtl-c-get): New fn for getter logging.
2870
 
2871
2000-07-28  Ben Elliston  
2872
 
2873
        * NEWS: Update.
2874
 
2875
2000-07-25  Ben Elliston  
2876
 
2877
        * doc/credits.texi (Credits): Add Frank Eigler.
2878
 
2879
2000-07-24  Dave Brolley  
2880
 
2881
        * opc-itab.scm (gen-insn-opcode-table): Initialize the first element
2882
        fully.
2883
        * desc.scm (gen-attr-table-defn): Initialize all elements fully.
2884
        (): Initialize all elements fully.
2885
        * desc-cpu.scm (-gen-isa-table-defns): Initialize the last element
2886
        fully.
2887
        (-gen-mach-table-defns): Ditto.
2888
        (-gen-ifld-defns): Ditto.
2889
        (-gen-operand-table): Ditto.
2890
        (-gen-insn-table): Ditto.
2891
        (-gen-cpu-open): Nothing to do for the mach table.
2892
 
2893
2000-07-13  Ben Elliston  
2894
 
2895
        * doc/version.texi (UPDATED): Update.
2896
 
2897
2000-07-05  Ben Elliston  
2898
 
2899
        * configure.in (AC_PATH_PROG): Remove.
2900
        * configure: Regenerate.
2901
        * Makefile.am (GUILE): Locate guile dynamically.
2902
        * Makefile.in: Regenerate.
2903
        * doc/Makefile.in: Likewise.
2904
 
2905
2000-07-03  Ben Elliston  
2906
 
2907
        * desc-cpu.scm (cgen-desc.c): Include "libiberty.h".
2908
        * opc-itab.scm (cgen-opc.c): Likewise.
2909
 
2910
2000-06-28  Frank Ch. Eigler  
2911
 
2912
        * rtl.scm (-rtx-traverse-locals): Correct call to `symbol?' for
2913
        guile 1.4 compatibility.
2914
        (rtx-env-dump): Comment out buggy display calls.
2915
 
2916
2000-06-15  matthew green  
2917
 
2918
        * opc-itab.scm (-gen-ifmt-table-1): Add extra braces to pacify GCC.
2919
 
2920
2000-06-14  Frank Ch. Eigler  
2921
 
2922
        * Makefile.in: Regenerated.
2923
 
2924
        * desc-cpu.scm (gen-ifld-decls): Exclude derived ifields.
2925
        (gen-ifld-defns): Ditto.
2926
        * pgmr-tools.scm (pgmr-pretty-print-insn-format): Ditto.
2927
        * rtl.c (rtl-finish!): Ditto.
2928
        * opc-itab.scm (-gen-ifield-decls): Ditto.
2929
        * opcodes.scm (gen-switch): Exclude derived operands.
2930
        * operand.scm (op-iflds-used): Expand derived operands.
2931
        (hw-index-derived): New dummy function to create dummy object.
2932
        (-derived-operand-parse): Fix mode arg passed to 
2933
        constructor.  Set object's hw-name and index fields.
2934
        (-anyof-merge-subchoices): Set instance object's index also.
2935
        (-anyof-name): New helper function.
2936
        (anyof-merge-semantics): Correct replacement of operand names in
2937
        anyof instance.
2938
        (op-ifield): Tolerate derived-operands and their funny indices better.
2939
        * ifield.scm (ifld-known-values): Expand derived ifields.
2940
        (non-multi-ifields, non-derived-ifields): New utility functions.
2941
        (ifld-decode-mode): Tolerate objects with unbound decode field.
2942
        * iformat.scm (compute-insn-length): Expand derived ifields.
2943
        (compute-insn-base-mask): Ditto.
2944
        * insn.scm (insn-base-ifields): Remove.
2945
        (): Add iflds-values entry to cache ifld-base-ifields values.
2946
        (insn-value): Call ifld-base-ifields and ifld-constant? instead.
2947
        * mach.scm (arch-analyze-insns!): Exclude multi-insns.
2948
        * sem-frags.scm (sim-sfrag-analyze-insns!): Ditto.
2949
        (-frag-test-data): Ditto.
2950
        * sid-cpu.scm (cgen-write.cxx,-gen-sem-switch): Ditto.
2951
        (-gen-sem-switch-engine); Ditto.
2952
        * sid-model.scm (-gen-model-insn-fns, -gen-model-timing-table): Ditto.
2953
        * sid-decode.scm (cgen-decode.h, cgen-decode.cxx): Ditto.
2954
        (-gen-record-args): Tolerate unbound op-ifield.
2955
        * sid.scm ( cxmake-get): New sketch implementation.
2956
        (-gen-arch-model-decls, scache-engine-insns, pbb-engine-insns):
2957
        Exclude multi-insns.
2958
        * sim-decode.scm (cgen-decode.h, cgen-decode.cxx): Ditto.
2959
        * utils-sim.scm (op-extract?): Handle derived operands.
2960
 
2961
        * gas-test.scm (cgen-build.sh): Quote '*' chars printed by objdump.
2962
        * semantics.scm (-build-operand!): Handle 'DFLT case during parsing.
2963
        * hardware.scm (hardware-for-mode): New function.
2964
 
2965
        * insn.scm (filter-harmlessly-ambiguous-insns): New function for
2966
        cleaning up decode tables.
2967
        (mask-superset?): Little helper function for above.
2968
        * decode.scm (-build-decode-table-entry): Call it.
2969
        (-opcode-slots): Add some more tracing.
2970
        * arm.cpu: Disable decode-splits construct due to implementation
2971
        conflict with `filter-harmlessly-ambiguous-insns'
2972
 
2973
        * decode.scm (-population-top-few): New function for better decode
2974
        bit generation.  Includes minor helper functions.
2975
        (decode-get-best-bits): Call it instead.
2976
        (OLDdecode-get-best-bits): Renamed previous version of above.
2977
 
2978
 
2979
2000-06-13  Ben Elliston  
2980
 
2981
        * configure.in: Use AC_EXEEXT with Cygnus mode. Remove AC_ARG_WITH
2982
        for the Guile library directory.
2983
        * configure: Regenerate.
2984
        * Makefile.in, doc/Makefile.in: Regenerate.
2985
 
2986
        * Makefile.in, doc/Makefile.in: Regenerate.
2987
        * configure.in: Remove unnecessary tests. Move to version 1.0.
2988
        * acconfig.h, config.in: Remove.
2989
        * configure, aclocal.m4: Regenerate.
2990
        * doc/stamp-vti, doc/version.texi: Likewise.
2991
        * AUTHORS: New file.
2992
 
2993
2000-06-07 Ben Elliston  
2994
 
2995
        * fixup.scm (symbol-bound?): Reduce debugging output.
2996
 
2997
2000-06-02  matthew green  
2998
 
2999
        * insn.scm (insn-base-ifields): Returns all the instruction fields for
3000
        a given instruction, replacing derived fields with their subfields.
3001
        (insn-value): Use `insn-base-ifields' to find all constant values.
3002
        (multi-insn-instantiate!): Comment some debug messages.
3003
 
3004
2000-06-01  Ben Elliston  
3005
 
3006
        * doc/rtl.texi (Expressions): Document a hazard with the choice of
3007
        symbol names used in a (c-call ..) rtx.
3008
 
3009
        * sim-test.scm (build-test-set): Return (()) for an instruction
3010
        with no operands, so it too is included in the generated test set.
3011
 
3012
2000-05-31  Ben Elliston  
3013
 
3014
        * Makefile.am (gas-test): Ensure $(ISA) is not empty.
3015
        (sim-test): Likewise.
3016
        * Makefile.in: Regenerate.
3017
 
3018
2000-05-30  Frank Ch. Eigler  
3019
 
3020
        * read.scm (-cgen): In debugging mode (-b), ask guile for untruncated
3021
        stack traceback, in an order that resembles gdb's `bt'.
3022
 
3023
2000-05-24  Frank Ch. Eigler  
3024
 
3025
        * desc-cpu.scm (-gen-hash-defines): Use ifmt-ifields again.
3026
        * opc-itab.scm (-gen-ifmt-table-1): Ditto.
3027
        * gas-test.scm (gas-test-analyze!, cgen-build.sh): Filter out
3028
        multi insns.
3029
        * ifield.scm (multi-ifield): Define workable field-mask and field-value
3030
        virtual functions.
3031
        (ifld-base-ifields): New routine to replace ifmt-expanded-ifields.
3032
        * iformat.scm (ifmt-expanded-ifields): Gone.
3033
        (ifields-base-ifields): New function.  Call ifld-base-ifields for real
3034
        work.
3035
        (-ifmt-lookup-ifmt!): Use it to expand derived/multi combos in new
3036
        ifmt entries.
3037
 
3038
        * opcodes.scm (multi-ifield gen-extract): Correct spacing in generated
3039
        code.
3040
 
3041
2000-05-23  Frank Ch. Eigler  
3042
 
3043
        * sid.scm (with-any-profile?): New function clone.
3044
 
3045
2000-05-19  Frank Ch. Eigler  
3046
 
3047
        * utils-gen.scm (gen-multi-ifld-extract): Fix decode hook for sim.
3048
 
3049
2000-05-18  Frank Ch. Eigler  
3050
 
3051
        * ifield.scm (-multi-ifield-parse): Add encode/decode args.
3052
        (-multi-ifield-read): Parse them.
3053
        (define-full-multi-ifield): Pass #f/#f as defaults for them.
3054
        * opcodes.scm (multi-ifield gen-insert): Add encode hook.
3055
        (multi-ifield gen-extract): Add decode hook.
3056
        * utils-gen.scm (gen-multi-ifld-extract): Add decode hook for sim.
3057
 
3058
        * insn.scm (syntax-break-out): More correctly handle \-escaped
3059
        syntax characters.
3060
        (syntax-make-elements): Ditto.
3061
        * opc-itab.scm (compute-syntax): Ditto.
3062
 
3063
2000-05-17  Ben Elliston  
3064
 
3065
        * gas-test.scm (cgen-build.sh): Log the correct script filename.
3066
 
3067
2000-05-15  Frank Ch. Eigler  
3068
 
3069
        * gas-test.scm (build-test-set): Return (()) for an instruction
3070
        with no operands, so it too is included in the generated test set.
3071
 
3072
2000-05-15  Frank Ch. Eigler  
3073
 
3074
        * desc-cpu.scm (-gen-hash-defines): Define CGEN_ACTUAL_MAX values for
3075
        IFMT_OPERANDS and SYNTAX_BYTES.
3076
 
3077
2000-05-15  Frank Ch. Eigler  
3078
 
3079
        * sim.scm (with-any-profile?): New function.
3080
        * utils-sim.scm (-sfmt-contents): Use above instead of `with-profile?'
3081
        to decide whether or not to include profiling counters.
3082
 
3083
2000-05-10  Frank Ch. Eigler  
3084
 
3085
        Fuller derived-operand support for opcodes.
3086
        * insn.scm (non-multi-insns): New filter to oppose `multi-insns'.
3087
        * desc-cpu.scm (-define-hash-defines): Compute CGEN_MAX_SYNTAX_BYTES.
3088
        Correctly compute ..._IFMT_OPERANDS.  Omit useless ..._INSN_OPERANDS.
3089
        (gen-operand-table): Omit derived- and anyof- operands from table.
3090
        (gen-insn-table): Omit multi-insns from table.
3091
        * iformat.scm (ifmt-expanded-fields): New function to expand
3092
        subfields of derived-ifields.
3093
        (ifmt-compute!): Ignore remaining multi-insns.
3094
        * mach.scm (isa-min-insn-bitsize, isa-max-insn-bitsize): Ignore
3095
        multi-insns.
3096
        * opc-itab.scm (-gen-ifmt-table-1): Use ifmt-expanded-ifields.
3097
        (-gen-insn-enum, -gen-insn-opcode-table): Ignore multi-insns.
3098
        * opcodes.scm (derived-operand): Define abort()ing gen-insert,
3099
        gen-extract, gen-fget, gen-fset, gen-parse, gen-print functions.
3100
        (gen-switch): Omit anyof-operands.
3101
        * operand.scm (-anyof-syntax): New function.
3102
        (-anyof-merge-syntax): Call it.
3103
        * utils.scm (collect): New idiomatic function.
3104
 
3105
2000-05-10  Ben Elliston  
3106
 
3107
        * m68k.cpu: New file (work in progress).
3108
 
3109
2000-05-05  Frank Ch. Eigler  
3110
 
3111
        * Makefile.am (all-local): New target.  Create stamp-cgen.
3112
        * Makefile.in: Regenerated.
3113
        * doc/Makefile.in: Regenerated.
3114
 
3115
2000-04-26  Frank Ch. Eigler  
3116
 
3117
        * operand.scm (-operand-g/setter-syntax): Correct off-by-one error.
3118
        (-operand-parse-setter): Ditto.
3119
        * utils-sim.scm (needed-iflds): Store ifield (index) in argbuf, even
3120
        for CACHE-ADDR operands.
3121
        * sid-decode.scm (-gen-record-args): Remove newly duplicated extract
3122
        trace entries.  Widen byte-wide values for printing.
3123
        * sid.scm (-op-gen-set-trace): Enhance result trace with op indices.
3124
        Widen byte-wide values for printing.  Hexify memory addresses.
3125
 
3126
2000-04-23  matthew green  
3127
 
3128
        * m32r.cpu: Fix a typo.
3129
 
3130
Fri Apr 21 22:18:48 2000  Jim Wilson  
3131
 
3132
        * ia64.cpu (define-model): Change merced to Itanium.
3133
        (f-qp): Change quilifying to qualifying.
3134
        (movbr_ph, movbr_pvec): Delete.
3135
        (I-I21): Delete uses of movbr_ph and movbr_pvec.
3136
 
3137
2000-04-07  Ben Elliston  
3138
 
3139
        * doc/porting.texi (Building a simulator test suite): Clarify
3140
        where generated test cases are placed.
3141
 
3142
2000-04-07  Ben Elliston  
3143
 
3144
        * Makefile.am (gas-test): Remove dependency on `cgen'.
3145
        (sim-test): Ditto.
3146
        * Makefile.in: Regenerate.
3147
 
3148
2000-04-04  Frank Ch. Eigler  
3149
 
3150
        * hardware.scm ( parse): Allow user to set type for pc register.
3151
        * mode.scm (mode-finish!): Add placeholder code for mach-dependent
3152
        type reconfiguration.
3153
        * utils-sim.scm (-sfmt-contents): Add profile-counters only if
3154
        with-profile?.
3155
 
3156
2000-03-30  Ben Elliston  
3157
 
3158
        * doc/rtl.texi (Enumerated constants): Add concept index entries.
3159
 
3160
2000-03-24  Ben Elliston  
3161
 
3162
        * Makefile.am (stamp-cgen): Reinstate target.
3163
        * Makefile.in: Regenerate.
3164
 
3165
2000-03-22  Ben Elliston  
3166
 
3167
        * slib/ppfile.scm: Remove; unused.
3168
        * slib/defmacex.scm: Likewise.
3169
 
3170
2000-03-21  Ben Elliston  
3171
 
3172
        * doc/internals.texi (Source file overview): Document.
3173
 
3174
        * Makefile.am (GUILEDIR): Remove.
3175
        (CGEN): Ditto. Callers use $(GUILE) instead.
3176
        (GUILEFLAGS): Ditto.
3177
        (CGENFILES): Ditto.
3178
        (APPDESCFILES): Ditto.
3179
        (OPCODESFILES): Ditto.
3180
        (SIMFILES): Ditto.
3181
        (pkgdata_SCRIPTS): Ditto.
3182
        (stamp-cgen): Remove target.
3183
        * Makefile.in: Regenerate.
3184
 
3185
        * configure.in: Remove header and library tests.
3186
        * configure: Regenerate.
3187
        * config.in: Likewise.
3188
 
3189
2000-03-20  Ben Elliston  
3190
 
3191
        * read.scm: Cease loading "hob-sup.scm".
3192
        * utils.scm: Inherit the fastcall family of procedures (for now).
3193
        * hob-sup.scm: Remove.
3194
 
3195
2000-03-20  Ben Elliston  
3196
 
3197
        * configure.in (AC_OUTPUT): Do not emit .gdbinit.
3198
        * configure: Regenerate.
3199
        * gdbinit.in: Remove.
3200
 
3201
2000-03-17  Ben Elliston  
3202
 
3203
        * Makefile.am (CGEN): Use guile, not cgen.
3204
        (CGENCFLAGS, LIBIBERTY, INCLUDES): Remove.
3205
        (bin_PROGRAMS, cgen_SOURCES): Likewise.
3206
        (CGENFILES): Fold CGEN_HOB_INPUT_FILES and CGEN_NOHOB_FILES.
3207
        (HOBBIT_INPUT_FILES, HOBBIT_OUTPUT_FILE): Remove.
3208
        (HOB_OBJS): Likewise.
3209
        (CGEN_HOB_SRC, CGEN_HOB_OBJ): Likewise.
3210
        (CGENOBJS): Likewise.
3211
        (cgen_DEPENDENCIES, cgen_LDFLAGS, cgen_LDADD): Likewise.
3212
        (hobbit, hobbit.o, hobbit.c): Remove targets.
3213
        (cos.o, cgen.o, cgen-gh.o, hob-sup.o): Likewise.
3214
        (CLEANFILES): Update.
3215
        * acconfig.h (WITH_HOBBIT): Remove.
3216
        * configure.in: Do not test for 3 arg scm_make_vector. Remove
3217
        option --with-cgen-hobbit.
3218
        * cos.h, cos.c, hob-main.c, hob-sup.c, hob-sup.h, hob.sh: Remove.
3219
        * cgen-gh.h, cgen-gh.c, cgen-hob.scm, cgen.c: Likewise.
3220
        * hobbit.c, hobbit.h, hobbit.scm: Likewise.
3221
        * hobscmif.h, hobslib.scm, scmhob.h: Likewise.
3222
        * Makefile.in: Regenerate.
3223
        * config.in: Likewise.
3224
        * aclocal.m4: Likewise.
3225
        * configure: Likewise.
3226
        * README (Hobbit support): Remove.
3227
        * doc/internals.texi (Conventions): Do not mention Hobbit.
3228
        * doc/porting.texi (Supported Guile versions): Likewise.
3229
 
3230
2000-03-16  Frank Ch. Eigler  
3231
 
3232
        * sid-cpu.scm (-gen-sem-switch-engine): Adjust calling &
3233
        callback convention to new sid sidutil::basic_cpu code.
3234
        (-gen-sfrag-engine-fn): Ditto.
3235
        * sid.scm (-create-virtual-insns!): Ditto.
3236
        (-hw-gen-set-quiet-pc): Mark delay slot execution specially in pbb
3237
        mode.
3238
        (cxmake-skip): Implement properly for pbb mode.
3239
 
3240
2000-03-03  Ben Elliston  
3241
 
3242
        * doc/internals.texi: New file.
3243
 
3244
2000-02-29  Ben Elliston  
3245
 
3246
        * doc/rtl.texi (Derived operands): Remove unnecessary footnote.
3247
        * doc/porting.texi: Formatting tweaks.
3248
 
3249
2000-02-25  Nick Clifton  
3250
 
3251
        * desc-cpu.scm (*_cgen_cpu_open): Initialise signed_overflow_ok_p
3252
        field.
3253
 
3254
Thu Feb 24 14:09:01 2000  Doug Evans  
3255
 
3256
        * operand.scm (,make!): Initialize mode-name, not
3257
        mode.
3258
 
3259
2000-02-23  Andrew Haley  
3260
 
3261
        * m32r.cpu (pcmpbz): Make pcmpbz a special (i.e. hidden)
3262
        instruction.
3263
 
3264
2000-02-24  Ben Elliston  
3265
 
3266
        * doc/rtl.texi (Derived operands): Add some cindex entries.
3267
 
3268
2000-02-23  Ben Elliston  
3269
 
3270
        * ia32.cpu (dndo): Move general purpose macro from here ..
3271
        * simplify.inc (dndo): .. to here.
3272
 
3273
2000-02-18  Frank Ch. Eigler  
3274
 
3275
        * arm.cpu (h-tbit): Add c-call setter function.
3276
        (h-mbits): Ditto.
3277
 
3278
2000-02-17  Frank Ch. Eigler  
3279
 
3280
        * sem-frags.scm (-frag-hash-compute!): Add appstuff arg for traversal.
3281
        (-frag-cost-compute!): Ditto.
3282
        * utils.scm (copyright-cygnus): Add Y2K.
3283
        * sid-cpu.scm (@prefix@_pbb_run): Add unsigned& argument.
3284
 
3285
2000-01-25  Nick Clifton  
3286
 
3287
        * desc-cpu.scm (@arch@_cgen_cpu_open): Add code to initialise
3288
        flags field of the CGEN_CPU_TABLE structure.
3289
 
3290
Sun Dec 12 14:20:36 1999  Doug Evans  
3291
 
3292
        * operand.scm (): Renamed from .
3293
        All references updated.
3294
 
3295
Tue Nov 30 11:06:22 1999  Doug Evans  
3296
 
3297
        * ia32.cpu: Rewrite addressing mode support.
3298
 
3299
        * ifield.scm (): New member `follows'.
3300
        (ifld-known-values): New proc.
3301
        (): New method set-word-offset!.
3302
        (ifld-set-word-offset!): New proc.
3303
        (ifld-new-word-offset): New proc.
3304
        (): New method next-word.
3305
        (): New method next-word.
3306
        (ifld-next-word): New proc.
3307
        (ifld-precedes?): New proc.
3308
        (-ifield-parse): New args word-offset,word-length,follows.
3309
        All callers updated.  Handle CISC-style vs RISC-style ifields.
3310
        (-ifield-read): Recognize word-offset,word-length,follows specs.
3311
        (-ifld-parse-follows): New proc.
3312
        (-multi-ifield-make-default-insert): New proc.
3313
        (-multi-ifield-make-default-extract): New proc.
3314
        (-multi-ifield-parse): Provide default values for insert,extract
3315
        handlers if not specified.
3316
        (): New class.
3317
        (derived-ifield?): New predicate.
3318
        (ifld-derived-operand?): New predicate.
3319
        (f-anyof): New global.
3320
        (ifld-anyof?,ifld-anyof-operand?): New predicates.
3321
        (f-derived,ifld-derived?): Delete.
3322
        (ifield-builtin!): Delete init of f-derived.  Init f-anyof.
3323
        * insn.scm (-sub-insn-ifields): New proc.
3324
        (-sub-insn-make!): New proc.
3325
        (multi-insn-instantiate!): Provide initial implementation.
3326
        (-insn-parse): If insn contains "anyof" operands, create a
3327
         object instead of a plain .
3328
        (-parse-insn-format-symbol): Rewrite derived operand handling.
3329
        Add anyof operand handling.
3330
        (-parse-insn-format-ifield-spec): Rewrite.
3331
        (-parse-insn-format-operand-spec): Delete.
3332
        (-parse-insn-format-list): Delete support for `(operand value)'.
3333
        (anyof-operand-format?): Replaces derived-operand-format?.
3334
        * operand.scm (-operand-parse-getter): Improve error messages.
3335
        (-operand-parse-setter): Ditto.
3336
        (): New members args,syntax,base-ifield,encoding,
3337
        ifield-assertion.
3338
        (): Change baseclass from  to
3339
        .  Delete member values.  New members base-ifield,choices.
3340
        (anyof-operand?): New predicate.
3341
        (-derived-parse-encoding,-derived-parse-ifield-assertion): New procs.
3342
        (-derived-operand-parse): Rewrite.
3343
        (-derived-operand-read): Rewrite.
3344
        (-anyof-parse-choice): New proc.
3345
        (-anyof-operand-parse): Rewrite.
3346
        (-anyof-operand-read,define-anyof-operand): New procs.
3347
        (): Rewrite.
3348
        (-anyof-initial-known): New proc.
3349
        (anyof-satisfies-assertions?): New proc.
3350
        (-anyof-merge-syntax,-anyof-merge-encoding): New procs.
3351
        (-anyof-merge-getter,-anyof-merge-setter): New procs.
3352
        (-anyof-merge-semantics,-anyof-merge-ifield-assertion): New procs.
3353
        (-anyof-merge-subchoices,-anyof-all-subchoices): New procs.
3354
        (-anyof-value-from-derived): New proc.
3355
        (-anyof-all-choices-1,anyof-all-choices): New procs.
3356
        (operand-init!): Create define-anyof-operand reader command.
3357
 
3358
        * insn (syntax-break-out): Take syntax as argument instead of insn.
3359
        All callers updated.
3360
        (syntax-make): Move here, from ???.
3361
 
3362
        * types.scm (): Rename accessors from bitrange:foo to
3363
        bitrange-foo. All uses updated.
3364
        (bitrange-next-word): New proc.
3365
 
3366
        * semantics.scm (-solve-expr-fn,rtx-solve): New procs.
3367
 
3368
        * rtl.scm (rtx-canonicalize): Provide initial implementation.
3369
        (rtx-make-const,rtx-make-enum): New procs.
3370
        (rtx-arg1,rtx-arg2): Renamed from -rtx-arg[12].  All callers updated.
3371
        (rtx-mem-addr,rtx-mem-sel): New procs.
3372
        (rtx-change-address): New proc.
3373
        (rtx-make-ifield,rtx-make-operand,rtx-make-local): New proc.
3374
        (rtx-make-set,rtx-single-set?): New procs.
3375
        (rtx-combine): New proc.
3376
 
3377
        * rtl.scm (rtx-traverse): New arg `appstuff'.  All callers updated.
3378
        (rtx-traverse-with-locals): Ditto.
3379
        (-rtx-traverse,-rtx-traverse-*): Ditto.
3380
 
3381
        * rtl.scm (define-subr): New proc.
3382
        (rtl-init!): Create reader command `define-subr'.
3383
 
3384
        * cos.c (_object_mi_p): Ensure argument is an object.
3385
        (indent): New function.
3386
        (_object_print_elms): Add pretty-printing support.
3387
        (_object_print): Ditto.
3388
 
3389
        * hobbit.scm (*reckless-s->c-fun-table*): Add fastcall7.
3390
        (*floats-s->c-fun-table*): Ditto.
3391
        * hobbit.c,hobbit.h: Rebuild.
3392
        * hob-sup.c (fastcall7): New proc.
3393
        * hob-sup.h (fastcall7): Declare.
3394
        * hob-sup.scm (fastcall7): New macro.
3395
 
3396
        * mach.scm (): New member subr-list.
3397
        (current-subr-list,current-subr-add!,current-subr-lookup): New procs.
3398
        (arch-finish!): Reverse recorded subr list.
3399
 
3400
        * read.scm (debug-env): New global.
3401
        (debug-var-names,debug-var,debug-repl-env): New procs.
3402
        (debug-repl): Rewrite.  New arg `env-list'.  All callers updated.
3403
        (debug-quit): Renamed from `continue'.
3404
 
3405
        * simplify.inc (dsmf): New pmacro.
3406
 
3407
        * utils.scm (plus-scan): New proc.
3408
        (split-bits): Rewrite.
3409
        (split-value): New proc.
3410
 
3411
1999-10-13  Doug Evans  
3412
 
3413
        * doc/Makefile.am (DOCFILES): Add notes.texi.
3414
        * doc/Makefile.in: Rebuild.
3415
 
3416
1999-10-11  Doug Evans  
3417
 
3418
        * ifield.scm (ifld-derived?): New proc.
3419
        (f-derived): New global.
3420
        (ifield-builtin!): Create ifield f-derived.
3421
        (): New class.
3422
        (multi-insn?): New predicate.
3423
        (multi-insn-instantiate!): New proc.
3424
        (-insn-parse): Create  objects for insns with derived
3425
        ifields.
3426
        (-parse-insn-format-symbol): Handle derived ifields.
3427
        (-parse-insn-format-ifield-spec): New proc.
3428
        (-parse-insn-format-operand-spec): New proc.
3429
        (-parse-insn-format-list): Simplify.
3430
        (-parse-insn-format): No longer allow (ifield-object value) spec.
3431
        (derived-operand-format?): New proc.
3432
        (insn-alias?): New proc.
3433
        (non-alias-insns): Rewrite.
3434
        (insn-real?): Renamed from real-insn?, all callers updated.
3435
        (virutal-insns): Rewrite.
3436
        (multi-insns): New proc.
3437
        * mach.scm (arch-analyze-insns!): Instantiate multi-insns if present.
3438
        * operand.scm (op-ifield): Renamed from op:ifield, all callers updated.
3439
        Return #f if operand doesn't have an index or if index is not an
3440
        ifield.
3441
        (hw-index-anyof): New proc.
3442
        (-operand-parse): Allow integer indices.
3443
        (): New class.
3444
        (derived-operand?): New predicate.
3445
        (): New class.
3446
        (): New class.
3447
        (-anyof-parse-value,-anyof-operand-parse): New procs.
3448
        (-derived-operand-parse,-derived-operand-read): New procs.
3449
        (define-derived-operand,define-full-derived-operand): New procs.
3450
        (operand-init!): New reader command define-derived-operand.
3451
 
3452
        * utils.scm (list-take): Handle negative amount.
3453
        (element?): Rewrite.
3454
 
3455
1999-10-10  Doug Evans  
3456
 
3457
        * dev.scm: quick-utils.scm renamed to ~/.cgenrc.
3458
 
3459
1999-10-04  Richard Henderson  
3460
 
3461
        * ia64.cpu: Checkpoint.
3462
 
3463
1999-09-29  Doug Evans  
3464
 
3465
        * sim-cpu.scm (-gen-semantic-fn-table): Virtual insns are always valid.
3466
 
3467
        * sim.scm (sim-finish!,x-invalid): Always set pc.  Set vpc based on
3468
        default-insn-bitsize.  Pass vpc to sim_engine_invalid_insn.
3469
 
3470
Wed Sep 29 14:39:39 1999  Dave Brolley  
3471
 
3472
        * sim.scm (sim-finish!): Don't call sim_io_error for invalid insn. Use
3473
        PC returned by sim_engine_invalid_insn.
3474
 
3475
1999-09-28  Doug Evans  
3476
 
3477
        * ia32.cpu: New file.
3478
 
3479
1999-09-25  Doug Evans  
3480
 
3481
        * utils.scm (bit-set?): Fix off by one error.
3482
 
3483
        * rtl-c.scm (s-sequence): Fix non-void-mode result output.
3484
 
3485
        * rtl.scm (hw): Check for valid hardware element before trying to
3486
        get its mode.
3487
 
3488
        * arm.cpu (arm7f cpu): Renamed from arm.  All users updated.
3489
        * arm7.cpu (bx): Fix name of target address operand in assembler spec.
3490
        (*): arm_compute_operand2_foo renamed to compute_operand2_foo.
3491
        * thumb.cpu (*): arm_compute_operand2_foo renamed to
3492
        compute_operand2_foo.
3493
 
3494
        * cgen-sid.scm (sim_arguments): Add support for building defs.h.
3495
        * sid.scm (-hw-gen-set-quiet-pc): Handle #:delay modifier.
3496
        Call delayed_branch/branch methods instead of assigning to `vpc'.
3497
        (,cxmake-skip): Call skip method.
3498
        (-gen-hw-selector): Call rtl-c++ instead of rtl-c.
3499
        (,cxmake-skip): Ditto.
3500
        (-create-virtual-insns!): Ditto.
3501
        (op:read): Call estate-make-for-normal-c++ instead of estate-...-c.
3502
        (op:write): Ditto.
3503
        (op:record-profile): Specify #:output-language "c++".
3504
        * sid-cpu.scm (-gen-insn-attr-decls): Rename @cpu@_insn_attr to
3505
        @arch@_insn_attr.
3506
        (cgen-desc.h): Use @arch@ namespace instead of @cpu@.
3507
        Define enums here.
3508
        (-gen-reg-access-defns): Use rtl-c++ instead of rtl-c.
3509
        (gen-semantic-code): Ditto.
3510
        (-gen-sem-case,-gen-sfrag-code): Ditto.
3511
        (-gen-hardware-types): Delete class @cpu@_cpu_base.
3512
        (cgen-cpu.h): File is now #included by main cpu class, rather than
3513
        subclassing.
3514
        (cgen-defs.h): New proc.
3515
        (-gen-scache-semantic-fn): Change result type to sem_status.
3516
        New local `status'.  Call done_cti_insn/done_insn method at end.
3517
        (cgen-semantics.cxx): Include @cpu@.h instead of @arch@-main.h,
3518
        cgen-ops.h.
3519
        (cgen-sem-switch.cxx): Ditto.
3520
        * sid-decode.scm (-gen-idesc-decls): Update return type of
3521
        @prefix@_sem_fn.
3522
        (cgen-decode.h): Add using namespace @arch@.
3523
        (cgen-decode.cxx): Include @cpu@.h instead of @arch@-main.h.
3524
 
3525
        * rtl-c.scm (): New member output-language.
3526
        (estate-output-language-c?,estate-output-language-c++?): New procs.
3527
        (,vmake!): Handle #:output-language.
3528
        (estate-make-for-normal-rtl-c++): New proc.
3529
        (rtl-c++-parsed,rtl-c++): New proc.
3530
        (s-c-call): Invoke cpu class method if c++.
3531
        (join): Use s-c-raw-call.
3532
 
3533
        * rtl-c.scm (subword): Don't pass current_cpu to SUBWORD.
3534
        (nop): Rewrite.
3535
 
3536
        * rtl-c.scm (delay): Mark the sequence as #:delay'd.
3537
        * rtl.scm (): New member `modifiers'.
3538
        (,vmake!): Handle #:modifiers.
3539
        (estate-with-modifiers): New proc.
3540
 
3541
        * rtl.scm (rtx-side-effects?): New proc.
3542
        (rtx-canonical-bool): Don't change expr if it has side effects.
3543
        * semantics.scm (-simplify-expr-fn): Handle exprs with side-effects
3544
        better.
3545
 
3546
1999-09-23  Doug Evans  
3547
 
3548
        * sim.scm (gen-scache-type): Fix typo in last patch.
3549
 
3550
Tue Sep 21 17:12:55 1999  Dave Brolley  
3551
 
3552
        * sim.scm (gen-scache-type): Add last_insn_p flag for parallel support.
3553
 
3554
1999-09-05  Doug Evans  
3555
 
3556
        * sid.scm (,cxmake-skip): New method.
3557
        (,cxmake-skip): New method.
3558
 
3559
        * decode.scm (decode-build-table): Delete args startbit,index-list.
3560
        All callers updated.
3561
        * utils-sim.scm (gen-decoder): Delete args startbit,index-list.
3562
        All callers updated.
3563
        * sim-decode.scm (-gen-decode-fn): Always pass 0 for startbit
3564
        to decode-get-best-bits.
3565
        * sid-decode.scm (-gen-decode-fn): Ditto.
3566
 
3567
        * hardware.scm (hw-bits): New proc.
3568
        (-hw-parse): New arg layout.  All callers updated.
3569
        (define-full-hardware): New arg layout.  All callers updated.
3570
        (-hw-validate-layout): New proc.
3571
        (-hw-create-[gs]etter-from-layout): New procs.
3572
        (,parse!): Handle layout spec.
3573
        * types.scm (type-bits): New proc.
3574
 
3575
        * sem-frags.scm (-frag-cost-compute!): Fix calculation of
3576
        UNARY, BINARY, TRINARY rtxs.
3577
 
3578
        * attr.scm (,parse-value): Allow strings.
3579
        * enum.scm (parse-enum-vals): Use reverse! instead of reverse.
3580
        Support '- as "unused spot" indicator.
3581
 
3582
1999-09-03  Doug Evans  
3583
 
3584
        * pgmr-tools.scm (pgmr-pretty-print-insn-format): Fix typo.
3585
 
3586
1999-09-02  Doug Evans  
3587
 
3588
        * rtx-funcs.scm (subword): Fix mode spec of `value'.
3589
 
3590
        * rtl.scm (-rtx-traverse-operands): Fix debugging message
3591
        construction.
3592
        (tstate-make): New arg `depth'.  All callers updated.
3593
        (tstate-depth,tstate-set-depth!): New procs.
3594
        (tstate-incr-depth!,tstate-decr-depth!): New procs.
3595
        (-rtx-traverse-operands): Indent debugging output by traversal depth.
3596
        (-rtx-traverse): Ditto.  Keep track of traversal depth.
3597
 
3598
1999-09-01  Doug Evans  
3599
 
3600
        * sim-decode.scm (-gen-decoder+supporting cast): Move to utils-sim.scm.
3601
        * sid-decode.scm (-gen-decoder+supporting cast): Ditto.
3602
        * utils-sim.scm: Decoder generator support moved here.
3603
        (-decode-equiv-entries?,-decode-sort-entries): New procs.
3604
        (-gen-decoder-switch): Sort entries for more fall-throughs.
3605
 
3606
        * Makefile.am (gas-test,sim-test): Specify ISA when invoking cgen.
3607
        * Makefile.in: Rebuild.
3608
        * sim-test.scm (build-sim-testcase): Add logging message.
3609
        * dev.scm (cload): Recognize SIM-TEST application.
3610
        (load-stest): Set APPLICATION to SIM-TEST.
3611
 
3612
        * desc-cpu.scm (-gen-hash-defines): Add \n to output.
3613
 
3614
        * ifield.scm (-ifield-parse): Allow bit numbers up to 127.
3615
        * mach.scm (-isa-parse): Allow insn bitsizes from 8 to 128.
3616
        * mode.scm (mode-make-int,mode-make-uint): Allow values up to 64 bits.
3617
 
3618
        * insn.scm (syntax-break-out): Handle ${foo}.
3619
 
3620
Sun Aug 29 11:11:15 1999  Doug Evans  
3621
 
3622
        * Makefile.am (noinst_PROGRAMS,noinst_LIBRARIES): Delete.
3623
        (bin_PROGRAMS): Define.
3624
        (CGEN_HOB_INPUT_FILES): Remove $(srcdir)/.
3625
        (cgen-hob.c): Prepend $(srcdir)/ here.
3626
        (APPDESCFILES,OPCODESFILES,SIMFILES,pkgdata_SCRIPTS): Define.
3627
        (libcpu_a_SOURCES): Delete.
3628
        (cgen_DEPENDENCIES,cgen_LDADD): Rewrite.
3629
        (CGEN_HOB_OBJ,CGENOBJS): New variables.
3630
        * configure.in (LIBS): Replace -Wl,-rpath with -R.
3631
        Add AC_CHECK_LIB(guile,main).
3632
        * Makefile.in: Rebuild.
3633
        * doc/Makefile.in: Rebuild.
3634
        * aclocal.m4: Rebuild.
3635
        * config.in: Rebuild.
3636
        * configure: Rebuild.
3637
 
3638
1999-08-28  Doug Evans  
3639
 
3640
        Rename rtx functions from name: to name, accept optional leading
3641
        modifier and mode.
3642
        VM -> VOID, DM -> DFLT, use DFLT instead of VM for default mode.
3643
        * attr.scm (-attr-eval): Update.
3644
        * hardware.scm (hw-mode-ok?): Rename arg mode to new-mode-name.
3645
        (,mode-ok?): Disallow VOID.
3646
        (,mode-ok?): Disallow VOID.
3647
        (,mode-ok?): Disallow VOID.
3648
        * mode.scm (mode-name?): New proc.
3649
        (VOID): Renamed from VM.
3650
        (DFLT): Renamed from DM.
3651
        (mode-builtin!): Update.
3652
        * opcodes.scm (,gen-insert): Update.
3653
        (,gen-extract): Update.
3654
        (,gen-insert,gen-extract): Update.
3655
        * operand.scm (op:mode): Update.
3656
        (,make!): Update.
3657
        (op:new-mode): Update.
3658
        (-operand-read): Update.
3659
        * rtl.scm (-rtx-valid-types): Add OPTIONS, EXPLNUMMODE,
3660
        NONVOIDMODE, DFLTMODE.  Rename VMMODE to VOIDMODE.
3661
        (def-rtx-dual-mode,define-rtx-dual-mode): Delete.
3662
        (-rtx-lazy-sem-mode): Renamed from -rtx-mode.  All callers updated.
3663
        (rtx-make): Call -rtx-munge-mode&options.
3664
        (rtx accessors): Rewrite.
3665
        (rtx-pretty-name): Update.
3666
        (-rtx-traverse-*): Update.
3667
        (-rtx-traverse-explnummode,-rtx-traverse-nonvoidmode): New procs.
3668
        (-rtx-traverse-voidmode,-rtx-traverse-dfltmode): New procs.
3669
        (-rtx-make-traverse-table): Update.
3670
        (-rtx-traverse-operands): Update.
3671
        (-rtx-option?,-rtx-option-list?): New procs.
3672
        (-rtx-munge-mode&options): New proc.
3673
        (-rtx-traverse-expr): Call -rtx-munge-mode&options.
3674
        (-rtx-traverse): Update.
3675
        (rtx-traverse,rtx-traverse-with-locals,rtx-compile): Update.
3676
        (rtx-compile-time-constant?): Update.
3677
        (rtx-true?,rtx-false?,rtx-true,rtx-false): Update.
3678
        (rtx-value): Update.
3679
        (hw,reg,mem): Renamed from foo:.  Update.  All callers updated.
3680
        * rtx-funcs.scm (*): Update.
3681
        * rtl-c.scm (rtl-c-get): Update.
3682
        (rtl-c-set-quiet,rtl-c-set-trace): Update.
3683
        (s-c-call,s-c-raw-call): Update.
3684
        (s-boolifop,s-convop,s-if,s-cond): Update.
3685
        (s-case-vm,-gen-non-vm-case-test,s-case): Update.
3686
        (-par-replace-set-dests,-par-replace-set-srcs): Update.
3687
        (s-parallel,s-sequence): Update.
3688
        (rtl-c-build-table): Update.
3689
        * sem-frags.scm (-frag-hash-compute!): Update.
3690
        (-frag-cost-compute!): Improperly handle unary,binary,trinary ops
3691
        for temporary bug compatibility with previous version.
3692
        (-frag-expr-locals,-frag-expr-stmts): Update.
3693
        (-frag-compute-desired-frags,-frag-pick-best): Update.
3694
        * semantics.scm (-simplify-expr-fn): Update.
3695
        (rtx-simplify): Update.
3696
        (-rtx-ref-type): Update.  Account for modifiers.
3697
        (-build-operand!,-build-reg-operand!,-build-mem-operand!): Update.
3698
        (-build-ifield-operand!): Update.
3699
        (-build-known-values): Update.
3700
        (semantic-compile): Update.
3701
        (-gen-reg-access-defns): Update.
3702
        (gen-semantic-code,-gen-sem-case): Update.
3703
        (-gen-sfrag-code,-gen-sfrag-case): Update.
3704
        * sim-cpu (gen-semantic-code): Update.
3705
        * sim.scm (,gen-write,cxmake-skip): Update.
3706
        (,gen-write,gen-set-macro,cxmake-get-raw): Update.
3707
        (-hw-cxmake-get): Update.
3708
        (,cxmake-get,gen-set-quiet,gen-write): Update.
3709
        (,cxmake-get): Update.
3710
        (,gen-type,gen-read,cxmake-get): Update.
3711
        (,gen-set-quiet,gen-set-trace): Update.
3712
        (,cxmake-get): Update.
3713
        (sim-finish!): Update.
3714
        * utils-gen.scm (-gen-ifld-extract-base): Update.
3715
        (-gen-ifld-extract-beyond): Update.
3716
        (gen-multi-ifld-extract): Update.
3717
        * sid-decode.scm (-decode-expr-ifield-values-used): Update.
3718
        * sid.scm (,gen-write): Update.
3719
        (-gen-decode-insn-globals): Update.
3720
        (-hw-cxmake-get): Update.
3721
        (,cxmake-get-raw): Update.
3722
        (,cxmake-get,gen-set-quiet,gen-write): Update.
3723
        (,cxmake-get): Update.
3724
        (,gen-type,gen-read,cxmake-get): Update.
3725
        (,gen-set-quiet,gen-set-trace): Update.
3726
        (,cxmake-get): Update.
3727
        (-create-virtual-insns!): Update.
3728
        (-decode-split-build-assertion): Update.
3729
        * *.cpu: Update.
3730
        * simplify.inc: Update.
3731
 
3732
1999-08-20  Doug Evans  
3733
 
3734
        * sim.scm (-op-gen-queued-write): Fix memory address calculation.
3735
        Prefix queue function name with sim_ instead of @cpu@_.
3736
 
3737
        * sim.scm (-with-parallel-only?): New global.
3738
        (option-init!): Initialize it.
3739
        (option-set!): Set it.
3740
        (with-parallel-only?): New proc.
3741
        * sim-decode.scm (-gen-decode-insn-globals): Don't include parallel
3742
        and writeback markers if with-parallel-only.
3743
        (-gen-idesc-init-fn): Update.
3744
        * sim-cpu.scm (cgen-cpu.h): Don't generate struct parexec if
3745
        with-generic-write.
3746
 
3747
Wed Aug 18 15:04:30 1999  Doug Evans  
3748
 
3749
        * sim-cpu.scm (-gen-semantic-fn-table): Handle unsupported insns
3750
        with the invalid insn handler.
3751
 
3752
        * utils.scm (list-maybe-ref): New proc.
3753
 
3754
        * mach.scm (-isa-parse): Signal error if isa wasn't specified in
3755
        define-arch.
3756
        (-mach-parse): Signal error if mach wasn't specified in define-arch.
3757
 
3758
        * i960.cpu (test*-*): Delete `expr' arg.
3759
        (test-op,branch-op): Update.
3760
 
3761
1999-08-09  Doug Evans  
3762
 
3763
        * sim.scm (gen-reg-getter-fn,gen-reg-setter-fn): New procs.
3764
        (gen-reg-access-decl): Replace `name' arg with `hw'.  All callers
3765
        updated.
3766
        (gen-reg-access-defn): Ditto.
3767
        (-gen-hw-addr): Rewrite.
3768
        (-op-gen-queued-write): Rewrite.
3769
        * sim-cpu.scm (-gen-cpu-reg-access-decls):
3770
        (-gen-scache-semantic-fn): Handle with-generic-write.
3771
        (-gen-no-scache-semantic-fn): Ditto.
3772
 
3773
1999-08-08  Doug Evans  
3774
 
3775
        * utils-gen.scm (gen-define-ifmt-ifields): Tweak output.
3776
 
3777
        * sim.scm (-with-generic-write?): New global.
3778
        (option-init!): Initialize it.
3779
        (option-set!): Set it.
3780
        (with-generic-write?): New proc.
3781
        (-gen-hw-addr): New proc.
3782
        (-op-gen-queued-write): New proc.
3783
        (-op-gen-set-{quiet,trace}-parallel): Use it if with-generic-write?.
3784
 
3785
        * sim-cpu.scm (-gen-hardware-types): Output code with parallel support
3786
        turned off.
3787
        (-gen-sem-switch): Preserve existing with-parallel? value.
3788
        (-gen-sem-parallel-switch): Ditto.
3789
        (-gen-write-case): Add /indent support.
3790
        (cgen-write.c): Rewrite.
3791
 
3792
        * utils.scm (-current-print-state): New global.
3793
        (make-print-state): New proc.
3794
        (pstate-indent,pstate-set-indent!): New procs.
3795
        (pstate-cmd?,pstate-cmd-do): New procs.
3796
        (/indent): New global.
3797
        (/indent-set,/indent-add): New procs.
3798
        (string-write): Set -current-print-state.
3799
        (-string-write): New arg pstate, all callers updated.
3800
        Handle print-state commands.
3801
        (-string-list-flatten): New proc.
3802
        (string-list->string): Use it.
3803
 
3804
        * sim-cpu.scm (-gen-sem-fn-name): Move here from sim-decode.scm.
3805
        (-gen-sem-fn-table-entry): New proc.
3806
        (-gen-semantic-fn-table): New proc.
3807
        (-gen-scache-semantic-fn): Make fn static.
3808
        (-gen-no-scache-semantic-fn): Ditto.
3809
        (cgen-semantics.c): Define macro SEM_FN_NAME.
3810
        * sim-decode.scm (-gen-decode-insn-globals): Delete FMT,TYPE,IDX,
3811
        FAST,FULL.  Update @cpu@_insn_sem contents.
3812
        (-gen-semf-fn-name): Delete.
3813
        (-gen-sem-fn-decls): Delete.
3814
        (-gen-idesc-decls): Output prototypes of @cpu@_sem_init_idesc_table,
3815
        @cpu@_semf_init_idesc_table.
3816
        (-gen-idesc-init-fn): Update.  Don't initialize pointers to semantic
3817
        handlers here.
3818
        (cgen-decode.h): Print sfmt enum.
3819
        * sid-decode.scm (-gen-semf-fn-name): Delete.
3820
        * utils-gen.scm (gen-sfmt-enum-decl): New proc.
3821
 
3822
        * iformat.scm (sfmt-build): Rename sformats from fmt-foo to sfmt-foo.
3823
        (ifmt-compute!): Ditto.
3824
        * sim-decode.scm (-gen-decoder-switch): Ditto.
3825
        * sid-decode.scm (-gen-decode-expr-entry): Ditto.
3826
        (-gen-decoder-switch): Ditto.
3827
 
3828
        * insn.scm (insn-virtual?): New proc.
3829
 
3830
        * enum.scm (gen-enum-decl): Speed up, build string as list and then
3831
        convert to string.
3832
        * mach.scm (): attr-list is now a pair of lists.
3833
        (current-attr-list): Rewrite.
3834
        (current-attr-add!,current-attr-lookup): Rewrite.
3835
        * sim.scm (gen-cpu-insn-enum-decl): Replace append with append!.
3836
 
3837
1999-08-06  Richard Henderson  
3838
 
3839
        * ia64.cpu: Initial checkpoint.
3840
 
3841
1999-08-06  Doug Evans  
3842
 
3843
        * pmacros.scm (-pmacro-apply): Fix definition, takes only 1 arg.
3844
        (pmacros-init!): Update .apply help string.
3845
 
3846
1999-08-03  Doug Evans  
3847
 
3848
        * sim.scm (-hw-gen-set-quiet-pc): Update call to SEM_BRANCH_VIA_CACHE.
3849
        (,cxmake-skip): New method.
3850
        (,cxmake-skip): New method.
3851
        (-gen-argbuf-fields-union): Add branch_target to `chain' member.
3852
        (gen-argbuf-type): New member `skip_count'.
3853
        (sim-finish!): Update calls to @cpu@_pbb_cti_chain.
3854
        * utils-cgen.scm (atlist-cti?): Don't include SKIP-CTI insns.
3855
 
3856
        * utils-sim.scm: New file.
3857
        * dev.scm (load-sim): Load it.
3858
        (load-sid): Load it.
3859
        * cgen-sid.scm: Load it.
3860
        * cgen-sim.scm: Load it.
3861
        * iformat.scm (): New member sbuf, not initialized by
3862
        default make.
3863
        * rtx-funcs.scm (skip): Rewrite.
3864
        * rtl-c.scm (skip): Rewrite.
3865
        * m32r.cpu (sc,snc): Update `skip' usage.
3866
        * mode.scm (mode-real-mode): New proc.
3867
        * sem-frags.scm (-frag-split-by-sbuf): Rename from -frag-split-by-sfmt.
3868
        Distinguish fragments by the  they use.
3869
        * sim.scm (gen-profile-index-type): Delete.
3870
        (ifield argbuf support): Move to utils-sim.scm and sim-decode.scm.
3871
        (-gen-ifld-decoded-val): Delete, use gen-extracted-ifld-value instead.
3872
        (hardware argbuf support): Move to utils-sim.scm and sim-decode.scm.
3873
        (operand argbuf support): Move to utils-sim.scm and sim-decode.scm.
3874
        (-gen-argbuf-elm): Rewrite.
3875
        (-gen-argbuf-hw-elm): Delete.
3876
        (-gen-argbuf-fields-union): Generate structs for each sbuf instead
3877
        of each sfmt.
3878
        (-sim-sformat-argbuf-list,-sim-insns-analyzed?): New globals.
3879
        (sim-init!): Initialize them.
3880
        (sim-analyze-insns!): Set them.
3881
        (current-sbuf-list): New proc.
3882
        * sim-cpu.scm (-gen-no-scache-semantic-fn): Update calls to
3883
        gen-sfmt-op-argbuf-defns,gen-sfmt-op-argbuf-assigns.
3884
        * sim-model.scm (-gen-model-insn-fn): Ditto.
3885
        * sim-decode.scm (-gen-extract-decls): Delete.
3886
        (-gen-record-argbuf-ifld,-gen-trace-argbuf-ifld): New procs.
3887
        (,gen-extract,gen-trace-extract): Move here from
3888
        sim.scm.
3889
        (
3890
        (
3891
        (-gen-op-extract,-gen-op-trace-extract): New procs.
3892
        (gen-sfmt-op-argbuf-defns,gen-sfmt-op-argbuf-assigns): Rename from
3893
        gen-sfmt-argvars-foo and rewrite.
3894
        (-gen-record-args): Rewrite.
3895
        (-gen-extract-case): Tweak.
3896
        * sid.scm (gen-profile-index-type): Delete.
3897
        (ifield argbuf support): Move to utils-sim.scm.
3898
        (-gen-ifld-decoded-val): Delete, use gen-extracted-ifld-value instead.
3899
        (hardware argbuf support): Move to utils-sim.scm and sid-decode.scm.
3900
        (operand argbuf support): Move to utils-sim.scm and sid-decode.scm.
3901
        (-sim-sformat-argbuf-list): New global.
3902
        (sim-init!): Initialize it.
3903
        (sim-analyze-insns!): Set it.
3904
        (current-sbuf-list): New proc.
3905
        * sid-decode.scm (-gen-argbuf-elm): Rewrite.
3906
        (-gen-argbuf-hw-elm): Delete.
3907
        (-gen-argbuf-fields-union): Generate structs for each sbuf instead
3908
        of each sfmt.
3909
        (-gen-record-argbuf-ifld,-gen-trace-argbuf-ifld): New procs.
3910
        (-gen-extract-decls): Delete.
3911
        (,gen-extract,gen-trace-extract): Move here from
3912
        sid.scm.
3913
        (
3914
        (
3915
        (-gen-op-extract,-gen-op-trace-extract): New procs.
3916
        (gen-sfmt-op-argbuf-defns,gen-sfmt-op-argbuf-assigns): Rename from
3917
        gen-sfmt-argvars-foo and rewrite.
3918
        (-gen-record-args): Rewrite.
3919
        (-gen-extract-case): Tweak.
3920
 
3921
        * cgen-gh.c (gh_putc,gh_puts): New functions.
3922
        * cgen-gh.h (gh_putc,gh_puts): Declare them.
3923
        * cos.c (_object_print_elms,_object_print): Use them.
3924
        * hob-sup.c (fastcall_print): Use them.
3925
        * configure.in: Check for scm_gen_puts, scm_puts.
3926
        * config.in: Rebuild.
3927
        * configure: Rebuild.
3928
        * aclocal.m4: Rebuild.
3929
        * Makefile.in: Rebuild.
3930
 
3931
        * dev.scm (load-opc): Use load instead of maybe-load.
3932
        (load-gtest,load-sim,load-stest): Ditto.
3933
        (load-sid): Ditto.
3934
 
3935
1999-07-23  Doug Evans  
3936
 
3937
        * sid-cpu.scm (-gen-sem-switch-engine): Move definition of `count'
3938
        up to avoid g++ 'goto crosses initialization' warning.
3939
        (-gen-sfrag-engine-fn): Delete vpc arg to NEXT_FRAG.
3940
        (-gen-sfrag-case): Update use of NEXT_FRAG.
3941
 
3942
1999-07-22  Doug Evans  
3943
 
3944
        * cos.c (cos_init): Protect _make_x_symbol from garbage collection.
3945
 
3946
        * read.scm: Load sem-frags.scm.
3947
        * sem-frags.scm (*): Lots rewritten.
3948
        * sid.scm (-with-sem-frags?): New global
3949
        (with-sem-frags?): New proc.
3950
        (option-init!): Initialize -with-sem-frags?.
3951
        (option-set!): Recognize with-sem-frags.
3952
        (sim-init!): Call sim-sfrag-init! if with-sem-frags.
3953
        * sid-cpu.scm (cgen-sem-switch.cxx): Generate semantic frag version
3954
        if asked to.
3955
        (-gen-sfrag-engine-decls): New proc.
3956
        (-gen-sfrag-code,-gen-sfrag-case,-gen-sfrag-enum-decl): New procs.
3957
        (-gen-sfrag-engine-frag-table,-gen-sfrag-engine-fn): New procs.
3958
        (-gen-sfrag-engine): New proc.
3959
        (-gen-sem-case): Emit setup-semantics if specified.
3960
        (-gen-sem-switch-engine): Update init/use of computed goto label.
3961
        * sid-decode.scm (-gen-decode-expr-entry): Fetch ifield values
3962
        from local vars.
3963
        (-gen-idesc-decls): Replace sem_address with cgoto.
3964
        (-gen-scache-decls): Rewrite definition of `execute' member.
3965
        * arm.cpu (arm isa): Enable decode-splits.
3966
        * arm7.cpu (multiply insns): Rename result to mul-result.
3967
 
3968
        Rename decode-specialize to decode-split.
3969
        * decode.scm (*): Update.
3970
        * insn.scm (*): Update.
3971
        * mach.scm (*): Update.
3972
        * sid.scm (*): Update.
3973
 
3974
1999-07-19  Doug Evans  
3975
 
3976
        Record objects as a smob.
3977
        * cos.c (scm_tc16_object): New static global.
3978
        (cos_init): Initialize it.
3979
        (OBJECT_P,OBJECT_ELEMENTS,OBJECT_CLASS_DESC): Update macros.
3980
        (OBJECT_CLASS,OBJECT_ELEMENT_OFFSET): Update.
3981
        (_object_tag): Delete.
3982
        (_object_make_smob): New function.
3983
        (_object_make_x,_object_make_with_values_x): Rewrite.
3984
        (_object_elements,_object_class_desc): Rewrite.
3985
        (_object_copy,object_p): Rewrite.
3986
        (_object_specialize): Rewrite.
3987
        (_object_print_elms,_object_print): New functions.
3988
        (object_smob): New static global.
3989
        (default_make_x): Use OBJECT_ELEMENT_OFFSET instead of magic number.
3990
 
3991
        * cos.c (_make_x_symbol): New static global.
3992
        (object_make): Use it.
3993
        (cos_init): Initialize it.
3994
 
3995
1999-07-15  Doug Evans  
3996
 
3997
        * rtl-c.scm (ifield): Back out last patch, use estate-ifield-var?
3998
        instead to determine whether to use FLD macro.
3999
        (): New member ifield-var?.
4000
        (,vmake!): Recognize #:ifield-var?.
4001
        * utils-gen.scm (-gen-ifld-extract-base): Specify #:ifield-var? #f.
4002
        (-gen-ifld-extract-beyond,gen-multi-ifld-extract): Ditto.
4003
 
4004
        * rtl.scm (rtx-sequence-assq-locals): New proc.
4005
 
4006
        * cos.scm (-object-error): Don't crash on non-objects.
4007
 
4008
        * Makefile.am (CLEANFILES): Add hobbit.
4009
        * Makefile.in: Rebuild.
4010
 
4011
        * rtl-c.scm (s-c-call): Delete unnecessary code.
4012
 
4013
1999-07-14  Doug Evans  
4014
 
4015
        * rtl-c.scm (ifield): Always reference value via `FLD'.
4016
 
4017
        * cos.c (elm_bound_p): Return problem SCM boolean values.
4018
 
4019
        * utils-cgen.scm (display-argv): New proc.
4020
        * cgen-opc.scm (cgen): Call it.
4021
        * cgen-sim.scm (cgen): Ditto.
4022
        * cgen-gas.scm (cgen): Ditto.
4023
        * cgen-stest.scm (cgen): Ditto.
4024
        * cgen-sid.scm (cgen): Ditto.
4025
 
4026
1999-07-05  Doug Evans  
4027
 
4028
        * opc-asmdis.scm (-gen-parse-switch): New local var `junk'.
4029
        * opc-ibld.scm (-gen-insert-switch): Initialize result to NULL.
4030
        (-gen-extract-switch): Initialize result to 1.
4031
        * opcodes.scm (gen-ifield-default-type): New proc.
4032
        (gen-ifield-value-decl): Renamed from gen-ifield-type.  All callers
4033
        updated.
4034
        (,gen-insert): Handle non-ifield indices.
4035
        (,gen-extract): Ditto.
4036
        (,gen-parse): Ditto.
4037
        (,gen-print): Ditto.
4038
        (,gen-parse): Ditto.
4039
        (,gen-print): Ditto.
4040
        (,gen-fget): Ditto.
4041
        (,gen-fset): Ditto.
4042
 
4043
        * sim.scm (-gen-hw-index-raw): Handle scalar indices.
4044
        (-gen-hw-index): Ditto.
4045
        * sid.scm (-gen-hw-index-raw): Handle scalar indices.
4046
        (-gen-hw-index): Ditto.
4047
 
4048
        * sem-frags.scm: New file.
4049
 
4050
        * attr.scm (attr-parse): Add better checking of input.
4051
 
4052
        * hardware.scm (-hw-parse-getter): Renamed from -hw-parse-get.
4053
        All uses updated.
4054
        (-hw-parse-setter): Renamed from -hw-parse-set.  All uses updated.
4055
 
4056
        * ifield.scm (ifld-nil?): New proc.
4057
 
4058
        * operand.scm (): New members getter,setter.
4059
        (,make!): New args getter,setter.  All uses updated.
4060
        (op:getter,op:setter): New procs.
4061
        (,field-start): Return 0 for non-ifield indices.
4062
        (,field-length): Return 0 for non-ifield indices.
4063
        (-operand-parse-getter,-operand-parse-setter): New procs.
4064
        (-operand-parse): New args getter,setter.  All callers updated.
4065
        Always use hw-index-scalar for scalar operands.
4066
        (-operand-read): Handle getter,setter.
4067
        (define-full-operand): New args getter,setter.  All uses updated.
4068
        * semantics.scm (-build-ifield-operand!): Update.
4069
        (-build-index-of-operand!): Update.
4070
        * sim.scm (,cxmake-get): If operand has getter, use it.
4071
        * simplify.inc (define-normal-operand): Update.
4072
 
4073
        * rtl.scm (abs,sqrt,cos,sin,min,max,umin,umax): New rtx fns.
4074
        * rtl-c.scm (s-unop): Indirect fp ops through fpu op vector.
4075
        (s-binop,s-cmpop,s-convop): Ditto.
4076
        (abs,sqrt,cos,sin,min,max,umin,umax): New rtx fns.
4077
        * sparc.cpu (insn-fmt2): Add FPOPS1,FPOPS2.
4078
        (fcc-tests): New insn-enum.
4079
        (fcc-value): Rename from fcc-type.
4080
        * sparcfpu.cpu: New file.  All fp support moved here.
4081
 
4082
        * rtl.scm (): New member class.
4083
        (rtx-class-*?): New procs.
4084
        (def-rtx-node): New arg class.  All callers updated.
4085
        (def-rtx-syntax-node,def-rtx-operand-node,def-rtx-dual-node): Ditto.
4086
        * rtx-funcs.scm (*): Specify class.
4087
 
4088
        * utils-cgen.scm (context-make-reader): New proc.
4089
 
4090
        * utils.scm (assert-fail-msg): New variable.
4091
        (assert): Use it.
4092
        (list-drop,list-tail-drop): New procs.
4093
 
4094
1999-06-22  Doug Evans  
4095
 
4096
        * desc-cpu.scm (-gen-hash-defines): Restore generation of
4097
        CGEN_MIN_INSN_SIZE deleted on March 22.
4098
 
4099
        * ifield.scm (,needed-iflds): New method.
4100
        (,needed-iflds): New method.
4101
        (ifld-needed-iflds): New proc.
4102
        (multi-ifield?): New proc.
4103
        * iformat.scm (): Delete member ifmt.  New members length,iflds.
4104
        (-sfmt-search-key): Include insn length in key.
4105
        (-sfmt-order-iflds,-sfmt-used-iflds): New procs.
4106
        (): Delete members ifmt-key,sfmt-key.  New member used-iflds.
4107
        (-ifmt-lookup-ifmt!): Compute key here.
4108
        (-ifmt-lookup-sfmt!): Compute key here.  Delete arg ifmt.
4109
        All callers updated.
4110
        (ifmt-build): Delete arg desc.  New args search-key,iflds.
4111
        All callers updated.
4112
        (sfmt-build): Delete args desc,ifmt.  New args search-key,cti?,
4113
        in-ops,out-ops,sorted-used-iflds.  All callers updated.
4114
        * minsn.scm (minsn-make-alias): Use insn-set-ifmt!.  Update call
4115
        to ifmt-build.
4116
        * operand.scm (op-iflds-used): New proc.
4117
        * utils-gen.scm (gen-ifld-type): Move here from sim.scm
4118
        and sim-cpu.scm.
4119
        And from sid.scm,sid-cpu.scm as well.
4120
        (gen-ifld-extract-decl,-gen-ifld-extract-base): Ditto.
4121
        (-gen-extract-word,-gen-ifld-extract-beyond): Ditto.
4122
        (gen-ifld-extract,gen-multi-ifld-extract): Ditto.
4123
        (gen-extracted-ifld-value): Ditto.
4124
        (-extract-chunk-specs): Ditto.
4125
        (gen-define-ifields,gen-define-ifmt-ifields): Ditto.
4126
        (-extract-chunk,-gen-extract-beyond-var-list): Ditto.
4127
        (gen-extract-ifields,gen-extract-ifmt-ifields): Ditto.
4128
        (-extract-insert-subfields): New function.
4129
        * sim.scm (gen-record-argbuf-ifld): Renamed from gen-ifld-extract.
4130
        (gen-record-argvar-ifld): Renamed from gen-ifld-extract-argvar.
4131
        * sim-cpu.scm (-gen-extract-ifmt-macro): Replace calls to
4132
        gen-define-ifields with gen-define-ifmt-ifields.  Ditto for
4133
        gen-extract-foo.
4134
        (-gen-no-scache-semantic-fn): Ditto.
4135
        (-gen-sem-case): Ditto.
4136
        (-gen-read-case): Update calls to gen-define-ifields,
4137
        gen-extract-ifields.
4138
        * sim-decode.scm (-gen-record-args): Update.
4139
        (-gen-sfmt-argvars-assigns): Update.
4140
        (-gen-extract-case): Update.
4141
        * sim-model.scm (-gen-model-insn-fn): Replace calls to
4142
        gen-define-ifields with gen-define-ifmt-ifields.  Ditto for
4143
        gen-extract-foo.
4144
        * sid.scm (gen-ifld-argbuf-defn): Use gen-ifld-type.
4145
        (gen-record-argbuf-ifld): Rename from gen-ifld-extract.
4146
        (gen-record-argvar-ifld): Rename from gen-ifld-extract-argvar.
4147
        * sid-decode.scm (-gen-decode-expr-entry): Update calls to
4148
        gen-define-ifields, gen-extract-ifields.
4149
        (-gen-record-args): Update.
4150
        (gen-sfmt-argvars-assigns): Update.
4151
        (-gen-extract-case): Replace calls to gen-define-ifmt-ifields
4152
        with gen-define-ifields.  Ditto for gen-extract-foo.
4153
        (-gen-decode-fn): Use gen-ifld-extract-decl/gen-ifld-extract
4154
        procs rather than method calls.
4155
 
4156
1999-06-18  Doug Evans  
4157
 
4158
        * sid.scm (-create-virtual-insns!): New local `context', pass it
4159
        to insn-read.
4160
 
4161
        * rtl.scm (-rtx-traverse): Output symbol shortcuts in source form,
4162
        (operand name) not (operand object), (local name) not (local object).
4163
        (rtx-traverse-with-locals): New proc.
4164
        (-compile-expr-fn): New proc.
4165
        (rtx-compile): Rewrite.
4166
        * rtl-c.scm (rtl-c-get): Handle operand/local names for src arg.
4167
        (rtl-c-set-quiet): Don't accept operand/local names for dest arg.
4168
        (rtl-c-set-trace): Ditto.
4169
        (operand define-fn): Recognize operand name argument.
4170
        (local define-fn): Recognize sequence temp name argument.
4171
        * rtx-funcs.scm (operand): Argument is operand name, not object,
4172
        so call current-op-lookup.
4173
        (local): Similarily, so call rtx-temp-lookup.
4174
 
4175
        * rtl.scm (rtx-field?): Use rtx-name instead of car.
4176
        (rtx-operand?): Ditto.
4177
        (rtx-pretty-name): Ditto.
4178
        (rtx-local-obj): Flag symbol argument as an error.
4179
        (rtx-local-name): New proc.
4180
        (rtx-sequence-locals,rtx-sequence-exprs): New procs.
4181
 
4182
        * rtl.scm (-rtx-traverse-operands): Fix debugging output of arg-types.
4183
 
4184
        * read.scm (debug-repl): Renamed from -debug-repl.  All callers
4185
        updated.
4186
 
4187
        * arm7.cpu (do-word/byte-store): Use (trunc: QI rd) rather than
4188
        (and: QI rd #xff).
4189
 
4190
        * hobbit.scm (*reckless-s->c-fun-table*): Add fastcall4, fastcall6.
4191
        (*floats-s->c-fun-table*): Ditto.
4192
        * hobbit.c,hobbit.h: Rebuild.
4193
        * rtl.scm (-rtx-traverse-expr): Use fastcall6.
4194
        * semantics.scm (rtx-simplify): Use /fastcall-make.
4195
 
4196
        * iformat.scm (-sfmt-search-key): Don't include memory modes.
4197
 
4198
        * insn.scm (): Delete members condition, compiled-condition.
4199
        (,make!): Update
4200
        ( getters,setters): Update.
4201
        (-insn-parse,insn-read,define-full-insn): Update.
4202
        * minsn.scm (minsn-make-alias): Update.
4203
        * iformat.scm (ifmt-analyze): Delete insn-condition reference.
4204
        (ifmt-compute!): Ditto.
4205
        * sim.scm (sim-finish!): Update.
4206
        * simplify.inc: (define-normal-insn): Update.
4207
        * sid-cpu.scm (gen-semantic-code): Update.
4208
 
4209
        * iformat.scm (-ifmt-lookup-ifmt!): Use insn-set-ifmt!.
4210
        (-ifmt-lookup-sfmt!): Use insn-set-sfmt!.
4211
        (ifmt-compute!): Ditto.
4212
 
4213
1999-06-16  Doug Evans  
4214
 
4215
        * minsn.scm (minsn-compute-iflds): Print better error message for
4216
        missing ifields.
4217
 
4218
1999-06-12  Doug Evans  
4219
 
4220
        * rtl.scm (tstate->estate): Don't copy over expr-fn.
4221
 
4222
        * Makefile.am (HOBFLAGS): New variable.
4223
        (cgen-hob.c): Use it.
4224
        (hobbit.c): Use it.
4225
        (libcpu_a_SOURCES): Add hob-sup.c.
4226
        (hob-sup.o): New rule.
4227
        * Makefile.in: Rebuild.
4228
        * cgen.c: #include hob-sup.h.
4229
        (cgen_init_c): Call hobbit_init_support.
4230
        * hobbit.scm (*fastcall-make*,*c-symbol*): New variables.
4231
        (*special-scm->c-functions*): Add them.
4232
        (display-c-expression): Handle *c-symbol*.
4233
        (*reckless-s->c-fun-table*): Add *fastcall-make*, fastcall5.
4234
        (*floats-s->c-fun-table*): Ditto.
4235
        (normalize): Recognize /fastcall-make.
4236
        (normalize-fastcall-make): New proc.
4237
        * hobbit.c,hobbit.h: Rebuild.
4238
        * hob-sup.scm: New file.
4239
        * hob-sup.c: New file.
4240
        * hob-sup.h: New file.
4241
        * read.scm: Load hob-sup.scm.
4242
        * rtl.scm (-rtx-name-list): New variable.
4243
        (rtx-name-list): New proc.
4244
        (rtx-lookup): Try symbol first.
4245
        (def-rtx-node): Add name to -rtx-name-list.
4246
        (def-rtx-syntax-node,def-rtx-operand-node,def-rtx-macro-node): Ditto.
4247
        (-rtx-traverse-anymode): New proc.
4248
        (-rtx-traverse-{emode,intmode,floatmode,nummode,vmmode}): New procs.
4249
        (-rtx-traverse-{rtx,setrtx,testrtx,condrtx,casertx}): New procs.
4250
        (-rtx-traverse-{locals,env,attrs,symbol,string,number}): New procs.
4251
        (-rtx-traverse-{symornum,object}): New procs.
4252
        (-rtx-make-traverse-table): Rewrite.
4253
        (-rtx-traverse-operands): Rewrite arg-types handling.
4254
        Handle #f result of traverser.
4255
        (-rtx-traverse): Renamed from -rtx-traverse-normal.
4256
        Move debug handling here.
4257
        (-rtx-traverse-debug): Delete.
4258
        (rtl-finish!): Change -rtx-traverse-table into list of handlers
4259
        for each rtx.
4260
        * semantics.scm (semantic-compile:process-expr!): Fix call to
4261
        -rtx-traverse.
4262
        * utils.scm (map1-improper): New proc.
4263
 
4264
1999-06-08  Doug Evans  
4265
 
4266
        * arm.sim (h-tbit): Replace FUN-ACCESS with FUN-SET.
4267
        (h-mbits): Ditto.
4268
        * sid.scm (-hw-cxmake-get): s/FUN-ACCESS/FUN-GET/.
4269
        (-hw-gen-set-quiet): s/FUN-ACCESS/FUN-SET/.
4270
        (,cxmake-get): Tweak.
4271
        (sim-finish!): Delete FUN-ACCESS attribute.  Create FUN-GET,FUN_SET.
4272
 
4273
1999-06-07  Doug Evans  
4274
 
4275
        * thumb.cpu (dnti): Delete timing spec.
4276
        (all insn): Update.
4277
 
4278
        * arm.cpu (arm isa): New fields condition, setup-semantics.
4279
        (thumb isa): New field setup-semantics.
4280
        (h-gr): Add attribute CACHE-ADDR.
4281
        * arm7.cpu (dnai): Delete condition.
4282
        (eval-cond): Delete.
4283
 
4284
        * mach.scm (): New member setup-semantics.
4285
        (-isa-parse-setup-semantics): New proc.
4286
        (-isa-parse): New arg setup-semantics.
4287
        (-isa-read): Recognize setup-semantics.
4288
 
4289
        * sid-cpu.scm (gen-extract-fields): Split into two:
4290
        gen-extract-ifields, gen-extract-ifmt-ifields.
4291
        (-gen-scache-semantic-fn): Delete `taken_p'.  Delete
4292
        tracing begin/end messages (done by caller now).
4293
        (-gen-sem-case): Delete `taken_p'.  Add npc,br_status.  Delete
4294
        tracing begin/end messages (done by x-before,x-after virtual insns).
4295
        (-gen-sem-switch-engine): Redo vpc initialization.  Save vpc at
4296
        end so don't have to look it up again next time.
4297
        * sid-decode.scm (-decode-expr-ifield-values): New proc.
4298
        (-decode-expr-ifield-tracking-key): New proc.
4299
        (-decode-expr-ifield-tracking): New proc.
4300
        (-decode-expr-ifield-values-used): New proc.
4301
        (-decode-expr-ifield-mark-used!): New proc.
4302
        (-gen-decode-expr-set-itype): New proc.
4303
        (-gen-decode-expr-entry): Rewrite.
4304
        (-gen-decode-table-entry): New proc.
4305
        (-gen-decoder-switch): Use it.
4306
        (-gen-virtual-insn-finder): New proc.
4307
        (-gen-argbuf-elm): Move here from sid.scm.
4308
        (-gen-argbuf-hw-elm): Ditto.
4309
        (-gen-argbuf-fields-union): Add entries for chain,before insns.
4310
        (-gen-scache-decls): Add `cond' member to @prefix@_scache for
4311
        conditional-execution isas.
4312
        (-gen-decode-fn): Record conditional-exec ifield.
4313
        * sid.scm (-current-pbb-engine?): New global.
4314
        (current-pbb-engine?,set-current-pbb-engine?!): New procs.
4315
        (,gen-ifld-extract): New arg `indent'.
4316
        (,gen-ifld-extract): Ditto.
4317
        (-hw-gen-set-quiet-pc): Add pbb support.  Delete `taken_p'.
4318
        (-op-gen-set-trace): Don't print tracing messages for pbb engine.
4319
        (-gen-arch-model-decls): Only scan real insns.
4320
        (scache-engine-insns,pbb-engine-insns): New procs.
4321
        (-create-virtual-insns!): New proc.
4322
        (sim-finish!): Call it.
4323
        (-decode-specialize-insn?): New proc.
4324
        (-decode-specialize-build-assertion): New proc.
4325
        (-decode-specialize-insn-1): New proc.
4326
        (-decode-specialize-insn): New proc.
4327
        (-fill-sim-insn-list!): New proc.
4328
        (sim-analyze!): Create copies of insns to be specialized.
4329
        * utils-cgen.scm (obj-set-name!): New proc.
4330
 
4331
        * attr.scm (-attr-eval): Rewrite calls to rtx-simplify/rtx-compile.
4332
        * iformat.scm (ifmt-analyze): Pass `insn' to semantic-compile,
4333
        semantic-attrs.
4334
        (ifmt-compute!): Delete arg `arch'.  Result is list of iformats,
4335
        sformats.
4336
        * mach.scm (arch-analyze-insns!): Update call to ifmt-compute!.
4337
        * rtl-c.scm (rtl-c-get): Use DM for default mode instead of VM.
4338
        Avoid infinite loop when rtx-eval-with-estate leaves expr alone.
4339
        (attr): Rewrite test for insn owner.
4340
        (member): New rtx function.
4341
        * rtl.scm (rtx-* accessors): Define as cxr directly rather than
4342
        as separate function.
4343
        (rtx-ifield?,rtx-ifield-name): New procs.
4344
        (rtx-operand-obj): Rewrite.
4345
        (rtx-operand-name): New proc.
4346
        (rtx-cmp-op-mode,rtx-cmp-op-arg): New procs.
4347
        (rtx-number-list-values,rtx-member-value,rtx-member-set): New procs.
4348
        (tstate-make): New args owner, known.  All callers updated.
4349
        (tstate-known-lookup): New proc.
4350
        (rtx-traverse): New arg owner.  All callers updated.
4351
        (rtx-make-bool): New proc.
4352
        (rtl-find-ifields): Rewrite.
4353
        (rtx-simplify,rtx-simplify-eq-attr-{insn,mach}): Moved to ...
4354
        * semantics.scm: ... here.
4355
        (rtx-const-equal,rtx-const-list-equal): New procs.
4356
        (-build-known-values): New proc.
4357
        (semantic-compile): New arg `insn'.  Call rtx-simplify.
4358
        (semantic-attrs): Ditto.
4359
        * rtx-funcs.scm (member,number-list): New rtx functions.
4360
 
4361
        * attr.scm (attr-remove-meta-attrs-alist): Delete leading '-' in name.
4362
        Rewrite.  Delete arg `all-attrs'. All callers updated.
4363
        (attr-remove-meta-attrs): Delete leading '-' in name.  All callers
4364
        updated.
4365
        * utils-cgen.scm (gen-bool-attrs): Remove meta attrs.
4366
 
4367
        * decode.scm (subdtable-add): Handle `expr' entries.
4368
        (exprtable-entry-make): Use vector.  Record ifields refered to by expr.
4369
        (exprtable-entry-*): Update.
4370
        (exprtable-entry-iflds): New proc.
4371
        (exprentry-cost): New proc.
4372
        (exprtable-sort,-gen-exprtable-name): New procs.
4373
        (exprtable-make): New arg `name'.  All callers updated.  use vector.
4374
        (exprtable-*): Update.
4375
        (-build-decode-table-entry): Don't issue collision warning if all are
4376
        specialized insns.  Sort exprtable entries before building table.
4377
 
4378
        * read.scm (-reader-process-expanded-1): Move pretty printing of
4379
        input to logging level 4.
4380
 
4381
        * utils.scm (string-list->string): New proc.
4382
 
4383
        * insn.scm (): Define setters for ifield-assertion, condition,
4384
        semantics.
4385
        (insn-read): Delete leading '-' in name.  All callers updated.
4386
        (real-insn?): New proc.
4387
        (real-insns): Rewrite.
4388
        (insn-has-ifield?): New proc.
4389
        (insn-builtin!): Create insn attribute SPECIALIZED.
4390
 
4391
        * mach.scm (): Delete member app-data.
4392
        (current-raw-insn-list): New proc.
4393
        (insn-list-car,insn-list-splice!): New procs.
4394
        (): New class.
4395
        (-isa-parse-decode-specialize): New proc.
4396
        (-isa-parse-decode-specializes): New proc.
4397
        (): New members `condition', `decode-specializes'.
4398
        (-isa-parse-condition): New proc.
4399
        (-isa-parse): New args condition, decode-specializes.
4400
        (-isa-read): Recognize condition, decode-specializes.
4401
        (-isa-add-decode-specialize!): New proc.
4402
        (modify-isa): New proc.
4403
        (isa-conditional-exec?,state-conditional-exec?): New procs.
4404
        (arch-init!): New reader command `modify-isa'.
4405
 
4406
        * mode.scm (mode-class-signed?,mode-class-unsigned?): New procs.
4407
        (mode-signed,mode-unsigned?): New procs.
4408
 
4409
Thu Jun  3 16:00:40 1999  Doug Evans  
4410
 
4411
        * types.scm (): New method get-shape.
4412
        * hardware.scm (): Forward get-shape,get-num-elms
4413
        onto type.
4414
        (hw-shape,hw-num-elms): New procs.
4415
        * sim.scm (,gen-profile-index-type): Use "unsigned short"
4416
        if there's more than 255 registers.
4417
        * sid.scm (,gen-profile-index-type): Ditto.
4418
 
4419
        * hardware.scm (-hw-parse): Flag as error CACHE-ADDR specified
4420
        with get/set specs.
4421
 
4422
1999-05-21  Doug Evans  
4423
 
4424
        * cgen-sid.scm (sim-arguments): Add -X.
4425
        * sid-cpu.scm (-gen-hardware-types): Comment out scache vars.
4426
        (-gen-all-semantic-fns): Don't include PBB support virtual insns.
4427
        (-gen-sem-case): Use CASE/NEXT macros again.  Tweak indenting.
4428
        Simplify by supporting pbb engine only.
4429
        (-gen-sem-switch-init): New proc.
4430
        (-gen-sem-switch-engine): Rename from -gen-sem-switch-fn.
4431
        (cgen-sem-switch.cxx): New proc.
4432
        * sid-decode.scm (-gen-decode-insn-globals): Replace with-sem-switch?
4433
        with with-pbb?.  Support dual scache/pbb engines.
4434
        (-gen-idesc-decls): Replace with-sem-switch? with with-pbb?.
4435
        Support dual scache/pbb engines.
4436
        (cgen-decode.h): Generate semantic fn decls if with-scache?.
4437
        * sid.scm (*) with-pbb? replaces with-sem-switch?.
4438
        (sim-finish!): Create pbb support virtual insns if with-pbb?.
4439
 
4440
1999-05-10  Ben Elliston  
4441
 
4442
        * arm7.cpu: Remove coprocessor related fields, operands and insn
4443
        definitions for now. Take the undefined instruction trap instead.
4444
        (ldmda-wb): New instruction.
4445
        (ldmib-wb): Likewise.
4446
        (ldmdb-wb): Likewise.
4447
        (stmdb-wb): Likewise.
4448
        (stmib-wb): Likewise.
4449
        (stmda-wb): Likewise.
4450
 
4451
1999-05-08  Doug Evans  
4452
 
4453
        * sid.scm (,cxmake-get): Call GETMEM method, not function.
4454
        (,gen-set-quiet): Call SETMEM method, not function.
4455
 
4456
        * utils-cgen.scm (keyword-list->arg-list): Fix call to substring,
4457
        hobbit can't handle optional third arg.
4458
 
4459
1999-05-07  Doug Evans  
4460
 
4461
        * arm.cpu (h-tbit): Delete set spec.
4462
        (h-mbits): Don't call arm_mbits_set in set spec.
4463
        * arm.sim: New file.
4464
        * hardware.scm (modify-hardware): New proc.
4465
        (hardware-init!): Add modify-hardware command.
4466
        * sid.scm (-hw-cxmake-get): Use method call if FUN-ACCESS specified.
4467
        (-hw-gen-set-quiet): Ditto.
4468
        (sim-finish!): Call invalid_insn method.  Define FUN-ACCESS builtin
4469
        hardware attribute.  Load $arch.sim file if present.
4470
        * utils-cgen.scm (keyword-list?): New proc.
4471
        (keyword-list->arg-list,arg-list-validate-name): New procs.
4472
        (arg-list-check-no-args,arg-list-symbol-arg): New procs.
4473
 
4474
        * arm7.cpu (eval-cond): Pass pc to @cpu@_eval_cond handler.
4475
 
4476
        * sid-cpu.scm (-gen-hardware-types): Rename @cpu@_cpu to
4477
        @cpu@_cpu_cgen.
4478
 
4479
        * attr.scm (obj-prepend-atlist!): New proc.
4480
 
4481
        * opc-opinst.scm (cgen-opinst.c): Analyze instructions if necessary.
4482
 
4483
        * sid.scm (,profilable?): Use op:type.
4484
        * sim.scm (,profilable?): Use op:type.
4485
 
4486
1999-05-04  Doug Evans  
4487
 
4488
        * utils.scm (find-index,find): Be more stack friendly.
4489
 
4490
        * arm7.cpu (arith-imm-op): Compute pc before setting cpsr.
4491
        (bic-imm): Ditto.
4492
 
4493
1999-05-01  Doug Evans  
4494
 
4495
        * arm.cpu (h-gr-usr): New hardware element.
4496
        (h-gr-fiq,h-gr-svc,h-gr-abt,h-gr-irq,h-gr-und): New hardware elements.
4497
        (arm-mode): New keyword.
4498
        (h-mbits): Add set spec.
4499
        (h-spsr): Implement get/set specs.
4500
 
4501
        * read.scm: Load slib/pp.scm, slib/genwrite.scm.
4502
        (-reader-process-expanded-1): Pretty print logging output.
4503
 
4504
        * sid-cpu.scm (-gen-reg-access-defns): Make getters `const'.
4505
        (cgen-cpu.h): Print enums before hardware elements.
4506
        (cgen-semantics.cxx): @arch@-cgen.h renamed to @arch@-main.h.
4507
        * sid-decode.scm (cgen-decode.cxx): Ditto.
4508
        * sid-model.scm (cgen-model.cxx): Ditto.
4509
 
4510
        * utils-cgen.scm (context-error): Accept variable number of
4511
        trailing args.
4512
 
4513
        * rtx-funcs.scm (error:): New rtx function.
4514
        * rtl-c.scm (s-case-vm): New proc.
4515
        (-gen-non-vm-case-get,s-case-non-vm): New procs.
4516
        (s-case): Simplify, handle non-VM result.
4517
        (error:): New rtx function.
4518
 
4519
1999-04-30  Doug Evans  
4520
 
4521
        * arm.cpu (h-pc): Add set spec to zero bottom bits.
4522
        (test-hi,test-ls): Fix cbit handling.
4523
        (shift-type,h-operand2-shifttype): Move here ...
4524
        * arm7.cpu: ... from here.
4525
        (set-cond,set-cond-maybe,dnix): Delete, unused.
4526
        (set-zn-flags,set-logical-cc,set-add-flags,set-sub-flags): Move ...
4527
        * arm.cpu: ... to here.
4528
        * thumb.cpu (cmp,alu-cmp): Use set-sub-flags.
4529
        (alu-cmn): Use set-add-flags.
4530
        (alu-tst): Use set-zn-flags.
4531
        (alu-cmp): Use set-sub-flags.
4532
        (lsl,lsr,asr): Set condition codes.
4533
        (add,addi,sub,subi,mov,addi8,subi8): Ditto.
4534
        (alu-op): Split into three: alu-logical-op,alu-arith-op,
4535
        alu-shift-op.
4536
        (hireg-op): Split sem-fn into lo-dest-sem-fn,hi-dest-sem-fn.
4537
        All callers updated.
4538
        (sub-sp): Rename from add-sp-neg.
4539
        (f-lbwl-offset): Delete.
4540
        (f-lbwl-hi,f-lbwl-lo): New ifields.
4541
        (lbwl-hi,lbwl-lo): Update.
4542
        (bl-hi): Add 4 to pc.
4543
        (push-reg,pop-reg): Simplify.
4544
        (push,push-lr): Push registers in correct order.
4545
        (pop,pop-pc): Pop registers in correct order.
4546
        (save-reg-inc,load-reg-inc): Simplify.
4547
        (ldmia): Save registers in correct order.
4548
 
4549
1999-04-30  Ben Elliston  
4550
 
4551
        * arm7.cpu (f-op-hdt): Remove; unused.
4552
        (f-ror-imm8-value,f-ror-imm-rotate): New fields.
4553
        (f-ror-imm8): New multi-ifield.
4554
        (f-operand2-bit7): Remove; use the generic `f-bit7' instead. All
4555
        callers updated.
4556
        (f-uimm12): New field.
4557
        (ror-imm8): New operand.
4558
        (uimm12): Likewise.
4559
        (hdt-offset8): Reinstate operand.
4560
        (offset4-hi,offset4-lo): Remove.
4561
        (set-cond): Remove macro; unused.
4562
        (set-cond-maybe): Likewise.
4563
        (load-word/byte): Use uimm12 operand for a true 12-bit immediate.
4564
        (store-word/byte): Likewise.
4565
        (load-halfword): Use hdt-offset8 multifield operand instead of two
4566
        4-bit operands that are explicitly combined by semantic code.
4567
        (do-halfword-store): Bug fix. Set address when not preindexing.
4568
        (store-halfword): Also use hdt-offset8 operand.
4569
        (arith-op): Avoid clobbering source registers when one of them is
4570
        the destination register.
4571
        (arith-imm-op): Likewise.
4572
        (tst-imm): Use ror-imm8 operand. Handle special case of rot 0.
4573
        (teq-imm): Likewise.
4574
        (ldm-p): Rename to ldmdb.
4575
        (stm-pw): Rename to stmdb-wb.
4576
        (multi-action): New macro; test reg-list bits and execute a
4577
        semantic fn if the bit is set.
4578
        (ldmda,ldmib,ldmia,ldmia-wb,ldmdb): New multiple load insns.
4579
        (stmdb,stmib,stmia,stmia-wb,stmda,stmdb-wb): Store insns.
4580
        (all insns): Use dnai entries for simplicity rather than dni.
4581
        (*): Use short-form of (const ..).
4582
 
4583
1999-04-29  Doug Evans  
4584
 
4585
        * rtl.scm (): Rename member type to style.  Rename
4586
        member eval to evaluator.
4587
        (rtx-foo accessors): Rename from rtx:foo.  All callers updated.
4588
        (tstate-make): Delete arg op-fn.  All callers updated.
4589
        (tstate-op-fn,tstate-set-op-fn!): Delete.
4590
        (rtx-traverse): Delete op-fn arg.  All callers updated.
4591
        * semantics.scm (-simplify-for-compilation-process-expr): New proc,
4592
        split out of -simplify-for-compilation.
4593
 
4594
        * Makefile.am (CGEN_NONHOB_FILES,CGENFILES): New variables.
4595
        (cgen_DEPENDENCIES): Add stamp-cgen.
4596
        (stamp-cgen): New rule.
4597
        * Makefile.in: Rebuild.
4598
 
4599
        * rtl-c.scm (enum:): Define emitter for.
4600
        * rtl.scm (rtx-constant?): Rename from rtx-const? and check for
4601
        enums as well.
4602
        (rtx-constant-value,rtx-enum-value): New procs.
4603
        (-rtx-traverse-normal): Expand enum-value to (enum enum-value).
4604
        (rtx-compile-time-constant?): Return #t for enums.
4605
        (rtx-true?,rtx-false?): Handle enums.
4606
        (rtx-simplify-eq-attr-mach): Use rtx-true,rtx-false instead of
4607
        building result by hand.
4608
        (rtx-simplify-eq-attr-insn): Ditto.
4609
        * rtx-funcs.scm (enum:,enum): New rtx functions.
4610
 
4611
        * mach.scm (): New members insns-analyzed?, semantics-analyzed?,
4612
        aliases-analyzed?.
4613
        (arch-analyze-insns!): New proc.
4614
        * opcodes.scm (opcodes-analyze!): Call arch-analyze-insns! instead
4615
        of calling ifmt-compute! directly.
4616
        * sid.scm (-sim-insns-analyzed?): Delete.
4617
        (sim-analyze!): Call arch-analyze-insns! instead of calling
4618
        ifmt-compute! directly.
4619
        * sim.scm (-sim-insns-analyzed?): Delete.
4620
        (sim-analyze!): Call arch-analyze-insns! instead of calling
4621
        ifmt-compute! directly.
4622
 
4623
        * utils.scm (string-take-with-filler): New proc.
4624
        (string-take): Use it.
4625
 
4626
        * pgmr-tools.scm: New file.
4627
        * read.scm: Load it.
4628
        * insn.scm (pretty-print-insn-format): Move to pgmr.scm.
4629
 
4630
        * insn.scm (insn-base-mask): Renamed from insn:mask.
4631
        All callers updated.
4632
        (insn-base-mask-length): Renamed from insn:mask-length.
4633
        All callers updated.
4634
        (insn-foo): Renamed from insn:foo.  All callers updated.
4635
        * minsn.scm (minsn-foo): Renamed from minsn:foo.  All callers updated.
4636
        * iformat.scm (compute-insn-base-mask-length): Renamed from
4637
        compute-insn-mask-length.  All callers updated.
4638
        (compute-insn-base-mask): Renamed from compute-insn-mask.
4639
        All callers updated.
4640
 
4641
        * enum.scm (-enum-parse-prefix): New proc.
4642
        (,make!): Don't parse enum values here.
4643
        (-enum-parse): Do it here.  Call -enum-parse-prefix.
4644
        (define-full-insn-enum): Ditto.
4645
        (enum-vals-upcase): New proc.
4646
        * hardware.scm (define-keyword): Make enum prefix uppercase.
4647
        * hobscmif.h (CHAR_LOWERP,CHAR_UPPERP,CHAR_WHITEP): New macros.
4648
 
4649
        * ifield.scm (,field-mask): Allow container to be #f.
4650
        (,field-extract): New method.
4651
        (,field-extract): New method.
4652
        (ifld-extract): New proc.
4653
        * opcodes.scm (ifld-insert-fn-name): Renamed from ifld-insert.
4654
        (ifld-extract-fn-name): Renamed from ifld-extract.
4655
 
4656
        * ifield.scm (ifld-new-value): Renamed from ifield-make.
4657
        All callers updated.
4658
 
4659
        * ifield.scm (ifld-lsb0?): New proc.
4660
        (sort-ifield-list): New arg up?.  All callers updated.
4661
        * iformat.scm (compute-insn-mask): Get lsb0? flag from argument,
4662
        rather than global state.
4663
 
4664
1999-04-27  Doug Evans  
4665
 
4666
        * insn.scm (pretty-print-insn-format): New proc.
4667
 
4668
        * Makefile.in: Rebuild.
4669
        * aclocal.m4: Rebuild
4670
        * configure: Rebuild.
4671
 
4672
Mon Apr 26 10:30:18 1999  Doug Evans  
4673
 
4674
        * configure.in (AM_INIT_AUTOMAKE): Update version to 0.7.2.
4675
        * configure: Rebuild.
4676
        * aclocal.m4: Rebuild.
4677
        * Makefile.in: Rebuild.
4678
        * doc/Makefile.in: Rebuild.
4679
        * doc/version.texi: Rebuild.
4680
 
4681
1999-04-25  Doug Evans  
4682
 
4683
        * utils.scm (bits->bools): New proc.
4684
 
4685
1999-04-23  Doug Evans  
4686
 
4687
        * sid.scm (,gen-ifld-extract-decl): Fix call to
4688
        subfield's gen-ifld-extract-decl method.
4689
 
4690
1999-04-23  Ben Elliston  
4691
 
4692
        * arm7.cpu (ldrsh-pu): Remove.
4693
        (do-halfword-load): New pmacro.
4694
        (load-halfword): Likewise.
4695
        (do-halfword-store): Likewise.
4696
        (store-halfword): Likewise.
4697
        (strh-*): New instructions.
4698
        (ldrsb-*): Likewise.
4699
        (ldrh-*): Likewise.
4700
        (ldrsh-*): Likewise.
4701
 
4702
1999-04-22  Doug Evans  
4703
 
4704
        * ifield.scm (ifld-constant?): Delete special handling of RESERVED
4705
        fields.
4706
 
4707
        * arm7.cpu (do-word/byte-store): Fix typo.
4708
 
4709
1999-04-22  Ben Elliston  
4710
 
4711
        * arm7.cpu (do-word/byte-load): Handle cases where the destination
4712
        register is the program counter (R15).
4713
 
4714
        * arm7.cpu (do-word/byte-store,store-word/byte): New pmacros.
4715
        (str-*): Implement using store-word-byte. Remove older versions.
4716
        (bic): Use the `inv' rtx for obtaining bitwise complements.
4717
        (bic-imm): Likewise.
4718
        (mvn): Likewise.
4719
        (mvn-imm): Likewise.
4720
        (store-indev-reg): Remove crufty pmacro.
4721
        (load-indiv-reg): Likewise.
4722
        (ldm-p): Reverse the order of register processing for decrement.
4723
        (stm-p): Likewise.
4724
        (stbi): Remove; handled by the str-* insns.
4725
 
4726
1999-04-21  Doug Evans  
4727
 
4728
        * thumb.cpu (cmp): Fix carry bit computation.
4729
        (alu-cmp): Ditto.
4730
 
4731
1999-04-20  Doug Evans  
4732
 
4733
        * arm.cpu (h-tbit): Specify set spec.
4734
        (h-cpsr): Ditto.
4735
        * arm7.cpu (bx): Don't call C routine, just set h-tbit.
4736
        (set-sub-flags): Interpret "carry bit" as a borrow.
4737
        (all sub/cmp insns): Carry bit is actually a borrow bit.
4738
        * thumb.cpu (bx-rs,bx-hs): Don't call C routine, just set h-tbit.
4739
        (add-carry,sub-carry,thumb-neg,thumb-bic,thumb-inv): Delete.  Use
4740
        .pmacro instead.
4741
        (hireg-add,hireg-cmp,hireg-move): Ditto.
4742
 
4743
        * read.scm (-CGEN-VERSION): Change version to 0.7.2.
4744
        (-CGEN-LANG-VERSION): Ditto.
4745
 
4746
1999-04-18  Doug Evans  
4747
 
4748
        * pmacros.scm (-pmacro-make): New arg `default-values',
4749
        all callers updated.
4750
        (-pmacro-default-values): New proc.
4751
        (-pmacro-process-keyworded-args): New proc.
4752
        (-pmacro-process-args): New proc.
4753
        (-pmacro-invoke): Process arguments before expanding macro.
4754
        (-pmacro-get-arg-spec,-pmacro-get-default-values): New procs.
4755
        (define-pmacro): Handle default values specified in arg list.
4756
        * rtl.scm (rtx-alu-op-mode,rtx-alu-op-arg): New procs.
4757
        (rtx-boolif-op-arg[01]): New procs.
4758
        (rtx-true,rtx-false,rtx-canonical-bool): New procs.
4759
        (rtx-simplify): Handle not,orif,andif.
4760
        * semantics.scm (-simplify-for-compilation): Simplify not,orif,andif.
4761
        * utils.scm (alist-copy): New proc.
4762
        * arm7.cpu (do-word/byte-load,load-word/byte): New pmacros.
4763
        (ldr*): Rewrite.
4764
        (swi): Explicitly set pc.
4765
 
4766
        * thumb.cpu (bx-rs,bx-hs): Reverse test for switch to arm mode.
4767
 
4768
1999-04-17  Ben Elliston  
4769
 
4770
        * arm7.cpu (ldr-pu): Do not add 8 to R15; the step() method
4771
        correctly adjusts the program counter now.
4772
 
4773
        * arm7.cpu (f-halfword?): Rename from `f-hdt-halfword?'.
4774
        (f-signed?): Rename from `f-hdt-signed?'.
4775
        (f-offset4-hi): Rename from `h-hdt-off4-ms'.
4776
        (f-offset4-lo): Rename from `h-hdt-off4-ls'.
4777
        (f-hdt-offset8): Use new field names.
4778
        (ldr): Use `imm12' field, not `offset12', since we do our own
4779
        address arithmetic.
4780
        (str, str-*): Likewise.
4781
        (ldu-*): Remove most; better not implemented than broken.
4782
        (ldrh*): Likewise.
4783
        (ldrsh-pu): New insn.
4784
        (stri): Likewise.
4785
        (stri-p): Likewise.
4786
        (stbi): Likewise.
4787
        (ldm-p): Likewise; replace (load-indiv-reg) version.
4788
 
4789
1999-04-15  Doug Evans  
4790
 
4791
        * arm.cpu (h-pc): Delete VIRTUAL attribute, get/set specs.
4792
        * arm7.cpu (*): Fix mode of result of arm_compute_carry_out_*.
4793
        (*): Explicitly specify mode in c-call.
4794
        (logical-op): Recognize sets of h-gr[15] as sets of pc.
4795
        (arith-op): Ditto.
4796
        (and-imm,orr-imm,xor-imm,mov-imm,bic-imm,mvn-imm): Ditto.
4797
        (arith-imm-op): New pmacro.
4798
        (add-imm,adc-imm,sub-imm,sbc-imm,rsb-imm,rsc-imm): Use it.
4799
        * thumb.cpu (bx-rs,bx-hs): Rewrite.
4800
 
4801
1999-04-14  Doug Evans  
4802
 
4803
        * rtl.scm (rtx-simplify-eq-attr-insn): Fix call to context-error.
4804
 
4805
        * rtl.scm (rtl-find-ifields): Implement.
4806
 
4807
        * utils-gen.scm: New file.
4808
        * read.scm: Load it.
4809
        * desc.scm: Move generic attribute code to utils-gen.scm.
4810
        * Makefile.am (CGEN_HOB_INPUT_FILES): Add it.
4811
        * Makefile.in: Rebuild.
4812
 
4813
        * arm7.cpu (R15-OFFSET): New attribute.
4814
        (dnai): New pmacro.
4815
        (logical-op): Delete arg `result?'.  All callers updated.  Use dnai.
4816
        Delete use of eval-cond (dnai specifies it).  Specify R15-OFFSET of 12
4817
        for reg-shift version.
4818
        (arith-op): Ditto.
4819
        (data processing insns): Reorganize.  Use dnai.
4820
 
4821
        * attr.scm (attr-kind): New proc.
4822
        (attr-list-enum-list): Rewrite.
4823
        (-attr-sort): Split result into two lists, bools and non-bools.
4824
        (current-attr-list-for): Update.
4825
 
4826
        * cgen-sid.scm (sim-arguments): Add -H -> build desc.h file.
4827
        * sid-cpu.scm (-gen-attr-decls): New proc.
4828
        (-gen-insn-attr-decls): New proc.
4829
        (cgen-desc.h): New proc.
4830
        (cgen-cpu.h): Put everything in @cpu@ namespace.
4831
        (gen-parallel-exec-type): Change prefix of parexec struct from
4832
        @cpu@ to @prefix@.
4833
        (-gen-trace-record-type): Ditto for trace_record struct.
4834
        (-gen-write-case): Update.
4835
        (-gen-scache-semantic-fn): Change function prefix from @cpu@ to
4836
        @prefix@.  Update scache struct references.
4837
        (-gen-sem-case): Update scache struct references.
4838
        (-gen-sem-switch-fn): Update idesc struct reference.
4839
        Update insn_type enum reference.
4840
        (cgen-write.cxx): Update scache,argbuf references.
4841
        (cgen-semantics.cxx): Simplify namespace choice (always @cpu@).
4842
        * sid-decode.scm (IDESC-TABLE-VAR): Change prefix of insn_data
4843
        from @cpu@ to @prefix@.
4844
        (-gen-decode-insn-entry): Use gen-cpu-insn-enum.
4845
        (-gen-decode-expr-entry): Ditto.  Change prefix of INSN_X_INVALID
4846
        from @CPU@ to @PREFIX@.
4847
        (-gen-decoder-switch): Change prefix of INSN_X_INVALID
4848
        from @CPU@ to @PREFIX@.
4849
        (-gen-decode-insn-globals): Generate insn attributes.
4850
        (-gen-sem-fn-name): Change function prefix from @cpu@ to @prefix@.
4851
        (-gen-sem-fn-decls): Use -gen-sem-fn-name.  Add `using' for
4852
        semantic fn typedef.
4853
        (-gen-idesc-decls): Simplify cpu class name (always @cpu@_cpu).
4854
        Change prefix of scache struct from @cpu@ to @prefix@.
4855
        Change prefix of semantic fn typedef from @cpu@ to @prefix@.
4856
        Change prefix of idesc struct from @cpu@ to @prefix@.
4857
        Change prefix of insn_type enum from @cpu@ to @prefix@.
4858
        (-gen-argbuf-fields-union): Change prefix of sem_fields union
4859
        from @cpu@ to @prefix@.
4860
        (-gen-scache-decls): Change prefix of scache struct from
4861
        @cpu@ to @prefix@.  Update idesc struct name.
4862
        Update decode,execute methods.
4863
        (-gen-extract-case): Update to type name changes.
4864
        (-gen-decode-fn): Ditto.
4865
        (cgen-decode.h): Put everything in @cpu@ namespace (except
4866
        semantic fn decls).  Change prefix of insn_word from @cpu@ to @prefix@.
4867
        (cgen-decode.cxx): Add using namespace @cpu@.
4868
        * sid-model.scm (-gen-hw-profile-decls): Change prefix of
4869
        model_mark_get/set from @cpu@ to @prefix@.
4870
        (gen-model-unit-fn-name): Change function prefix from @cpu@ to
4871
        @prefix@.
4872
        (gen-model-fn-decls): Update idesc struct name.  Change prefix
4873
        of model_insn_before/after from @cpu@ to @prefix@.
4874
        (-gen-model-insn-fn): Update scache/idesc/argbuf struct names.
4875
        Update insn_word type name.
4876
        (-gen-model-timing-table): Update INSN_TIMING struct name.
4877
        (-gen-model-init-fn): Update MODEL_DATA struct name.
4878
        (-gen-mach-defns): Update name of init_idesc_table fn.
4879
        (cgen-model.cxx): Add using namespace @cpu@.
4880
        * sid.scm (gen-cpu-class): Delete.
4881
        (gen-attr-type): New proc.
4882
        (gen-obj-attr-sid-defn): New proc.
4883
        (,gen-profile-code): Update name of model_mark_get/set fn.
4884
        (gen-cpu-insn-enum-decl): Change prefix of insn_type enum from
4885
        @CPU@ to @PREFIX@.
4886
        (gen-cpu-insn-enum): Update name of insn enum.
4887
        * thumb.cpu (bx-rs): Rename @cpu@_do_bx to @prefix@_do_bx.
4888
        (bx-hs): Ditto.
4889
        (swi): Rename @cpu@_swi to @prefix@_swi.
4890
 
4891
        * decode.scm (-build-decode-table-entry): Remove heuristic for
4892
        distinguishing insns, and use insn ifield-assertion specs.
4893
 
4894
        * desc-cpu.scm (gen-A-attr-mask): Simplify.
4895
        (gen-ifld-defns): Boolean attributes begin at number 0 now.
4896
        (gen-hw-table-defns,gen-operand-table,gen-insn-table): Ditto.
4897
        * opc-itab.scm (-gen-macro-insn-table): Ditto.
4898
        * utils-cgen.scm (gen-attr-enum-decl): Change type arg to prefix,
4899
        all callers updated.
4900
        (gen-attr-name): New proc
4901
        (gen-attr-mask): Use it.  Boolean attributes start at 0 now.
4902
        (gen-obj-attr-defn): Delete num_nonbools count.
4903
 
4904
        * iformat.scm (ifmt-analyze): Handle insn-condition.
4905
        (ifmt-compute!): Ditto.
4906
        * insn.scm (): Specify default value for condition,
4907
        post-cond-trap,compiled-condition,compiled-semantics.
4908
        (,make!): New arg condition.
4909
        (): Add getters for condition,compiled-condition.
4910
        (-insn-parse): New arg condition, all callers updated.
4911
        (-insn-read): Recognize condition spec.
4912
        (define-full-insn): New arg condition.
4913
        * minsn.scm (minsn-make-alias): Update call to (make  ...).
4914
        * semantics.scm (semantic-compile): Change arg sem-code to
4915
        sem-code-list.
4916
        (semantic-attrs): Ditto.
4917
        * sim.scm (sim-finish!): Update calls to define-full-insn.
4918
        * simplify.inc (define-normal-insn): Update call to define-full-insn.
4919
        * sid-cpu.scm (gen-semantic-code): Handle insn-condition.
4920
        * sid.scm (sim-finish!): Update call to define-full-insn.
4921
 
4922
Tue Apr 13 17:04:34 1999  Doug Evans  
4923
 
4924
        * Makefile.am (sim-cpu): Allow specification of ISA.
4925
        * Makefile.in: Rebuild.
4926
 
4927
Sun Apr 11 00:37:56 1999  Jim Wilson  
4928
 
4929
        * i960.cpu (sll-expr, srl-expr, sra-expr): Handle large shift counts.
4930
 
4931
1999-04-10  Doug Evans  
4932
 
4933
        * sparccom.cpu (check-fp-enable): Wrap TRAP32_FP_DIS in c-code.
4934
 
4935
        * arm.cpu (gr-names): Put pc first so it gets prefered in disassembly.
4936
 
4937
        * attr.scm (atlist?): New proc.
4938
        (-attr-eval): Rewrite.
4939
        (attr-parse): New proc.
4940
        (atlist-parse): Use it.
4941
 
4942
        * decode.scm (exprtable-entry-make): New proc.
4943
        (exprtable-entry-insn,exprtable-entry-expr): New procs.
4944
        (exprtable-make,exprtable-insns): New procs.
4945
 
4946
        * hardware.scm (hw-mode-ok?): Delete argument `set?'.
4947
        All uses updated.
4948
        (hardware-builtin!): Make h-memory a vector.
4949
 
4950
        * iformat.scm (ifmt-ifields): Renamed from ifmt-fields.
4951
        All callers updated.
4952
        (ifmt-analyze): Use csem-* accessors on result of semantic-compile.
4953
 
4954
        * insn.scm (). Rename ifld-assertions to ifield-assertion.
4955
        All uses updated.
4956
        (-insn-parse): Set semantics to #f if not specified.
4957
        (define-insn,define-full-insn): Take out code that ignores ALIAS's
4958
        if simulator.
4959
        (-parse-insn-format): Recognize `=' iformat spec.
4960
 
4961
        * mach.scm (isa-min-insn-bitsize): Ignore ALIAS's.
4962
        (isa-max-insn-bitsize): Ditto.
4963
 
4964
        * opcodes.scm (,gen-insert): Call rtl-c instead of
4965
        rtl-c-with-alist.
4966
        (,gen-extract): Ditto.
4967
        (,gen-insert,gen-extract): Ditto.
4968
        * sid-cpu.scm (-gen-reg-access-defns): Ditto.
4969
        (gen-define-ifmt-ifields): New proc.
4970
        (gen-semantic-code): Rewrite.
4971
        * sid-decode.scm (-gen-decode-expr-entry): New proc.
4972
        (-gen-decoder-switch): Handle expression tables.
4973
        (-gen-extract-case): Call gen-define-ifmt-ifields instead of
4974
        gen-define-fields.
4975
        * sid-model.scm (-gen-model-insn-fn): Call gen-define-ifmt-ifields
4976
        instead of gen-define-fields.
4977
        * sid.scm (,gen-ifld-extract-decl): New arg `indent', all
4978
        callers updated.
4979
        (
4980
        (-gen-ifld-extract-base): Call rtl-c instead of rtl-c-with-alist.
4981
        (-gen-ifld-extract-beyond): Ditto.
4982
        (,gen-ifld-extract): Ditto.
4983
        (<*>,cxmake-get,gen-set-quiet,gen-set-trace,gen-write): Update to new
4984
        rtl evaluation code.
4985
        (op:read): Build an  to pass to gen-read.
4986
        (op:write): Build an  to pass to gen-write.
4987
        (op:record-profile): Build an  to pass to
4988
        gen-record-profile.
4989
        * sim-cpu.scm (gen-semantic-code): Rewrite.
4990
        * sim.scm (-gen-ifld-extract-base): Call rtl-c instead of
4991
        rtl-c-with-alist.
4992
        (-gen-ifld-extract-beyond): Ditto.
4993
        (,gen-ifld-extract): Ditto.
4994
        (,gen-get-macro,gen-set-macro): Ditto.
4995
        (<*>,cxmake-get,gen-set-quiet,gen-set-trace,gen-write): Update to new
4996
        rtl evaluation code.
4997
        (op:read): Build an  to pass to gen-read.
4998
        (op:write): Build an  to pass to gen-write.
4999
        (op:record-profile): Build an  to pass to
5000
        gen-record-profile.
5001
 
5002
        * operand.scm (): Give `selector' default value of #f.
5003
        Give `num' default value of -1.  Give `cond?' default value of #f.
5004
        (op:new-mode): Delete arg `set?', all uses updated.
5005
 
5006
        * read.scm (reader-error): Handle #f return from port-filename.
5007
        (-init-parse-cpu!): Call rtl-c-init!.
5008
        (reader-install-builtin!): Call rtl-builtin!.
5009
 
5010
        * rtl-c.scm: New file.
5011
        * semantics.scm: New file.
5012
        * read.scm: Load them.
5013
        * rtl.scm: C generation moved to rtl-c.scm.  Semantic analysis moved
5014
        to semantics.scm.
5015
        (): Delete members syntax?,macro,c,expr.  New members
5016
        type,eval,num.
5017
        (rtx-lookup): Renamed from -rtx-func-lookup.  All callers updated.
5018
        (-rtx-num-text,-rtx-max-num): New globals.
5019
        (def-rtx-operand-node,define-rtx-operand-node): New procs.
5020
        (-rtx-macro-lookup): New proc.
5021
        (rtx-lvalue-mode-name): Renamed from rtx-expr-mode-name.
5022
        (rtx-env-stack-empty?,rtx-env-stack-head): New procs.
5023
        (rtx-env-var-list,rtx-env-empty-stack,rtx-env-init-stack1): New procs.
5024
        (rtx-env-make,rtx-env-empty?,rtx-env-make-locals): New procs.
5025
        (rtx-env-push,rtx-temp-lookup,-rtx-closure-make): New procs.
5026
        (rtx-make,rtx-kind?,rtx-const?,rtx-const-value,rtx-symbol-name,
5027
        rtx-operand?,rtx-operand-obj,rtx-local?,rtx-local-obj, rtx-xop-obj,
5028
        rtx-index-of-value,rtx-if-mode,rtx-if-test,rtx-if-then,rtx-if-else,
5029
        rtx-eq-attr-owner,rtx-eq-attr-attr,rtx-eq-attr-value): New procs.
5030
        (rtx-pretty-name): New proc.
5031
        (-rtx-traverser-table,-rtx-make-traverse-table): New procs.
5032
        (rtx-traverse-*): Rewrite rtx traversing.
5033
        (rtx-eval-*): Rewrite rtx evaluation.
5034
        (rtx-compile): New proc.
5035
        (rtx-simplify): New proc.
5036
        (rtx-simply-eq-attr-mach,rtx-simplify-eq-attr-insn): New procs.
5037
        * rtx-funcs.scm: C generation moved to rtl-c.scm.
5038
        (ifield,index-of): Rewrite.
5039
        (name): Renamed from `operand:'.
5040
        (operand,xop,local): New rtx's.
5041
        (current-insn): Rewrite.
5042
        * Makefile.am (CGEN_HOB_INPUT_FILES): Add rtl-c.scm, semantics.scm.
5043
        (cgen-hob.h): Remove rule for.
5044
        (cgen-hob.o): Depend on cgen-hob.c only.
5045
        * Makefile.in: Rebuild.
5046
 
5047
        * utils-cgen.scm (vmake): New proc.
5048
        (): New class.
5049
        (context-make-prefix,context-error): New procs.
5050
 
5051
Fri Apr  9 19:26:28 1999  Jim Wilson  
5052
 
5053
        * i960.cpu: Add some ??? comments.
5054
        (xnor, ornot): New instructions.
5055
        (*): Delete obsolete COND-CTI and UNCOND-CTI attributes.
5056
 
5057
1999-04-08  Doug Evans  
5058
 
5059
        * cos.scm (-object-error): Print better error message.
5060
 
5061
        * pmacros.scm (-pmacro-env-make): Renamed from -env-make.
5062
        (-pmacro-env-ref): Renamed from -env-ref.
5063
 
5064
1999-03-31  Doug Evans  
5065
 
5066
        * hardware.scm (,parse!): Allow get/set specs.
5067
        (h-pc): Delete.
5068
        (hardware-builtin!): Delete h-pc builtin.
5069
        * arm.cpu (h-pc): Define.
5070
        (h-gr): Delete get,set specs.  Make array of 16 regs again.
5071
        * arm7.cpu (set-logical-cc-maybe): Delete.
5072
        (set-zn-flags,set-add-flags,set-sub-flags): New macros.
5073
        (data processing insns): Rewrite.
5074
        * m32r.cpu (h-pc): Define.
5075
        * fr30.cpu (h-pc): Define.
5076
        * i960.cpu (h-pc): Define.
5077
        * sparc.cpu (h-pc): Define.
5078
 
5079
        * rtl.scm (-rtx-traverse-operands): Add some error checking to LOCALS.
5080
        (s-parallel): Replace do {...} while (0) with {...}.
5081
        (s-sequence): Ditto.
5082
 
5083
        * sid-cpu.scm (gen-parallel-exec-type): Make type of `written'
5084
        consistent.
5085
        (-gen-write-case,-gen-sem-case): Ditto.
5086
        (-gen-sem-case): Only specify `written' if profiling or
5087
        parallel-write-back.
5088
        (-gen-scache-semantic-fn,-gen-all-semantic-fns): Put procs back in.
5089
        (-gen-sem-switch-fn): New proc.
5090
        (cgen-semantics.cxx): Emit either semantic fns or semantic switch
5091
        based on with-sem-switch option.
5092
        * sid-decode.scm (-gen-decode-insn-globals): Only define
5093
        idesc_table_initialized_p if with-sem-switch.  Record semantic fn
5094
        addresses in idesc_table if !with-sem-switch.
5095
        (-gen-sem-fn-decls): Rewrite.
5096
        (-gen-idesc-decls): Define @cpu@_sem_fn type.  Define `execute'
5097
        member based on with-sem-switch.  Only define
5098
        `idesc_table_initialized_p' member if with-sem-switch.
5099
        (cgen-decode.h): If !with-sem-switch, declare semantic fns.
5100
        * sid.scm (-with-sem-switch?): New variable.
5101
        (option-init!): Initialize it.
5102
        (option-set!): Set it.
5103
        (with-sem-switch?): New proc.
5104
        (-op-gen-set-trace): Only emit `written' reference if profiling.
5105
        (sim-finish!): Use h_pc_set to set pc.
5106
 
5107
1999-03-30  Doug Evans  
5108
 
5109
        * sparccom.cpu (arith-cc-binop): New args s32-set-flags,s64-set-flags.
5110
        All callers updated.
5111
        (arith-carry-cc-binop): New arg set-flags.  All callers updated.
5112
 
5113
        * sid.scm (gen-argbuf-type): Delete.
5114
        (-gen-argbuf-fields-union): Move to ...
5115
        * sid-decode.scm: ... here.
5116
 
5117
        * read.scm (-reader-process-expanded-1): New proc.
5118
        (-reader-process-expanded): Call it to catch nested begin's.
5119
        (reader-process): Move `begin' handling to -reader-process-expanded.
5120
 
5121
        * insn.scm (-insn-read): Fix name of `format' spec.
5122
 
5123
        * pmacros.scm (.pmacro): New builtin.
5124
        (scan-symbol): If procedure macro, return macro rather than its symbol.
5125
        (check-macro): Don't do lookup, instead check if (car expr) is
5126
        macro object.
5127
        (scan-list): Handle .pmacro.
5128
        (scan): No longer re-examine text for another macro invocation.
5129
        (-pmacro-build-lambda): New proc.
5130
        (define-pmacro): Rewrite.  If defining one pmacro to be an alias of
5131
        another, fetch the other's value (rather than doing it during
5132
        expansion).
5133
 
5134
1999-03-27  Doug Evans  
5135
 
5136
        * Makefile.am (CGEN_HOB_INPUT_FILES): Add decode.scm.
5137
        * Makefile.in: Rebuild.
5138
 
5139
        * decode.scm (decode-get-best-bits): Use memq instead of element?.
5140
        (-fill-slot!): Simplify.
5141
        (-build-slots): Simplify.
5142
 
5143
        * dev.scm (load-sid): Don't load sid-arch.scm.
5144
 
5145
        * sid-decode.scm: Replace computed goto decoder/extractor with plain
5146
        switch's.
5147
        * sim-decode.scm: Replace computed goto decoder/extractor with plain
5148
        switch's.
5149
 
5150
1999-03-26  Doug Evans  
5151
 
5152
        * sim-decode.scm: Clean up pass.  Move decoder computation into ...
5153
        * decode.scm: ... here.  New file.
5154
        * sid-decode.scm: Use decoder computation code in decode.scm.
5155
        * read.scm: Load decode.scm.
5156
 
5157
        * arm.cpu (arm710 model): Add u-exec function unit.
5158
        (h-gr): Delete CACHE-ADDR for now.  Make array of 15, not 16 regs.
5159
        Add get/set specs to redirect reg 15 to h-pc.
5160
        (h-*): Indicate for both ARM and THUMB isas.
5161
        (cbit,nbit,vbit,zbit): Ditto.
5162
        (h-ibit,h-fbit,h-tbit,h-mbits): New hardware elements.
5163
        (h-cpsr): Make virtual.  Add get/set specs.
5164
        (h-spsr-fiq,h-spsr-svc,h-spsr-abt,h-spsr-irq,h-spsr-und): New hw.
5165
        (h-spsr): New virtual reg.
5166
        * arm7.cpu (shift-type): New explicitly defined keyword.
5167
        (h-operand2-shifttype): Use it.
5168
        (set-logical-cc-maybe): Delete carry-out arg.  New args arg1,arg2.
5169
        All callers updated.  Don't set cbit.
5170
        (logical-op): Add rm to ifield list.  Change case to case:.  Use
5171
        shift-type enum as case choices.  Set cbit.
5172
        (and,orr,eor,add-imm): Uncomment out.
5173
        (undefined): Temporarily comment out.
5174
        * thumb.scm (mov,cmp,addi8,subi8,str-sprel,ldr-sprel): s/rd/bit10-rd/.
5175
        (lda-pc,lda-sp): Ditto.
5176
        (ldr-pc): Rename from ldr.
5177
        (cbranch): Mark insns as being thumb insns.
5178
 
5179
        * attr.scm (,parse-value): Recognize strings.
5180
 
5181
        * cgen-sid.scm: Don't load sid-arch.scm.
5182
        (sim-arguments): Delete unused entries.
5183
        * sid-arch.scm: Delete.
5184
 
5185
        * insn.scm (,iflds): Renamed from flds.  All uses updated.
5186
        (,ifld-assertions): New member.
5187
        (,make!): New arg ifld-assertions, all callers updated.
5188
        ( accessors): Change insn:foo to insn-foo.  All callers updated.
5189
        (insn:fields): Delete.
5190
        (-insn-parse): New arg ifld-assertions.  All callers updated.
5191
        (-insn-read,define-insn): New procs.
5192
        (define-full-insn): New arg ifld-assertions.  All callers updated.
5193
        (insn-init!): New comment define-insn.
5194
 
5195
        * model.scm (-model-parse): Ensure at least one unit specified.
5196
 
5197
        * rtl.scm (-rtx-traverse-operands): Recognize environments.
5198
        (,get-name): New method.
5199
        (-rtx-make-current-closure,s-closure): New proc.
5200
        (hw:): Wrap rtx indices in a closure.
5201
        (-gen-case-prefix): New proc.
5202
        (s-case): Simplify.
5203
        * rtx-funcs.scm (case:): Fix call to s-case.
5204
        (closure): New rtx func.
5205
 
5206
        * hardware.scm (): New member isas-cache.
5207
        (,get-isas): New method.
5208
        (hardware-builtin): Indicate for all isas.
5209
        * ifield.scm (-ifield-parse): Only keep if isa+mach are kept.
5210
        * mach.scm (current-arch-mach-name-list): Return list of names.
5211
        (current-isa-mach-name-list): Ditto.
5212
        (define-arch): Install builtin objects here.
5213
        * read.scm (keep-atlist?): Only keep if both mach and isa are
5214
        being kept.
5215
        (keep-mach-atlist?): New proc.
5216
        (keep-isa-multiple?,current-keep-isa-name-list): New proc.
5217
        (reader-install-builtin!): Renamed from -install-builtin!.
5218
        * sid-cpu.scm (-gen-reg-access-defns): Renamed from
5219
        -gen-cpu-reg-access-defns.  Rewrite.
5220
        (gen-reg-access-defn): Delete.
5221
        (-gen-hardware-struct): New proc.
5222
        (-gen-hardware-types): Simplify.  Add multiple-isa support.
5223
        (gen-semantic-fn,-gen-all-semantics): Delete.
5224
        (-gen-read-args,-gen-read-case,-gen-read-switch): Delete.
5225
        (cgen-cpu.c,cgen-read.c,cgen-sem-switch.c,cgen-mainloop.in): Delete.
5226
        (cgen-write.cxx,cgen-semantics.cxx,cgen-decode.cxx): Renamed from *.c.
5227
        Call sem-analyze-insns!.
5228
        (cgen-semantics.cxx): Add multiple-isa support.
5229
        * sid-decode.c (-gen-idesc-decls): Add multiple-isa support.
5230
        (-gen-scache-decls,-gen-decode-fn): Ditto.
5231
        (cgen-decode.h): Call sem-analyze-insns!.
5232
        * sid-model.scm (cgen-model.cxx): Renamed from cgen-model.c.
5233
        * sid.scm (-with-multiple-isa?): New variable.
5234
        (option-init!): Initialize it.
5235
        (option-set!): Set it.
5236
        (with-multiple-isa?): New proc.
5237
        (gen-cpu-ref): New arg isas.  All callers updated.
5238
        (gen-cpu-class): New proc.
5239
        (*-get-macro,*-set-macro): Delete.
5240
        (gen-reg-get-fun-name,gen-reg-set-fun-name): New procs.
5241
        (-hw-gen-fun-get): Call gen-reg-get-fun-name.
5242
        (-hw-gen-fun-set): Call gen-reg-set-fun-name.
5243
        (-gen-hw-index): Call rtx-c instead of rtx-c-with-temps for rtxs.
5244
        (-sim-insns-analyzed): New global variable.
5245
        (sim-init!): Reset it.
5246
        (sim-analyze-insns!): New proc.
5247
        (sim-analyze!): Don't do instruction analysis here.
5248
        (sim-finish!): Specify isa of x-invalid insn.
5249
        * sim.scm (sim-finish!): Specify isa of added x-* virtual insns.
5250
 
5251
1999-03-22  Doug Evans  
5252
 
5253
        * thumb.cpu (cpu,mach,model): Delete.
5254
        (dntf): New pmacro.  Use it for all field definitions.
5255
        (dntop): New pmacro.  Use it for all operand definitions.
5256
        (asr): Correct field list.
5257
        (add,addi,sub,subi,add-sp,add-sp-neg): Ditto.
5258
 
5259
        * utils-cgen.scm (define-getters): New macro to simplify
5260
        writing class accessors.
5261
        (define-setters): Ditto.
5262
        (sanitize): Recognize isa elements.
5263
 
5264
        * sid-cpu.scm (*): Replace cpu:parallel-exec? call with
5265
        state-parallel-exec?.
5266
        * sid-model.scm (*): Ditto.
5267
        * sid-decode.scm (*): Ditto.  Replace cpu:decode-assist with
5268
        state-decode-assist.
5269
 
5270
        * sid-decode.scm (decode-bits): Replace list-reverse! with reverse!.
5271
        (-gen-decode-switch): Rewrite to not generate deeply nested lists.
5272
        * sim-decode.scm (-gen-decode-switch): Ditto.
5273
 
5274
        * sim-arch.scm (-regs-for-access-fns): Delete.
5275
        (-biggest-reg-mode,-gen-arch-reg-access-decls): Delete.
5276
        (-gen-arch-reg-access-defns): Delete.
5277
 
5278
        * sim-cpu.scm (*): Replace cpu:liw-insns with state-liw-insns,
5279
        cpu:parallel-insns with state-parallel-insns, cpu:parallel-exec?
5280
        with state-parallel=exec?.
5281
        (cgen-*): Call sim-analyze-insns! here.
5282
        * sim-decode.scm (cgen-*): Ditto.
5283
        * sim-model.scm (cgen-*): Ditto.
5284
        * sim.scm (-sim-insns-analyzed): New global variable.
5285
        (sim-init!): Reset it.
5286
        (sim-analyze-insns!): Renamed from sim-analyze!.  Keep track if we've
5287
        already done the analysis.
5288
 
5289
        * sim-model.scm (-gen-mach-defns): Add mach attribute number to
5290
        MACH struct.
5291
 
5292
        * arm.cpu: Only include arm7.cpu,thumb.cpu if necessary.
5293
        (arm arch): Update isa spec.
5294
        (arm,thumb isas): Define.
5295
        (arm7 cpu): default-insn-bitsize,base-insn-bitsize moved to isas.
5296
        (arm7tdmi mach): Add isa spec.
5297
        * arm7.cpu (*): Replace subreg: with subword:.  Remove unnecessary
5298
        `const' on word number.
5299
        * fr30.cpu (fr30 arch): Update isa spec.
5300
        (fr30 isa): Define.
5301
        (fr30bf cpu): default-insn-bitsize,base-insn-bitsize,decode-assist,
5302
        moved to isa spec.
5303
        * i960.cpu (i960 arch): Update isa spec.
5304
        (i960 isa): Define.
5305
        (i960base cpu): default-insn-bitsize,base-insn-bitsize,decode-assist,
5306
        liw-insns,parallel-insns moved to isas spec.
5307
        * m32r.cpu (m32r arch): Update isas spec.
5308
        (m32r isa): Define.
5309
        (m32rbf cpu): default-insn-bitsize,base-insn-bitsize,decode-assist,
5310
        liw-insns,parallel-insns moved to isa spec.
5311
        * sparc.cpu (sparc arch): Update isas spec.
5312
        (sparc isa): Define.
5313
        * sparc32.cpu (sparc32 cpu): default-insn-bitsize,base-insn-bitsize,
5314
        decode-assist moved to isa spec.
5315
        * sparc64.cpu (sparc64 cpu): Ditto.
5316
        * sparccom.cpu (trap insns): Correct mode of result of c-call:.
5317
        * desc-cpu.scm (-gen-isa-table-defns): New proc.
5318
        (-gen-mach-table-defns): Output mach table.
5319
        (-gen-hash-defines): Delete insn size macros, except for
5320
        CGEN_MAX_INSN_SIZE.
5321
        (-cgen-cpu-open): Rewrite cpu_open handling.  Take stdarg list of args.
5322
        (cgen-desc.h): Define MAX_ISAS.
5323
        (cgen-desc.c): Include stdarg.h.  Call -gen-isa-table-defns.
5324
        * mach.scm (): Rename arch-data to data.  New member isa-list.
5325
        (arch-* accessors): Renamed from arch:*.  All callers updated.
5326
        (current-arch-isa-name-list): New proc.
5327
        (-arch-parse-isas): Renamed from -arch-parse-isa.
5328
        (def-isa-attr!): Rewrite.
5329
        (