-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.4
10783 lines (7818 loc) · 417 KB
/
ChangeLog.4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Mon Jan 13 19:12:18 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
* unroll.c (find_splittable_givs): When completely unrolling loop,
use biv initial value stored in splittable_regs instead of
bl->initial_value, since the later may not be safe.
* sched.c (schedule_block): When calculating whether a register
crosses a call, must do this after registers are killed and before
new registers are made live.
* x-rs6000: Define INSTALL as /usr/ucb/install -c. /etc/install
(the SYS V version) does not handle -c option as Makefile.in
intends it.
Mon Jan 13 11:21:24 1992 Michael Meissner (meissner at osf.org)
* mips-tfile (parse_stabs_common): Don't relocate N_LBRAC and
N_RBRAC stabs for compatibility with other stabs implementations.
Mon Jan 13 07:41:32 1992 Michael Tiemann (tiemann at cygnus.com)
* cp-decl.c (grokdeclarator): Don't set TREE_PRIVATE here.
TREE_PRIVATE is only for visibility.
(start_function): Don't test TREE_PRIVATE here. #pragma
interface/implementation should properly handle the case of static
(i.e. non-public) defns in implementation section now.
Mon Jan 13 07:31:38 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* rs6000.c (output_ascii): The AIX assembler silently truncates
strings longer than 666 characters, so break them up well before that.
Mon Jan 13 00:26:47 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-decl.c (pushdecl): Warn about shadowing at top level any symbol
that was declared among the function parms. But don't warn for
parms in a nested function.
* tree.c (chain_member): New function.
* sparc.c (output_return): Handle structure value in all the cases.
* toplev.c (main): -gstabs+ means use stabs with gdb extensions.
* fixincludes: Insert #undef NULL before #define NULL.
* gvarargs.h (va_list): Check some macros to avoid redefinition.
* tree.h (DECL_PACKED): New macro.
* c-common.c (decl_attribute): Handle `packed'.
* stor-layout.c (layout_record): Handle DECL_PACKED.
* c-parse.y (attrib): Accept `packed' with no arg.
* c-decl.c (shadow_tag): For useless keyword, just warn.
(duplicate_decls): Don't preserve volatile bit from old decl
if that is just a default declaration for abort, exit, etc.
* cccp.c (do_assert, do_unassert, check_assertion):
No pedantic warnings in system header files.
* ultrix.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Defined.
(WCHAR_TYPE_SIZE): Defined.
* i386.h (HI_REGISTER_NAMES): Add a name for dummy reg 16.
* dbxout.c (flag_minimal_debug): Make it static.
Sun Jan 12 18:10:46 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-lex.c (check_newline): Check #line for `3' meaning system header.
* cccp.c (output_line_command): Output `3' if system header.
* c-tree.h (system_header_p): Declare it.
(ridpointers): Declaration deleted.
* dwarfout.c (fundemental_type_code): Treat OFFSET_TYPE like integer.
(type_is_fundamental, output_type): Likewise.
* optabs.c (expand_float): Abort if FROM has VOIDmode.
* expr.c (expand_expr, FLOAT_EXPR case): Don't pass a VOIDmode.
Sun Jan 12 16:11:40 1992 Michael Meissner (meissner at osf.org)
* mips.h (ASM_OUTPUT_SPACE): If assembler is gas, don't use the
.space directive, since the table PREDICATE_CODES generates tickles
a bug.
Sun Jan 12 15:59:41 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* expmed.c: Include real.h.
(make_tree): Properly handle CONST_INT and handle many more rtl codes.
(expand_mult_add): Don't do folding here; just call make_tree and fold.
* Makefile.in (expmed.o): Includes real.h.
Sun Jan 12 12:26:20 1992 Michael Tiemann (tiemann at cygnus.com)
* cp-decl.c (store_parm_decls): Finish change started 11 Jan 1992.
* cp-decl.c (pushtag): Don't set CLASSTYPE_TAGS after
CURRENT_CLASS_TYPE has been defined.
* cp-lex.c (check_newline): Set INTERFACE_UNKNOWN if we see a
#pragma implementation or if it's the toplevel file.
Sat Jan 11 22:04:34 1992 Michael Meissner (meissner at osf.org)
* mips.md (fix_truncsfsi2_opt): Delete, since the optimizer will
strip the clobbers when substituting a register for a cs'ed value,
unlike GCC 1.
(fix_truncdfsi2_opt): Likewise.
(long long shifts): Fix various typos.
Sat Jan 11 15:26:24 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* expr.h (GEN_FCN): Alternate definition if FUNCTION_CONVERSION_BUG.
* xm-romp.h (FUNCTION_CONVERSION_BUG): Define it.
* i386.md (cmpstrsi recognizers): Change back to repz.
Sat Jan 11 11:18:32 1992 Michael Tiemann (tiemann at cygnus.com)
* cp-decl.c (store_parm_decls): Don't put non-PARM_DECL nodes in the
list that will become DECL_ARGUMENTS.
* cp-decl2.c (grokfield): Convert () initialization to =
initialization in FIELD context.
* cp-decl.c (parmlist_is_exprlist): Now non-static.
* cp-decl.c (grokdeclarator): Don't let static class members be
declared `static' at top-level.
* cp-decl.c (pushdecl_class_level): Don't use DECL_ASSEMBLER_NAME.
* cp-decl.c (grokdeclarator): Don't let language linkage interfere
with declarator grokking--the two are independent.
* cp-call.c (compute_conversion_costs): Look for constructor or type
conversions regardless of whether we have CONTRAVARIANCE_HARSHNESS
or not. Also, `#if 0' some dead code.
* cp-method.c (report_type_mismatch): Fix bugs in formatting error
messages.
* cp-decl.c (grokvardecl): Verify that when static class members are
declared at toplevel, the types match their initial declaration.
Sat Jan 11 08:41:24 1992 Fred Fish (fnf at fishpond)
* config/m68kv4.h (NO_DOLLAR_IN_LABEL): Undefine so that the
default for m68k/SVR4 systems is to use '$', which is more
widely supported.
Sat Jan 11 10:56:10 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu)
* Finish PIC implementation on the 68k
* output.h (flag_pic): Declare here so that insn-*.c can see it.
* reload1.c (reload): When compiling PIC ignore REG_EQUIV notes
which are CONSTANT_P, but are not LEGITIMATE_PIC_OPERAND_P.
* m68k.md (call, call_value): Make these into define_expands. If
compiling PIC code, then load the address of the function into a
register so that we make indirect calls.
(Non-PIC call, call_value): New define_insns. These are
standard call insns.
(PIC call, call_value): New define_insns which output PIC calls.
(movsi): Make this into a define_expand. Legitimize PIC addresses
if necessary. Old movsi code is now an unnamed define_insn pattern.
* m68k.h (GO_IF_LEGITIMATE_ADDRESS case INDIRECTABLE_1_ADDRESS_P):
Use LEGITIMATE_PIC_OPERAND_P to reject SYMBOL_REFS and LABEL_REFS
without PIC relocation when compiling PIC code.
* m68k.c (legitimize_pic_address): New function. Given an address
return that address as "legitimized" PIC code.
(print_operand_address): When generating PIC code, handle PIC
relocated label_refs just like a PIC relocated symbol_ref.
(print_operand_address): If -fpic then add ":w" to displacement in
PIC relocated references.
(print_operand_address): If -fPIC then add ":l" to displacement in
PIC relocated references.
Fri Jan 10 18:03:08 1992 Ken Raeburn (Raeburn@Cygnus.COM)
* cp-init.c (build_new): Don't allocate header for arrays if no
destructor is needed. Also fix broken calculation of array size.
(build_delete): Don't skip array header if no destructor is needed.
Fri Jan 10 14:54:19 1992 Michael Tiemann (tiemann at cygnus.com)
* cp-cvt.c cp-decl2.c cp-expr.c cp-gc.c cp-init.c cp-lex.c cp-parse.y
cp-pt.c cp-search.c cp-tree.c: Clean up problems found with -Wreturn
(from rfg).
* cp-typeck.c cp-tree.c cp-cvt.c cp-lex.c cp-call.c cp-class.c:
Add (unsigned) casts to all places where native SVr4 compilers
expect to see unsigned values.
Fri Jan 10 08:34:36 1992 Fred Fish (fnf at sunfish)
* m68ksgs.h (REGISTER_NAMES): Provide separate versions for
SUPPORT_SUN_FPA defined and not defined.
Fri Jan 10 22:36:41 1992 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
* Improve I/O performance of gcc on VMS.
* cccp.c (VMS_open, VMS_fopen, VMS_freopen): New functions.
(open, fopen, freopen): Define as macros on VMS.
* toplev.c (VMS_fopen): New function.
(fopen): Define as macro on VMS.
Fri Jan 10 22:00:50 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* genrecog.c (merge_trees): If two trees both have actions, but
one adds clobbers and one doesn't, ignore the one that does.
* genemit.c (gen_split): Say that we are giving the definition number
in our error message.
* genrecog.c (fatal): Likewise.
* genoutput.c (scan_operands): Likewise.
* caller-save.c: Include expr.h (for gen_move_insn).
(regno_save_elim): Deleted.
(init_save_areas): Don't initialize it.
(setup_save_areas): Don't set it.
(save_call_clobbered_regs, restore_referenced_regs): Accept mode,
not spill register.
(insert_save_restore): Don't do our own register elimination and
reloading; instead set the insns we make to the desired mode.
* reload1.c (struct elim_table): New field MAX_OFFSET.
(reload): Always call init_save_areas.
Initialize max_offset each pass.
At each CALL_INSN, create a need for a spill register that will
be used by caller-save.
Pass mode for insns to save_call_clobbered_regs instead of a
spill reg number.
Call reload_as_needed if we will have to reload the caller-save
insns, even if nothing else needs reload (unlikely).
(eliminate_regs_in_insn): Record maximum offset value.
* Makefile.in (caller-save.o): Includes expr.h.
* reload.c (find_reloads): CALL_INSNs can't have output reloads.
* reload1.c (emit_reload_insns): Put any reloads for a CALL_INSN
in front of any immediately-preceeding USE insns.
* flow.c (life_analysis): Mark all global regs as live at the end of
the function.
(propagate_block): Each call makes all global registers live.
(mark_used_regs): A RETURN may use the stack pointer and uses all
global regs.
* cse.c (cse_insn): A CALL_INSN clobbers any global regs.
* reorg.c (mark_referenced_resources): Calls used global regs.
(mark_set_resources): CALL_INSNs clobber global regs.
Fri Jan 10 17:24:06 1992 Michael Meissner (meissner at osf.org)
* collect2.c (whole file): Major rewrite to merge in collect3
functionality which uses GCC to build up the constructor and
destructor tables, instead of using the assembler. Also improve
the support for cross compilers to find the tools. The old assembly
language support has been removed.
* mips-tfile.c (CODE_MASK): Move to mips.h to use with mips-tdump
also.
(MIPS_IS_STAB): Likewise.
(MIPS_MARK_STAB): Likewise.
(MIPS_UNMARK_STAB): Likewise.
* mips-tdump.c (various): Changes by Per Bothner to print
encapsulated stabs, and to shorten the output.
* mips.h (MIPS_VERSION): Set Meissner version # to 7.
(cmp2_op): Make cmp2_op a real function instead of just a
macro to cmp_op.
(OPTIMIZATION_OPTIONS): -O now sets flag_caller_saves and
flag_schedule_insns_after_reload.
(CC1_SPEC): Fix typo preventing -mgpopt from being set if
optimization.
(PREDICATE_CODES): Define.
(USE_COLLECT, EXTENDED_COFF, NO_UNDERSCORES): Delete, not needed in
GCC 2.00.
(ASM_INT_OP, ASM_SHORT_OP, ASM_CHAR_OP): Likewise.
(CODE_MASK): Move from mips-tfile.
(MIPS_IS_STAB): Likewise.
(MIPS_MARK_STAB): Likewise.
(MIPS_UNMARK_STAB): Likewise.
* mips.c (cmp2_op): Make this a real function, instead of a macro
pointing to cmp_op.
(volatile_buffer): New static variable to support .set volatile.
(mips_move_1word): Do .set volatile/.set novolatile around volatile
memory references.
(mips_move_2words): Likewise.
* mips.md (sne define_split): Fix so that it generates a gtu 0.
(all set cc define_splits): Remove reload_completed tests.
(all set cc define_insns): Don't allow 0 as operand 1.
Fri Jan 10 16:40:45 1992 Jeffrey A. Law (law at wombat.gnu.ai.mit.edu)
* m68k.md (addsi3, addhi3, subsi3, stack adjustment peepholes):
Perform small (8 < N <= 16) constant additions and subractions to
address registers with two addqw (or subqw) instructions.
Fri Jan 10 06:54:22 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* calls.c (expand_call): Check for _longjmp as well as longjmp;
clean up code a bit and merge with check for setjmp-like names.
Emit a BARRIER if this is a call to longjmp in addition to
volatile calls.
Fri Jan 10 02:25:54 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-typeck.c (digest_init): Properly return error_mark_node
after invalid element in array initializer.
* gcc.c (pexecute): Use `fork' in error message if don't have vfork.
* Makefile.in: Add .NOEXPORT.
Thu Jan 9 13:36:25 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* expr.c (expand_expr): Handle OFFSET_REF.
* cse.c (simplify_binary_operation): Never use associative law for
floating arithmetic.
* fixinc.svr4: Renamed INCLUDES to INPUT.
* i386.md (cmpstrsi recognizers): Output repe, not repz.
Thu Jan 9 18:02:34 1992 Dennis P. Glatting (dennisg at tti)
* tree.h (CONSTRUCTOR_NAME_FORMAT): Changed name format. Old format
was recognized as destructors not constructors.
* objc-actions.c (build_module_descriptor):
Null-terminate global_object_name.
Thu Jan 9 10:35:58 1992 Tom Wood (wood at dg-rtp.dg.com)
* sdbout.c (sdbout_syms): Don't attempt to output a LABEL_DECL.
Thu Jan 9 08:17:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* fold-const.c (merge_component_references): Treat constants as
unsigned, so we don't get extra sign bits where we don't want them.
Wed Jan 8 19:12:59 1992 James Van Artsdalen (james at bigtex.cactus.org)
* reload.c (combine_reloads): Don't use a fixed_reg as an reload
reg, even if it dies.
* loop.c (record_giv): Fix typo extracting insn_uid.
Wed Jan 8 15:41:10 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* cpp.texi, gcc.texi: Files renamed.
* invoke.texi, extend.texi, md.texi, rtl.texi, tm.texi: New subfiles.
* Makefile.in: Corresponding changes.
* fixincludes: Renamed INCLUDES to INPUT.
* m68k.c (notice_update_cc, print_operand): Fix typos.
* cp-decl.c (expand_static_init): Save and restore current obstacks.
* c-decl.c (poplevel): Put labels in BLOCK_VARS of top-level block.
Wed Jan 8 12:53:48 1992 Michael Tiemann (tiemann at cygnus.com)
* cp-decl.c (expand_static_init): Switch to PERMANENT_OBSTACK during
expansion.
Wed Jan 8 07:45:58 1992 Tom Wood (wood at dg-rtp.dg.com)
* m88kv3.h (STARTFILE_SPEC): SVR3 has *crt0.o files.
* configure (m88k-*sysv{3,4}): The files are named m88kv{3,4}.
Wed Jan 8 06:01:44 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* romp.md (mftbi): Allow memory in the contraints since there can't
be an input reload on an insn that uses cc0.
* cse.c (FIXED_BASE_PLUS_P): Include virtual_incoming_args_rtx.
(NONZERO_BASE_PLUS_P): New macro.
(find_comparison, simplify_relational_operation_args): Use
NONZERO_BASE_PLUS_P instead of FIXED_BASE_PLUS_P when appropriate.
* m68k.md (peepholes): Don't change around stack adjusts and pushes
when we are pushing something whose address involves sp.
* cse.c (simplify_unary_operation): Check for operations on
integers by looking at mode of OP, not output mode, to avoid
confusion with FIX operations whose result is an integer.
* rtl.h ([df]const[012]_rtx): Deleted.
(const_tiny_rtx): New declaration.
(CONST0_RTX): Use const_tiny_rtx instead of {d,f,}const0_rtx.
(CONST1_RTX, CONST2_RTX): New macros.
* emit-rtl.c ([df]const[012]_rtx): Deleted.
(const_tiny_rtx): New definition.
(init_emit_once): Initialize const_tiny_rtx instead of old vars.
* cse.c (simpify_binary_operation): Use CONST[01]_RTX.
* varasm.c (immed_real_const_1): Likewise.
* combine.c (subst): Likewise.
* reg-stack.c (record_reg_life, stack_reg_life_analysis): Likewise.
* convex.md, i860.md, m88k.c, spur.md, vax.h, ns32k.md: Likewise.
Tue Jan 7 22:11:17 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* x-i386isc (ENQUIRE_LDFLAGS): New defn: add -posix.
* protoize.c (_POSIX_SOURCE): Define only if POSIX.
* m68k.h (FPA_REG_P): Always define this somehow.
* c-decl.c (c_decode_option): Handle -Wchar-subscripts.
* c-typeck.c (build_array_ref): Do the real work.
Tue Jan 7 21:15:54 1992 Michael Meissner (meissner at osf.org)
* mips.md (branch_zero_false): Use correct mode (CC_0) on
match_operator.
Tue Jan 7 14:24:45 1992 James Van Artsdalen (james at bigtex.cactus.org)
* reg-stack.c (replace_reg): get mode class from a mode, not a reg.
Tue Jan 7 14:16:18 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* reg-stack.c (emit_pop_insn): Fix typo FPmode_reg.
* protoize.c (longjmp): Don't declare it.
Tue Jan 7 09:47:47 1992 Michael Tiemann (tiemann at cygnus.com)
* cp-lex.c (real_yylex): From John Hassey, allocate space for the
terminating null on wide character literals.
Tue Jan 7 07:41:42 1992 Tom Wood (wood at dg-rtp.dg.com)
* m88kv3.h (LIB_SPEC): Add -lg.
Tue Jan 7 06:29:30 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* stor-layout.c (layout_type): Don't over-align a structure
when strict alignment is not required.
* rs6000.h (CALL_USED_REGISTERS): r31 should not be marked call-used.
* rs6000.md (add-and-compare): Fix duplicate operand number.
* a29k.md (inbyte, inhw): Correct duplicate operand number.
* fold-const.c (fold, case MULT_EXPR): Simplify (a * (1 << b)).
* combine.c (subst, case MULT): Likewise.
(simplify_shift_const, shift cases): Similarly, associate A << B << C.
* genoutput.c (seen): New array.
(scan_operands): Give error if an operand number was specified
twice. Include pattern number in error message.
(gen_insn, gen_expand, gen_split, gen_peephole): Initialize `seen'.
(gen_split, gen_peephole): Add initializations for arrays that
are copied.
* optabs.c (expand_unop): Complete recent change; one TARGET was
not changed to TEMP.
* expmed.c (expand_mult): Always try multiplication by value and
by negated value. Fix bug where we don't include the cost of the negate
when seeing which way is better. Write proper value in REG_EQUAL
note.
* optabs.c (extendtab): Replacement for {zero,sign}_extend_codes.
(can_extend_p): Use new table and return type is not enum insn_code.
(gen_extend_insn): Deleted; not used.
(init_extends): Make like init_flottab: use new table and initialize
unused entries to CODE_FOR_nothing, not zero.
* expr.c (convert_move): can_extend_p fails if it returns
CODE_FOR_nothing, not zero.
* expr.h (can_extend_p): Add definition.
* expr.h: Add "extern" to function definitions.
Mon Jan 6 10:12:34 1992 Leonard Norrgard (vinsci at nic.funet.fi)
* m68k.c (SUPPORT_SUN_FPA): Conditionalize references to the
optional Sun 3 Floating Point Accelerator with SUPPORT_SUN_FPA.
* m68k.h (SUPPORT_SUN_FPA): Likewise.
* m68k.c (notice_update_cc): New function.
* m68k.h (NOTICE_UPDATE_CC): Just call notice_update_cc.
* sun3.h (SUPPORT_SUN_FPA): New define.
Mon Jan 6 16:42:43 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* varasm.c (assemble_global, assemble_label): New functions.
* objc-actions.c (finish_objc): Call them to define and globalize.
Use output_constant to reference a class.
* Makefile.in (install-limits-h): New target.
(install-headers): Depend on install-limits-h.
(USER_H): Deleted LIMITS_H.
(INSTALLED_H): Added limits.h.
(mostlyclean): Remove tmp-limits.h.
* limitx.h: New file.
* x-isc: File deleted.
* objc-actions.c (build_module_descriptor): Init global_object_name.
* Makefile.in (collect2): Depend on version.o.
* protoize.c (PATH_MAX): Definition deleted. Just test it
to see if param.h should be included.
* cse.c (simplify_binary_operation, case MULT): Make a copy
of the operand when converting 2.0 * X to X+X.
* reload.c (find_reloads): Refine when we set force_reload and
better document the cases.
Mon Jan 6 08:22:19 1992 James Van Artsdalen (james at bigtex.cactus.org)
* i386.c (output_float_compare): Output only single-pop compare
if both operands are the FP top of stack reg.
When comparing FP top of stack with itself, print `%st(0)' as the
reg name, not `%st'.
Mon Jan 6 12:01:51 1992 Tiggr (rcpieter at mole.gnu.ai.mit.edu)
* arm.md (mulsi3): Fixed contraints.
Mon Jan 6 08:21:46 1992 Tom Wood (wood at dg-rtp.dg.com)
* m88k-move.sh: Renamed from m88k-movstr.sh. Rename the generated
files move*.asm from movstr*.asm to be SVR3-legit.
* t-m88k, t-m88kluna, t-m88kv4: Use the new names.
* c-aux-info.c, dbxout.c: Include errno.h as in protoize.c.
* Makefile.in (BISONFLAGS): Don't use -v since *.output is big.
(cp-parse.c): Do use -d to create cp-parse.h.
(cp-parse.o): Don't define PARSE_OUTPUT.
* x-mips, x-m88kdgux (BISONFLAGS): No -v.
Mon Jan 6 07:54:55 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* genpeep.c (match_rtx): Loop over vectors (e.g., PARALLEL) in the
natural order so we see an operand before we see a MATCH_DUP referring
to it.
* genrecog.c (write_tree_1): Simplify code that writes braces and
avoid writing them unnecessarily.
Don't write dead code when last test was unconditional.
* optabs.c (expand_binop, expand_twoval_binop, expand_unop):
Standardize loop for wider mode.
(emit_cmp_insn, emit_float_lib_cmp): Likewise.
(expand_binop): Correct how extensions are done: use convert_to_mode,
don't use SUBREG for non-integer operations, and remove test
involving HOST_BITS_PER_INT.
(expand_unop): Similar changes; make code closer to expand_binop.
Handle failure of recursive call when expanding. Fix incorrect use
of TEMP when widening. Use SUBREG for NEG and NOT.
* reload.c (find_reloads_address_part): New function.
(find_reloads_address): Call it instead of push_reload when we are
reloading a PLUS or a constant.
Sun Jan 5 18:34:15 1992 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
* make-cc1.com: Change file names from cp-tab.* to cp-parse.*.
Sun Jan 5 18:06:11 1992 Michael Tiemann (tiemann at cygnus.com)
* cp-decl.c (grokdeclarator): Correctly grok REFERENCE_TYPE
parameters when TYPE_REFERENCE_TO is automagically converted.
Sun Jan 5 05:19:19 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* tree.h (CONSTRUCTOR_NAME_FORMAT): New macro.
* objc-actions.c (build_module_descriptor): Make constructor name
from name of file or of a global that it defines.
Return constructor name.
(finish_objc): Use name returned as name to call.
* protoize.c (GUESSPATHLEN): New macro.
(main): Use that for initial buffer size for getcwd.
* dbxout.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c.
(dbxout_init): Call getcwd in loop, as in protoize.c.
* c-aux-info.c (getwd, getcwd, GUESSPATHLEN): Define as in protoize.c.
(gen_aux_info_record): Call getcwd in loop.
* i386v.h, i386vgas.h (MAXPATHLEN): Don't define.
* svr3.h (LINK_SPEC): Don't pass -K.
* reload.c (find_reloads): Do record in non_reloaded_operands if no -O.
* m68k.c (output_function_prologue, output_function_epilogue):
Add braces and adjust conditionals to fix balance and indentation.
* objc-actions.c (build_module_descriptor): Mark __objc_file_init used.
Sat Jan 4 13:27:40 1992 James Van Artsdalen (james at bigtex.cactus.org)
* protoize.c: unprotoize getcwd & fork declarations.
(edit_fn_declaration): use "VOLATILE", not "volatile".
Sat Jan 4 20:19:41 1992 Michael Meissner (meissner at osf.org)
* mips.h (set_volatile): Add new global variable reference.
* mips.c (set_volatile): New global variable to keep track of the
number of .set volatile's done. At present, no code actually turns
this on.
(mips_move_1word): Use %. instead of putting const0_rtx into an
unused operator and using %z to get to $0, which is hardwired to 0.
(mips_move_2words): Likewise.
(override_options): Allow %., %{, and %} punctuation.
(print_operands): Add support for %. to get the current name of
register 0, %{ to turn on .set volatile, and %} to turn on .set
novolatile.
(function_epilogue): Give an error if .set volatile was left on in
the epilogue.
(mips_asm_file_start): Don't emit .set nobopt unless we are filling
branch delay slots.
* mips.md (set reg on comparison define_splits): Don't allow the
scheduler to split any set of a comparision insns, to work around a
bug in sched.c.
Sat Jan 4 23:01:41 1992 Jeffrey A Law (law at planet.super.org)
* m68k.c (output_function_prolog): Decrement (instead of
increment) num_saved_regs when a frame pointer is needed.
(the link/unlk will restore the frame pointer register)
Sat Jan 4 11:11:24 1992 Dennis P. Glatting (dennisg at tti)
* next.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef before defining.
Sat Jan 4 07:40:25 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* expr.c (convert_to_mode): Correctly zero-extend a constant into
a mode whose size is twice the host int size.
* machmode.h (enum mode_class): Add MAX_MODE_CLASS.
(GET_CLASS_NARROWEST_MODE): New macro.
(byte_mode, word_mode): Add declarations.
* caller-save.c (choose_hard_reg_mode): Use GET_CLASS_NARROWEST_MODE.
* combine.c (make_extraction): Don't use explicit QImode and SImode.
* cse.c (simplify_unary_operation): Integer CONST_DOUBLEs have
VOIDmode, not DImode.
(simplify_binary_operation): Remove explicit DFmode reference.
* expmed.c (init_expmed): Don't make our own copy of word_mode.
(store_bit_field, extract_bit_field): Remove explicit
QImode reference; don't recompute word_mode.
(store_fixed_bit_field, {store,extract}_split_bit_field): Don't
recompute word_mode.
(emit_store_flag): Likewise.
(extract_fixed_bit_field): Replace explicit mode references with a
loop on modes; don't recompute word_mode.
* expr.c (convert_mode, move_block_{to,from}_reg, use_regs): Don't
recompute word_mode.
(emit_push_insn, do_jump_by_parts*): Likewise.
(push_block): Remove explicit QImode reference.
(get_inner_reference): Use mode_for_size.
* emit-rtl.c (restore_reg_data): Make unused regs word_mode.
(operand_subword): Don't recompute word_mode.
* fold-const.c (optimize_bit_field_compare): Likewise.
(merge_component_references): Likewise.
* flow.c (mark_set_1, mark_used_regs): Likewise.
* loop.c (combine_movables): Use GET_CLASS_NARROWEST_MODE.
* optabs.c (expand_binop): Replace SImode references in multi-word
multiply with the mode used for each subpart.
(expand_binop, expand_unop): Don't recompute word_mode.
* reg-stack.c (reg_to_stack): Use GET_CLASS_NARROWEST_MODE.
* reload.c (find_equiv_reg): Check for MODE_FLOAT, not SFmode/ DFmode.
* rtl.c (class_narrowest_mode, byte_mode, word_mode): Define.
(init_rtl): Initialize them.
* sched.c (attach_deaths): Don't recompute word_mode.
* stor-layout.c (mode_for_size): Use GET_CLASS_NARROWEST_MODE.
(get_best_mode): Likewise.
Don't recompute word_mode.
* unroll.c (unroll_loop): Replace default of SImode with word_mode.
* calls.c (calls_alloca): Don't recurse on BLOCK_SUPERCONTEXT.
Sat Jan 4 03:42:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* protoize.c (pointer_type): Use char * if non-ANSI.
(const_pointer_type): Likewise.
(malloc, realloc): Declare to return pointer_type.
(setjmp): Don't declare, to avoid trouble with macro defns.
(const): If not ANSI, define as empty macro.
Sat Jan 4 00:59:53 1992 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu)
* sparc.c (legitimize_pic_address): When converting a symbol_ref,
use an extra temp reg when -fPIC, and add a REG_EQUAL note to the
insn referencing the global offset table. This allows loop to
optimize these PIC sequences.
Fri Jan 3 20:29:57 1992 James Van Artsdalen (james at bigtex.cactus.org)
* i386.md (return): Always output return insns.
* i386.h (FUNCTION_PROLOGUE): If the last nonnote insn in a function
is a BARRIER, don't output a function epilogue.
Fri Jan 3 12:43:09 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips (ALL):
Use libgcc.a, not libgcc.
* protoize.c (STRINGIFY): Provide non-ANSI alternative definition.
* c-decl.c (get_parm_info): Keep non-parms in the parm list.
* stmt.c (cost_table): Now short.
(estimate_case_costs): Handle that.
* Makefile.in (float.h, *protoize.1, gcc.xtar.Z):
Make temp files, then rename.
(clean): Delete those temp files.
* Makefile.in (c-parse.c): Don't use -d, since cp-parse.output is big.
Fri Jan 3 10:32:31 1992 Michael Tiemann (tiemann at mole.gnu.ai.mit.edu)
* Makefile.in (cp-parse.c): Add missing -o flag.
Fri Jan 3 08:21:04 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* reg-stack.c: Complete last change (renaming DFmode_reg).
* expmed.c (init_expmed): Pass dummy pointer to number of clobbers to
recog so it can let us see patterns that need added clobbers.
Fri Jan 3 07:54:32 1992 Tom Wood (wood at dg-rtp.dg.com)
* c-decl.c (implicitly_declare): Record whether this is an implicit
declaration before setting IDENTIFIER_IMPLICIT_DECL.
Thu Jan 2 21:17:12 1992 Michael Meissner (meissner at osf.org)
* mips.c (compute_frame_size): Don't count FP registers twice.
Thu Jan 2 14:59:55 1992 Michael Tiemann (tiemann at hal)
* cp-lex.h: Renamed from cp-parse.h. Now cp-parse.h is the file
created by bison from cp-parse.y.
* Makefile.in: reflect this naming change.
Thu Jan 2 12:37:32 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* objc-actions.c (build_obj_method_call): Typo in NEXT case.
* next.h (HAVE_ATEXIT): Defined.
* c-decl.c (duplicate_decls):
No error if override decl that has DECL_BUILT_IN_NONANSI.
* Makefile.in (c-parse.c): Don't use -o, since cp-parse.output is big.
* Makefile.in (protoize, PROTOIZE): Delee these 2 new targets;
`protoize' was redundant.
* c-typeck.c (build_function_call): If the fn is volatile,
make a pointer-to-volatile-function type pointer.
* calls.c (expand_call): Handle calls to such pointers as volatile.
* expmed.c (init_expmed): Pass all 3 args to `recog'.
* varasm.c (output_constant): For REAL_TYPE, mode_for_size arg is bits.
* sparc.md (storing SF into mem at symb addr): Fix typos.
* protoize.c (my_access, my_stat, my_execvp, my_link, my_unlink):
(my_open, my_chmod): Macros that run access, stat,... with casts.
Renamed from former POSIX-only macros and made unconditional.
All calls to these functions also renamed.
* m68k.h (LEGITIMATE_PIC_OPERAND_P): Undo change below,
thus making the behavior really change to accept all CONST_DOUBLE.
* libgcc1.c, libgcc2.c: Renamed from gnulib1.c, gnulib2.c.
* gcc.c (link_command_spec): Link with libgcc.a.
* Makefile.in (libgcc): Rename targets and variables from gnulib.
* *.h, t-*, x-*: Rename refs to those symbols and files.
* expr.c (LIBGCC_NEEDS_DOUBLE): Renamed from GNULIB_...
* m68k.c (symbolic_operand): Reject all CONST_DOUBLE.
* m68k.h (SELECT_RTX_SECTION): Use LEGITIMATE_PIC_OPERAND_P.
(LEGITIMATE_PIC_OPERAND_P): Reject the CONST_DOUBLEs
that symbolic_operand used to accept.
Thu Jan 2 21:06:13 1992 James Van Artsdalen (james at bigtex.cactus.org)
* protoize.c (is_id_char,free_def_dec,check_aux_info):
Don't declare them `inline'.
(save_def_or_dec,munge_compile_params,find_extern_def,check_source,
scan_for_missed_items): Use alloca instead of variable length arrays.
* Makefile.in (protoize,unprotoize): Get $(LIBS) for alloca.
Thu Jan 2 21:40:52 1992 Jeffrey A Law (law at b115.super.org)
* sparc.h (OPTIMIZATION_OPTIONS): Enable caller-saves for -O2
and higher optimization levels.
Thu Jan 2 06:46:56 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* final.c (final_scan_insn): Compare debug_info_level with entries in
its enum, not with integers.
* reg-stack.c ({SF,DF}mode_reg): Deleted.
(FP_mode_reg): New array, indexed by register and by mode.
(reg_to_stack): Replace initialization of old vars with initialization
of FP_mode_reg.
(replace_reg): Use new array.
* romp.c, romp.h, romp.md: Rename symbolic_operand to
romp_symbolic_operand.
* emit-rtl.c (init_emit_once): Create virtual registers before the
structure value regsisters, since the latter might use the former.
* varasm.c (output_constant): Fix typo: missing arg to expand_expr.
* vax.md (call_pop, call_pop_value): Use correct register number for
stack pointer. Add new patterns for case of zero args.
Thu Jan 2 08:12:59 1992 Fred Fish (fnf at sunfish)
* x-amix: Minor changes to some comments.
* x-amix (CCLIBFLAGS, GNULIB2_CFLAGS, XCFLAGS): Remove definitions.
* x-amix (manext): Add definition.
Thu Jan 2 11:14:28 1991 Ken Raeburn (Raeburn@Cygnus.COM)
* fold-const.c (fold, case PLUS_EXPR): If association permits
reduction to var+0, convert var to the desired type before returning
it.
Wed Jan 1 10:37:50 1992 Michael Tiemann (tiemann at cygnus.com)
* expr.c (convert_move): When GET_MODE_BITSIZE (TO_MODE) >
BITS_PER_WORD, check that it's also > GET_MODE_BITSIZE (FROM_MODE).
* expr.c (expand_expr): In CONSTRUCTOR case, preserve
MEM_IN_STRUCT_P when creating a new target when TARGET and EXP might
not be independent.
Wed Jan 1 18:32:03 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu)
* c-parse.y (parmlist_1): Accept `PARMS; PARMS'.
(parmlist_or_identifiers_1): Likewise. Also use plain parmlist_2.
Delete the ([names] decls) syntax.
(defn_parms, defn_parmlist_2): Deleted.
* c-decl.c (get_parm_info): Put parm decls into original order.
Don't nreverse the original decls list.
(pushdecl, duplicate_decls): Avoid error for forward parm decl.
(clear_parm_order): New function.
(push_parm_decl): Record original order of parms.
* c-decl.c (struct binding_level): New slot subblocks_tag_transparent.
(pushlevel): Use that, not ->parm_flag.
(start_function): Set that slot.
* config.sub: Always distinguish between amix and sysv4.
Convert commodore to cbm and digital to dec.
* m68k.md (stack adjust then push SI): New peephole.
* m68k.h, fx80.h (WCHAR_TYPE): Use precisely "long int".
* sun3.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Undef before defining.
* cexp.y (yylex): Use LONG_TYPE_SIZE, not INT_TYPE_SIZE.
(LONG_TYPE_SIZE): Add default definition.
* objc-actions.c: Declare index and rindex.
(build_module_descriptor): Simplify last change.
Use a fixed name for the initialization function.
(init_objc): Don't do constructor here.
(finish_objc): Do it here, with proper name if not NEXT_OBJC_RUNTIME.
* protoize.c: Unprotoized.
(edit_file): Improve message in -n case.
* Makefile.in (LANGUAGES): Add proto.
(C, C++, OBJC, OBJECTIVE-C): Aliases for l.c. targets.
(PROTOIZE, protoize, PROTO): Aliases for proto.
(rest.encap): Delete dep `proto'.
Wed Jan 1 15:07:41 1992 Michael Meissner (meissner at osf.org)
* mips.md (extend*): Use gen_lowpart to make the SUBREG, rather than
doing it wrong by hand. If not optimizing, make sign extends from
memory not force the operand into a register first and do two
shifts -- combine already does this when optimizing.
(copyright): Add 1992 to list of years the file was modified.
Wed Jan 1 06:10:01 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* reload1.c (reload): When forcing an illegitimate constant into
memory, use mode of SET_DEST in case constant is VOIDmode.
* stmt.c (expand_end_case): Pass index type to emit_case_nodes instead
of unsigned flag.
(node_has_{low,high}_bound): Accept INDEX_TYPE as an argument and see
if the a node value is at the limit of values of the type.
(node_is_bounded): Accept INDEX_TYPE and pass to above functions;
always call them.
(emit_case_nodes): Accept INDEX_TYPE instead of UNSIGNEDP as arg;
pass index type to recursive calls and to calls to bound checking
functions.
* varasm.c (assemble_integer_zero): Deleted.
(assemble_integer, assemble_real): New functions.
(output_constant_pool, output_constant): Use new functions.
* final.c (end_final, profile_function): Likewise.
* calls.c (calls_alloca): Don't interpret operands that are RTL as if
they were trees; check args of nested CALL_EXPR for alloca calls.
Wed Jan 1 16:51:30 1992 Fred Fish (fnf at fishpond)
* Makefile.in (manext): Include the '.' character.
(mandir): Don't use manext.
(install-man, uninstall): Change uses of manext.
Wed Jan 1 21:31:01 1992 Ron Guilmette (rfg at ncd.com)
* i860.md (cmpeqsi, cmpltsi, cmpgtsi): Made control flow more obvious.
(cmpnesi, cmplesi, cmpgesi): New patterns.
(cmpgeusi, cmpleusi): Fixed bug in compares against zero.
Tue Dec 31 11:16:37 EST 1991 Dennis P. Glatting (...!uunet!tti!dennisg)
* objc-actions.c (build_module_descriptor): Emit a constructor
function. Constructor function calls a ObjC run-time routine passing
a pointer to the module's module structure.
(init_objc): Call different constructor function if not Next.
(build_selector_translation_table): Don't give a selector global scope.
Changed in construction of decl_specs.
Tue Dec 31 18:06:23 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* genrecog.c (add_to_sequence): Clear PREDS for "const_int_operand".
(same_modes): Properly check when we should ignore a mode test.
* reload1.c (emit_reload_insns): Only change spill_reg_store for
output reloads.
Clear spill_reg_store when we did an input reload to a spill register.
(delete_output_reload): Use single_set.
(count_occurrences): Don't count use which is SET_DEST.
Tue Dec 31 16:51:37 1991 Michael Meissner (meissner at osf.org)
* mips.h (MIPS_VERSION): Change Meissner version # to 6.
(ASM_FINAL_SPEC): Don't pass -d and friends to mips-tfile.
(CONSTANT_ALIGNMENT): Align constructors on word boundaries.
* mips.md (extend*): Replace sign extension insns with a
define_expand that converts the expansion into the appropriate
shifts. Add insns that do sign extension from memory, which the
optimizer will utilitize if the thing being sign extended really
comes from memory. This allows the shifts to compete for CSE, at a
potential cost of generating worse code if reload spills a HI or QI
register to the stack.
(sne define_split): Instead of using a constant 0 as the second
argument to the slti instruction, use a hard coded regisiter 0.
* mips-sysv.h (MD_STARTFILE_PREFIX): Define to point into the
directory where the MIPS compilers live.
(LIB_SPEC): Add crtn.o after all libs.
(STARTFILE_SPEC): Use crt1.o, not crtn.o.
(MACHINE_TYPE): Correct typo, this is System V, not BSD.
Changes are from Ron Guilmette (rfg at ncd.com).
* configure (mips-*-sysv): Correctly use mips-sysv.h instead of
mips.h. Change is from Ron Guilmette.
Tue Dec 31 16:51:37 1991 Michael Stump (mrs at charlie.secs.csun.edu)
* t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips: Remove
collect2 from EXTRA_PASSES, as collect2 does not need installing as
collect2. Also, change the symlink back to a hard link.
* Makefile.in: Add collect2 to STAGESTUFF as it is something that
needs removing or moving to stagen, but it should not be installed.
Tue Dec 31 15:47:50 1991 Michael Tiemann (tiemann at hal)
* combine.c (simplify_comparison): Swap evaluation of OP0 and OP1 so
the lattern can use the result of the former.
* conditions.h: In comments, refer to `tm.h', since `tm-' is no