Fix memory corruption probelem in reload.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
2
3         * reload.c (find_reloads_address_part): If have a CONST_INT, create
4         a new one before passing it to force_const_mem.
5
6         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
7         find_reloads_address call.
8
9 Wed Nov 18 22:13:00 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10
11         * expr.c (store_expr): Don't generate load-store pair
12         if TEMP is identical (according to ==) with TARGET.
13
14 Tue Nov 17 22:25:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
15
16         * reload1.c (reload_reg_free_for_value_p): When considered reload
17         has an output, matching inputs are not sufficient to avoid conflict.
18
19 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
20
21         * hash.h (hash_table_key): New type.
22         (hash_entry): Change `string' field to generic `key'.
23         (hash_table): Add `comp' and `hash' functions.
24         (hash_table_init): Take them as input.
25         (hash_table_init_n): Likewise.
26         (hash_lookup): Modify for generic keys.
27         (hash_newfunc): Likewise.
28         (hash_traverse): Likewise.
29         (string_hash): New function.
30         (string_compare): Likewise.
31         (string_copy): Likewise.
32         * hash.c (hash_table_init_n): Modify for generic keys.
33         (hash_table_init): Likewise.
34         (hash_lookup): Likewise.
35         (hash_newfunc): Likewise.
36         (hash_traverse): Likewise.
37         (string_hash): Split out from hash_lookup.
38         (string_compare): New function.
39         (string_copy): Split out from hash_lookup.
40         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
41         tables.
42         (symbol_hash_lookup): Likewise.
43         (file_hash_newfunc): Likewise.
44         (file_hash_lookup): Likewise.
45         (demangled_hash_newfunc): Likewise.
46         (demangled_hash_lookup): Likewise.
47         (tlink_int): Likewise.
48         (read_repo_file): Likewise.
49         (recompile_files): Likewise.
50         (demangle_new_symbols): Likewise.
51         (scan_linker_output): Likewise.
52         
53 Tue Nov 17 17:13:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
54
55         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
56
57 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@mhpcc.edu>
58
59         * rs6000.c (output_mi_thunk): Improve test for local branch.
60
61 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
62
63         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
64
65 Mon Nov 16 21:02:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
66
67         * reload1.c (reload_reg_free_before_p): Delete.
68         Changed all callers to use reload_reg_free_for_value_p instead.
69         (reload_reg_free_for_value_p): Handle more reload types.
70         A RELOAD_FOR_INPUT doesn't conflict with its
71         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
72         Add special case for OUT == const0_rtx.
73         Added ignore_address_reloads argument.  Changed all callers.
74
75 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
76
77         * toplev.c (compile_file): Don't pedwarn about undefined static
78         functions just because we passed -Wunused.
79
80 Mon Nov 16 04:41:41 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
81
82         * function.c (purge_addressof_1): Unshare rtl created by
83         store_bit_field.
84
85 Mon Nov 16 04:23:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
86
87         * regmove.c (regmove_optimize): Don't do anything but
88         optimize_reg_copy[123] when flag_regmove is not set.
89
90 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
91
92         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
93         value in paradoxical SImode result, rather than truncating midpoint.
94
95 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
96
97         * alpha.c (reg_not_elim_operand): New.
98         * alpha.h (PREDICATE_CODES): Add it.
99         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
100         for the multiplicand.
101
102 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@mhpcc.edu>
103
104         * rs6000.md (movsf): Remove explicit secondary-reload-like
105         functionality.  Only truncate SFmode store if in FPR.
106         (movsf splitters): Combine const_double splitters.
107         (movsf_hardfloat): Add GPR support.
108
109 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
110
111         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
112         deprecate -mlive-g0 and -mbroken-saverestore.
113         * t-splet (MULTILIB_OPTIONS): Likewise.
114         
115         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
116         in a leaf function.  Clarify total_size/extra_size relationship.
117
118 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
119
120         * i386/cygwin32.asm: Delete.
121         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
122         * i386/cygwin32.h: Delete.
123         * i386/cygwin.h: New file, renamed from cygwin32.h.
124         * i386/t-cygwin32: Delete.
125         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
126         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
127         * i386/x-cygwin32: Delete.
128         * i386/x-cygwin: New file, renamed from x-cygwin32.
129         * i386/xm-cygwin32: Delete.
130         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
131         renamed cygwin_ funcs for path translations.
132         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
133         * i386/winnt.c: Remove "32" from comment about cygwin.
134         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
135         * rs6000/cygwin32.h: Delete.
136         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
137         -D__CYGWIN__ to CPP_PREDEFINES.
138         * rs6000/x-cygwin32: Delete.
139         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
140         * rs6000/xm-cygwin32: Delete.
141         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
142
143         * configure.in: Check for cygwin* instead of cygwin32.  Account
144         for the rename of cygwin-related config files to lose the "32"s.
145         * configure: Regenerate.
146
147         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
148         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
149
150 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
151
152         * Makefile.in (JAVAGC): New macro.
153         * configure: Rebuilt.
154         * configure.in: Recognize --enable-java-gc argument.  Subst
155         `JAVAGC' variable.
156
157 Thu Nov 12 03:32:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
158
159         Handle equivalences that have been obscured by gcse:
160
161         * reload1.c (reload): Handle equivalences set up in multiple places.
162         * local-alloc.c (reg_equiv_init_insns): New variable.
163         (no_equiv): New function.
164         (update_equiv_regs): Handle equivalences set up in multiple places.
165         Don't ignore an insn just because its destination is likely to be
166         spilled.
167
168 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
169
170         * except.c (expand_eh_return): Readd force_operand call lost in
171         Sept 15 change.
172
173 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@mhpcc.edu>
174
175         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
176
177 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
178
179         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
180
181 Mon Nov  9 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
182
183         * regmove.c (regmove_optimize): Fix error in last change.
184
185 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
186
187         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
188         offset in the .mask pseudo to compensate for frame pointer adjustments.
189         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
190         word swap arguments moved to/from FP registers.
191         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
192         
193 Mon Nov 9 09:47:06 PST 1998 Jeff Law  (law@cygnus.com)
194
195         * version.c: Bump for snapshot.
196
197 Mon Nov 9 02:14:14 PST 1998 Jeff Law  (law@cygnus.com)
198
199         * version.c: Bump for snapshot.
200
201 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
202
203         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
204         times, then it can not be completely replaced.
205
206 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
207
208         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
209
210 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
211
212         * gansidecl.h: Prepend a "G" to the macro wrapping this file
213         (to distinguish it from the macro wrapping ansidecl.h.)
214         Include libiberty's ansidecl.h.  Remove all redundant definitions.
215         Define the PROTO() style macros in terms of the PARAMS() ones.
216
217         
218         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
219         __STDC__, when deciding whether to use ANSI variable args.
220         (emit_library_call_value): Likewise.
221
222         * cccp.c (error): Likewise.
223         (warning): Likewise.
224         (error_with_line): Likewise.
225         (warning_with_line): Likewise.
226         (pedwarn): Likewise.
227         (pedwarn_with_line): Likewise.
228         (pedwarn_with_file_and_line): Likewise.
229         (fatal): Likewise.
230
231         * cexp.y (error): Likewise.
232         (pedwarn): Likewise.
233         (warning): Likewise.
234
235         * collect2.c (fatal_perror): Likewise.
236         (fatal): Likewise.
237         (error): Likewise.
238
239         * combine.c (gen_rtx_combine): Likewise.
240
241         * cpperror.c (cpp_message): Likewise.
242         (cpp_fatal): Likewise.
243
244         * cpplib.c (cpp_error): Likewise.
245         (cpp_warning): Likewise.
246         (cpp_pedwarn): Likewise.
247         (cpp_error_with_line): Likewise.
248         (cpp_warning_with_line): Likewise.
249         (cpp_pedwarn_with_line): Likewise.
250         (cpp_pedwarn_with_file_and_line): Likewise.
251
252         * cpplib.h: Don't define PARAMS() macro.
253
254         * demangle.h: Likewise.
255
256         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
257         when deciding whether to use ANSI variable args.
258
259         * emit-rtl.c (gen_rtx): Likewise.
260         (gen_rtvec): Likewise.
261
262         * final.c (asm_fprintf): Likewise.
263
264         * fix-header.c (cpp_message): Likewise.
265         (fatal): Likewise.
266         (cpp_fatal): Likewise.
267
268         * gcc.c (concat): Likewise.
269         (fatal): Likewise.
270         (error): Likewise.
271
272         * genattr.c (fatal): Likewise.
273
274         * genattrtab.c (attr_rtx): Likewise.
275         (attr_printf): Likewise.
276         (fatal): Likewise.
277
278         * gencodes.c (fatal): Likewise.
279
280         * genconfig.c (fatal): Likewise.
281
282         * genemit.c (fatal): Likewise.
283
284         * genextract.c (fatal): Likewise.
285
286         * genflags.c (fatal): Likewise.
287
288         * genopinit.c (fatal): Likewise.
289
290         * genoutput.c (fatal): Likewise.
291         (error): Likewise.
292
293         * genpeep.c (fatal): Likewise.
294
295         * genrecog.c (fatal): Likewise.
296
297         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
298         deciding whether to declare `tree_node' and `rtx_def'.
299
300         * hash.h: Don't define stuff we get from gansidecl.h.
301
302         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
303         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
304         whether to use ANSI variable args.
305         (error): Likewise.
306
307         * prefix.c (concat): Likewise.
308
309         * scan.h: Likewise.
310
311         * system.h: Likewise.
312
313         * toplev.c (error_with_file_and_line): Likewise.
314         (error_with_decl): Likewise.
315         (error_for_asm): Likewise.
316         (error): Likewise.
317         (fatal): Likewise.
318         (warning_with_file_and_line): Likewise.
319         (warning_with_decl): Likewise.
320         (warning_for_asm): Likewise.
321         (warning): Likewise.
322         (pedwarn): Likewise.
323         (pedwarn_with_decl): Likewise.
324         (pedwarn_with_file_and_line): Likewise.
325         (sorry): Likewise.
326         (really_sorry): Likewise.
327
328         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
329         whether to declare `tree_node' and `rtx_def'.
330
331         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
332         deciding whether to use ANSI variable args.
333         (build_nt): Likewise.
334         (build_parse_node): Likewise.
335
336 Sun Nov 8 13:10:55 PST 1998 Jeff Law  (law@cygnus.com)
337
338         * version.c: Bump for snapshot.
339
340 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
341
342         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
343
344 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
345
346         * collect2.c (main, case 'b'): Use else if.
347
348 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
349
350         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
351         Arrange to include gansidecl.h in {ht}config.h & tm.h just
352         before the config/ directory headers.
353         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
354         gansidecl.h in the list of dependencies.
355
356         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
357         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
358         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
359         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
360         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
361         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
362         Likewise.
363
364         * cccp.c: Don't include gansidecl.h.
365         * cexp.y: Likewise.
366         * collect2.c: Likewise.
367         * config/c4x/c4x.c: Likewise.
368         * config/v850/v850.h: Likewise.
369         * cppalloc.c: Likewise.
370         * cpperror.c: Likewise.
371         * cppexp.c: Likewise.
372         * cppfiles.c: Likewise.
373         * cpphash.c: Likewise.
374         * cpplib.c: Likewise.
375         * cppmain.c: Likewise.
376         * cppulp.c: Likewise.
377         * demangle.h: Likewise.
378         * doprint.c: Likewise.
379         * dyn-string.c: Likewise.
380         * eh-common.h: Likewise.
381         * fix-header.c: Likewise.
382         * frame.c: Likewise.
383         * gcc.c: Likewise.
384         * gcov.c: Likewise.
385         * gen-protos.c: Likewise.
386         * gencheck.c: Likewise.
387         * halfpic.h: Likewise.
388         * hash.c: Likewise.
389         * machmode.h: Likewise.
390         * mbchar.c: Likewise.
391         * prefix.c: Likewise.
392         * protoize.c: Likewise.
393         * recog.h: Likewise.
394         * rtl.h: Likewise.
395         * scan-decls.c: Likewise.
396         * tree.h: Likewise.
397         * varray.h: Likewise.
398         
399 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
400
401         * i386.md (call_value_pop): If we're not popping anything,
402         defer to call_value.
403         (call_pop): Likewise defer to call.
404
405 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
406
407         * function.c (purge_addressof): Clear purge_addressof_replacements
408         only after processing the whole function.
409
410 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
411
412         * reload1.c (reload): If we can not perform a particular elimination
413         when we thought we could earlier, then we must always iterate through
414         the loop at least one more time.
415
416 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
417
418         * alpha.c (add_operand): Simplify the CONST_INT match.
419         (sext_add_operand): Correct typo in comparison by using
420         CONST_OK_FOR_LETTER_P.
421         * alpha.md (s?addq): Use sext_add_operand to allow the negative
422         constant alternatives to be generated.
423         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
424         small constants, since the hw instructions do.
425
426 Fri Nov  6 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
427
428         * reload1.c (emit_reload_insns):  When rewriting the SET_DEST of a
429         previous insn to store directly into our reload register, make sure
430         that if the source of the previous insn is a reload register, its
431         spill_reg_store and spill_reg_stored_to values are cleared.
432
433 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@mhpcc.edu>
434
435         * rs6000.md (floatunssidf2_internal splitter): Use base register
436         operand, not hard-coded SP.
437
438 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
439
440         * jump.c (calculate_can_reach_end): Fix thinko.
441
442 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
443
444         * reorg.c (fill_simple_delay_slots): Fix typo.
445
446         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
447
448 Fri Nov  6 00:10:00 1998  Jan Hubicka (hubicka@freesoft.cz)
449
450         * i386.md (extendsidi2): Use # in the output template.
451         (extendsidi splitters): New splitters.
452
453 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
454
455         * jump.c (init_label_info, delete_barrier_successors,
456         mark_all_labels, delete_unreferenced_labels,
457         delete_noop_moves, calculate_can_reach_end): New functions broken
458         out of jump_optimize.
459         (jump_optimize): Use them.
460
461 Thu Nov  5 07:57:45 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
462
463         * except.c (expand_fixup_region_end): Make sure outer context labels
464         are not issued in an inner context during cleanups.
465
466 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
467
468         * alpha.md (addsi3, subsi3): No new temporaries once cse is
469         no longer expected.
470
471 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
472
473         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
474         to expose this midpoint to CSE.
475
476 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
477
478         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
479
480 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
481
482         * configure.in: Bring over gcc2 change of Nov 19 1997.
483
484 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
485
486         * toplev.c (output_lang_identify): Make definition dependent on
487         ASM_IDENTIFY_LANGUAGE.
488
489         * print-rtl.c (spaces): Make static.
490
491 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
492
493         * extend.texi: Clarify proper uses for register clobbers in asms.
494
495 Wed Nov  4 22:16:36 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
496
497         * recog.h (enum op_type): Define.
498         (constrain_operands): Adjust prototype.
499         (recog_op_type): Declare new variable.
500         * recog.c (recog_op_type): New variable.
501         (insn_invalid_p): Allow modifying an asm statement after reload.
502         (extract_insn): Set up recog_op_type.
503         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
504         Don't compute operand types, use recog_op_type.
505         Use the information computed by extract_insn instead of the previous
506         method of finding it by insn code number.
507         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
508         * reorg.c (fill_slots_from_thread): Likewise.
509         * reload1.c (reload_as_needed): Likewise.
510         (gen_reload): Likewise.
511         (inc_for_reload): Likewise.
512         (reload_cse_simplify_operands): Likewise.
513         Use the information computed by extract_insn instead of the previous
514         method of finding it by insn code number.
515         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
516         insn_extract.
517         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
518         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
519         Use the information computed by extract_insn instead of the previous
520         method of finding it by insn code number.
521         * regmove.c (find_matches): Likewise.  Change meaning of the return
522         value to be nonzero if the optimization can be performed, zero if
523         not.  All callers changed.
524         Shorten some variable names to fix formatting problems.
525         (regmove_optimize): Shorten some variable names to fix formatting
526         problems.
527         Use the information computed by extract_insn instead of the previous
528         method of finding it by insn code number.
529         * regclass.c (scan_one_insn): Likewise.
530         (record_reg_classes): Don't compute operand types, use recog_op_type.
531         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
532         recog_constraints instead.
533
534 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
535
536         * rtl.h (flow2_completed): Declare.
537         * flow.c (flow2_completed): Definition.
538         * toplev.c (rest_of_compilation): Set and clear flow2_completed
539         as necessary.
540
541 Wed Nov  4 19:15:37 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
542
543         * Makefile.in (libcpp.a): Ranlib libcpp.a
544
545         * cppulp.c (user_label_prefix): Initialize.
546         
547 Wed Nov  4 19:07:08 1998   John Wehle  (john@feith.com)
548
549         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
550         at a RETURN if current_function_sp_is_unchanging is set.
551
552 Wed Nov  4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
553
554         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
555
556 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
557
558         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
559         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
560         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
561         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
562         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
563         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
564         to __CYGWIN32__.
565         (LIB_SPEC): Handle -mno-cyginw option.
566         (LINK_SPEC): Handle -mdll.
567
568 Wed Nov  4 22:56:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
569
570         * reload.c (find_reloads): Fix test for usage by other reload
571         to handle secondary reloads properly.
572
573 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
574
575         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
576         intermediate structure which has exactly the members provided by
577         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
578         static intermediate structure.
579         
580         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
581         from the intermediate structure.  Do the same analogous fix in
582         the case where ELIMINABLE_REGS is not defined.
583
584 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
585
586         * pa.h (SELECT_SECTION): Fix thinko.
587
588 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
589
590         * dwarf2out.c (output_call_frame_info): Comments on last change.
591
592 Tue Nov  3 07:51:43 1998  Richard Earnshaw (rearnsha@arm.com)
593
594         * arm.c (add_constant): When taking the address of an item in the
595         pool, get the mode of the item addressed.
596
597         * arm.c (final_prescan_insn case INSN): If an insn doesn't 
598         contain a SET or a PARALLEL, don't consider it for conditional
599         execution.
600
601         Restore ABI compatibility for NetBSD.
602         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
603         arm.h
604         (RETURN_IN_MEMORY): Likewise.
605
606 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
607
608         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
609         (m32r_output_block_move): Rewrite bytes < 4 handling.
610
611 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
612
613         * configure.in: Call AC_FUNC_VFORK.
614
615         * collect2.c: Define VFORK_STRING as a printable string for
616         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
617         defined, include vfork.h.  If VMS is defined, define vfork()
618         appropriately.  Remove vfork check on USG, we're using autoconf.
619         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
620         checking locally what string to pass.
621         (scan_prog_file): Likewise.
622         (scan_libraries): Likewise.
623
624         * gcc.c: Remove vfork check on USG, we're using autoconf.
625         Besides, no calls to vfork/fork occur in this file.
626
627         * protoize.c: Likewise.
628
629 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
630
631         * configure.in (DEFAULT_LINKER): renamed from LD
632         (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
633         (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
634         * configure: rebuilt
635
636 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
637
638         * BUGS: fix the regexp for `more' to find the appropriate node.
639         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
640
641         * BUGS: added link to the WWW FAQ
642
643 Sun Nov 1 18:27:15 PST 1998 Jeff Law  (law@cygnus.com)
644
645         * version.c: Bump for snapshot.
646
647 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
648
649         * From Christian Gafton:
650         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
651         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
652         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
653
654 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
655
656         * c-common.c (c_get_alias_set): Allow all type-punning through
657         unions.  Don't get confused about the type of a bit-field, despite
658         the antics of build_modify_expr.
659
660 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley <jpr@jpr.com>
661
662         * fixinc.sco: Paramaterize #include_next values.
663         * fixinc/fixinc.sco: Likewise.
664
665 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
666
667         * toplev.c (rest_of_compilation): No longer set reload_completed.
668         * reload1.c (reload): Set it here.  Perform instruction splitting
669         after reload has completed if we will be running the scheduler
670         again.
671
672 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
673
674         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
675         EH region if exceptions are enabled and we're performing cross
676         jump optimizations.
677         (find_cross_jump): Exit loop if the insns are in different EH regions.
678
679 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
680
681         * dwarf2out.c (output_call_frame_info): Use
682         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
683
684 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
685
686         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
687         * c-common.c (check_format_info): Don't check for the 'x'
688         format character twice, instead check for 'x' and 'X'
689
690 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
691
692         * configure.in (assembler features): Also make gas is configured if
693         we find it in the souce tree.
694
695 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
696
697         * i386.c (i386_comp_type_attributes): Compare whether the 
698         attributes are defined, not their tree nodes.
699
700 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
701
702         * configure.in (gxx_include_dir): bitten by autoconf quoting
703         characters :-(
704         * configure: rebuilt
705
706 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
707
708         * configure.in: Ignore non-absolute value in $AS.
709
710 Fri Oct 30 00:54:25 1998  Peter Jakubek <pjak@snafu.de>
711
712         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
713
714 Fri Oct 30 00:42:34 1998  Mark Elbrecht <snowball3@usa.net>
715
716         * configure.in (msdosdjgpp): Set exeext and target_alias.
717
718 Thu Oct 29 23:55:43 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
719
720         * flow.c (XNMALLOC): New macro.
721         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
722         static variables.
723         (add_edge, add_edge_to_label): New static functions.
724         (free_bb_memory): New function.
725         (flow_delete_insn): Delete function.
726         (basic_block_drops_in): Delete variable.
727         (find_basic_blocks): Allocate and initialize basic_block_head,
728         basic_block_succ.  Don't allocate basic_block_drops_in.
729         Call free_bb_memory at the beginning.
730         (find_basic_blocks_1): Don't do multiple passes.
731         Delete code to compute basic_block_drops_in.
732         After calling make_edges, mark blocks reached by current block live.
733         Update test for unreachable live blocks.
734         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
735         changed.
736         Simplify to call add_edge_to_label when a LABEL_REF is found.
737         (make_edges): Simplify to call add_edge_to_label instead of
738         mark_label_ref most of the time.
739         Compute here whether control drops into the next block.
740         (delete_unreachable_blocks): Return void.  All callers changed.
741         Delete unreachable blocks in reverse order.
742         After deleting all unreachable blocks, renumber the remaining ones
743         and update n_basic_blocks.
744         (delete_block): Speed up deletion a bit.
745         Don't set basic_block_drops_in for deleted blocks.
746         (free_basic_block_vars): Don't free basic_block_drops_in.
747         (life_analysis_1): Update to use new edge representation.
748         (dump_flow_info): Delete code to print basic block info; call
749         dump_bb_data instead.
750         (compute_preds_succs): Delete code to recompute basic_block_drops_in
751         and uid_block_number.
752         Simply copy the previously computed cfg.
753         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
754         Print register lifetime information if LIVE_INFO is nonzero.
755         * basic-block.h (dump_bb_data): Adjust prototype.
756         * gcse.c (gcse_main): Update call to dump_bb_data.
757         * rtl.h (free_bb_memory): Declare.
758         * toplev.c (rest_of_compilation): Call free_bb_memory.
759
760         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
761         (update_eliminable_offsets): Don't compute it.
762         (set_initial_elim_offsets): Don't initialize it.
763         Break out some code into set_initial_label_offsets so the rest of
764         this function can be called from reload_as_needed.
765         Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
766         ELIMINABLE_REGS isn't.
767         (set_initial_label_offsets): New function, broken out of
768         set_initial_elim_offsets.
769         (set_offsets_for_label): New function, broken out of set_label_offsets
770         and reload_as_needed.
771         (reload): Call the two new functions.
772         (reload_as_needed): Call set_initial_elim_offsets instead of
773         duplicating the code.  Likewise for set_offsets_for_label.
774
775         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
776         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
777         any hard reg, reg_reloaded_dead contains valid data.
778
779 Thu Oct 29 22:30:54 1998  Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
780
781         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
782         "stdcall" and "cdecl" attributes.
783
784 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
785
786         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
787         handle deleted no-op moves of hard registers.
788         * haifa-sched.c (update_flow_info): Likewise.
789
790 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
791
792         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
793         of the sequences to reload the HILO register which do not actually
794         reference HILO.
795
796 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
797
798         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
799
800 Thu Oct 29 14:10:22 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
801
802         * except.c (emit_eh_context): Make the EH context register stay alive
803         at -O0 so stupid.c doesn't get confused.
804
805 1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
806
807         * emit-rtl.c (try_split): Do not try to split a BARRIER.
808
809 Thu Oct 29 01:33:54 1998  Jan Hubicka <hubicka@freesoft.cz>
810                           Jeffrey A Law  (law@cygnus.com)
811
812         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
813         (zero_extendsidi2): Use # in output template and handle completely by
814         splits.
815         (zero_extend splitters): New define_splits.
816         (ashiftrt_32): New pattern.
817
818 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
819
820         * tree.c (append_random_chars): New fn.
821         (get_file_function_name_long): Use it.
822
823 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
824
825         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
826         (LIBCPP_OBJS): New.  Add cppulp.o.
827         (cppmain, fix-header): Depend on and use libcpp.a.
828         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
829         of the individual object files.
830         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
831         last.
832
833         * cccp.c (user_label_prefix): New.
834         (main): Set it off -f*leading-underscore.
835         (special_symbol): Use it.
836         * cpplib.c (special_symbol): Likewise.
837         (cpp_handle_option): Handle -f*leading-underscore.
838         * cppulp.c: New file.
839
840         * output.h (user_label_prefix): Declare it.
841         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
842         * toplev.c (f_options, main): Handle -f*leading-underscore.
843
844         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
845         referencing USER_LABEL_PREFIX directly.
846         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
847         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
848         * final.c (asm_fprintf): Use user_label_prefix instead.
849         * arm/thumb.c (thumb_print_operand): Likewise.
850
851         * gcc.c (default_compilers): Pass -f*leading-underscore on to
852         cpp wherever appropriate.
853
854 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
855
856         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
857         specific compiler switches.
858
859 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
860
861         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
862         of rtl.h.
863
864 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
865
866         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
867         structure which has exactly the members provided by EXTRA_SPECS.
868         Xmalloc() the real `extra_specs', and initialize it from this
869         intermediate structure.
870
871         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
872
873         * mips.h  (EXTRA_SPECS): Likewise.
874
875         * sparc.h (EXTRA_SPECS): Likewise.
876
877 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
878     
879         * function.c (purge_addressof_1): Instead of aborting when a
880         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
881         work just put the ADDRESSOF on stack.  Otherwise remember all such
882         successfull replacements, so that exactly the same replacements
883         can be made on the REG_NOTEs.  Remove the special case for CALL
884         insns again.
885         (purge_addressof_replacements): New variable.
886         (purge_addressof): Clear it at end.
887
888 1998-10-28 16:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
889
890          * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
891            (lang_init): Call check_newline always.
892          * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
893            cpp_start_read, set yy_cur and yy_lim to read from
894            parse_in.token_buffer, so that we'll see the first #line
895            directive.
896          * cpplib.c (cpp_start_read): finclude the main input file
897            before processing -include/-imacros.  Process -imacros and
898            -include separately, and handle -include by stacking a
899            buffer for the file in question as if it'd been #included.
900          * toplev.c (documented_lang_options) Recognize -H when
901            USE_CPPLIB is on.
902
903 1998-10-28 16:09 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
904
905          * cpplib.c: Merge do_once into do_pragma.  Break file handling
906            code out of do_include.
907            Move append_include_chain, deps_output,
908            file_cleanup, redundant_include_p, import_hash,
909            lookup_import, add_import, read_filename_string, read_name_map,
910            open_include_file, finclude, safe_read to cppfiles.c.
911            Move prototypes for deps_output, append_include_chain,
912            finclude to cpplib.h.  Move definition of struct
913            file_name_list there also.
914
915          * cppfiles.c: New file.  Contains all the above functions
916            broken out of cpplib.c; also hack_vms_include_specification
917            from cccp.c and find_include_file, a new function broken out of
918            do_include.
919
920          * Makefile.in (cppmain): Depend on cppfiles.o.
921            (fix-header): Likewise.
922            (cppfiles.o): New target.
923          * configure.in (--enable-c-cpplib): Add cppfiles.o to
924            extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
925
926 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
927
928         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
929         if pending_types is non-zero.
930         (dwarfout_finish): Verify pending_types is zero before finishing.
931
932 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
933
934         * expr.c (convert_move): Use shifts to perform the move if a
935         suitable extend pattern cannot be found.  Code written by
936         Richard Henderson <rth@cygnus.com>.
937
938 Wed Oct 28 03:59:29 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
939
940         * regclass.c (renumber, regno_allocated): New static variables, moved
941         out of allocate_reg_info.
942         (allocate_reg_info): Move these two variables outside the function.
943         Move code to free memory into new function free_reg_info.
944         (free_reg_info): New function, broken out of allocate_reg_info.
945         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
946         * rtl.h (allocate_reg_info): Don't declare.
947         (free_reg_info): Declare.
948
949         * final.c (cleanup_subreg_operands):  ASM_INPUTs need no treatment.
950
951 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
952
953         * toplev.c (compile_file): Temporarily revert last change.
954
955 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
956
957         * c-typeck.c (convert_for_assignment): Parenthesize.
958
959 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
960
961         * reload1.c (delete_output_reload): Avoid ambigous else.
962
963 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
964
965         * toplev.c (compile_file): Call allocate_reg_info to free register
966         table memory.
967         * rtl.h (allocate_reg_info): Declare.
968
969         * PROJECTS: Remove entry for local spilling.
970
971         * final.c (cleanup_subreg_operands): New function.
972         (final_scan_insn): Use it.
973         (alter_subreg): Clear the "used" field when we turn a SUBREG into
974         a REG.
975         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
976         operands when reload has finished.
977         * reload.h (cleanup_subreg_operands): Declare..
978         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
979         reload.  Handled in reload itself.
980
981 Tue Oct 27 23:32:34 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
982
983         * reload1.c (verify_initial_offsets): New function.
984         (reload): Call it after reload_as_needed.  Also verify that the frame
985         size stays constant during reload_as_needed.
986         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
987
988         * reload.h (struct insn_chain): Add need_operand_change element.
989         * reload1.c (new_insn_chain): Clear it.
990         (calculate_needs_all_insns): Set it; don't overload need_reload.
991         (reload_as_needed): Use it.
992
993         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
994         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
995         and reload_address_index_reg_class.
996         (find_reloads_address_1): Likewise.
997         * reload.h (reload_address_base_reg_class,
998         reload_address_index_reg_class): Don't declare.
999         * reload1.c (reg_old_renumber, pseudo_previous_regs,
1000         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
1001         (used_spill_regs): Now static.
1002         (reload_address_base_reg_class, reload_address_index_reg_class,
1003         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
1004         basic_block_needs, max_needs, group_size, group_mode, max_groups,
1005         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
1006         forbidden_regs):
1007         Deleted variables.
1008         (init_reload): Delete code to compute base/index reg classes.
1009         (reload): Delete variable J.
1010         Delete code to manage basic_block_needs.
1011         Don't compute regs_explicitly_used.
1012         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
1013         pseudo_previous_regs.
1014         Initialize bad_spill_regs_global.
1015         Don't call order_regs_for_reload here.
1016         Don't initialize spill_reg_order and n_spills.
1017         Don't forbid explicitly used regs to be used for spill regs.
1018         Change main loop to infinite loop, with explicit break statements.
1019         Make SOMETHING_CHANGED variable local to that loop.
1020         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
1021         max_groups_insn, max_nongroups_insn, group_size, group_mode.
1022         Make sure spilled_speudos is cleared before calling spill_hard_reg or
1023         new_spill_reg.
1024         Don't call dump_needs.
1025         Delete code to reset potential_reload_regs.
1026         Delete code to terminate loop conditional on the global needs variables
1027         showing no further needs.
1028         (calculate_needs_all_insns): Return void.  All callers changed.
1029         Initialize somehing_needs_elimination here, not in reload.
1030         Delete avoid_return_reg kludge.
1031         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
1032         All callers changed.
1033         Initialize the group_mode and group_size elements of the arg CHAIN.
1034         Delete code to manage basic_block_needs.
1035         Operate on elements of CHAIN instead of global variables.
1036         Delete avoid_return_reg kludge.
1037         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
1038         All callers changed.
1039         Operate on elements of CHAIN instead of global variables.
1040         Delete special SMALL_REGISTER_CLASSES code.
1041         Delete spill_failure code; now in new_spill_reg.
1042         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
1043         All callers changed.
1044         Operate on elements of CHAIN instead of global variables.
1045         (maybe_mark_pseudo_spilled): New static function.
1046         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
1047         All callers changed.
1048         Operate on elements of CHAIN instead of global variables.
1049         Call order_regs_for_reload here, not in reload.
1050         Initialize spill_reg_order and n_spills.
1051         Simplify test whether an asm insn is involved.
1052         Delete spill_failure code; now in new_spill_reg.
1053         Call maybe_mark_pseudo_spilled for everything marked as live in
1054         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
1055         used_spill_regs.
1056         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
1057         compiler from optimizing this function (now unused) away.
1058         Operate on elements of CHAIN instead of global variables.
1059         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
1060         changed.
1061         Operate on elements of CHAIN instead of global variables.
1062         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
1063         take CHAIN arg.  All callers changed.
1064         Operate on elements of CHAIN instead of global variables.
1065         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
1066         CHAIN, NONGROUP args.  Return void.  All callers changed.
1067         Verify caller isn't trying to spill a pseudo.
1068         Simplify test for illegal reg, just use bad_spill_regs.
1069         Generate better error messages.
1070         Operate on elements of CHAIN instead of global variables.
1071         Mark spilled register in CHAIN's used_spill_regs element.
1072         Don't call spill_hard_reg.
1073         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
1074         Mark spilled hard regs in bad_spill_regs_global.
1075         Mark affected pseudos in spilled_pseudos, but don't spill them.
1076         (ior_hard_reg_set): New static function.
1077         (finish_spills): Return int.  All callers changed.
1078         Compute spill_reg_order, n_spills and spill_regs here.  Also update
1079         regs_ever_live for regs used as spills.
1080         For every pseudo in spilled_pseudos, spill it and mark the previous
1081         hard reg it had in pseudo_previous_regs.  Compute which hard regs
1082         arseudo): New static function.
1083         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
1084         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
1085         hard registers explicitly used across the current insn into the set.
1086         Compute hard_reg_n_uses taking only pseudos live across this insn
1087         into account.
1088         Tweak sorting of potential_reload_regs.
1089         (compare_spill_regs): Delete function.
1090         (reload_as_needed): Don't sort the spill_regs array, it's computed
1091         in proper order in finish_spills.
1092         Delete avoid_return_reg kludge.
1093         Delete code to manage basic_block_needs.
1094         (allocate_reload_reg): Minor speed/readability tweaks.
1095         Operate on elements of CHAIN instead of global variables.
1096         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
1097         Delete avoid_return_reg kludge.
1098         Initialize reload_reg_used from CHAIN's used_spill_regs element.
1099         Delete unused label FAIL.
1100         (reload_combine): Replce reload_address_index_reg_class with
1101         INDEX_REGS.
1102         Don't use used_spill_regs to determine information about lifetime of
1103         hard regs.
1104
1105 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
1106         
1107         * toplev.c (display_help): Ignore empty target specific
1108         options, and if -W is also specified on the command line then
1109         display undocumented options.
1110
1111         * config/arm/arm.c: Updated with changes in devo sources.
1112         * config/arm/arm.h: Updated with changes in devo sources.
1113         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
1114         * config/arm/lib1thumb.asm: Add ELF support.
1115
1116 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1117
1118         * collect2.c (aix64_flag): New variable.
1119         (main, case 'b'): Parse it.
1120         (GCC_CHECK_HDR): object magic number must match mode.
1121         (scan_prog_file): Only check for shared object if valid header.
1122         Print debugging if header/mode mismatch.
1123
1124 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
1125
1126         Added support for arm-elf-linux configuration, submitted by Philip
1127         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
1128         code developed by Catherine Moore <clm@cygnus.com>.  The following
1129         files are affected: 
1130
1131         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
1132         targets. 
1133
1134         * configure: Regenerated.
1135         
1136         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
1137         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
1138         definitions conditional on their not having been already defined.
1139
1140         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
1141         and .type directives, and add "(PLT)" qualification to function
1142         calls.
1143
1144         * config/arm/linux.h: Deleted.  This file is now superceeded by
1145         either linux-elf.h or linux-aout.h.
1146
1147         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
1148         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
1149         support).
1150         Move definitions from old linux.h file here.
1151         
1152         * config/arm/elf.h: New file.  Generic ARM/ELF support.
1153         
1154         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
1155         
1156         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
1157         
1158         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
1159         using the 26bit APCS.
1160         
1161         * config/arm/unknown-elf.h: New file.  Support for OS'es other
1162         than Linux with ELF.
1163
1164         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
1165         builds.
1166         
1167         * config/arm/coff.h: Include aout.h for basic assembler macros.
1168         Add support for -mstructure_size_boundary=<n> command line option.
1169         
1170         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
1171         command line option.  Make macro definitions conditional on their
1172         not having been already defined. 
1173
1174         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
1175         command line option.
1176
1177         
1178 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
1179
1180         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
1181         has been changed to not include a newline. Use this macro instead.
1182         (output_enumeral_list, const_value_attribute, name_attribute,
1183         comp_dir_attribute, prototyped_attribute, producer_attribute,
1184         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
1185         dwarfout_file_scope_decl, generate_new_sfname_entry,
1186         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
1187         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
1188
1189 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
1190
1191         * combine.c (subst): Process the inputs to a parallel asm_operands
1192         only once.
1193
1194 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
1195
1196         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
1197
1198 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
1199
1200         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
1201
1202 Mon Oct 26 00:36:58 PST 1998 Jeff Law  (law@cygnus.com)
1203
1204         * version.c: Bump for snapshot.
1205
1206 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
1207
1208         * stmt.c (expand_fixup): Set fixup->before_jump to a
1209         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
1210
1211 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1212
1213         * Makefile.in (recog.o): Depend on toplev.h.
1214         (insn-emit.o): Depend on recog.h.
1215         (insn-peep.o): Depend on recog.h and insn-config.h.
1216
1217         * combine.c (simplify_set): Remove unused variable `scratches'.
1218
1219         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
1220         and `idx' in macro conditional controlling their use.
1221
1222         * genemit.c (main): Make the generated output file include
1223         recog.h.  Don't have it declare `insn_operand_constraint', since
1224         we get it from recog.h.
1225
1226         * genpeep.c (main): Make the generated output file include
1227         insn-config.h and recog.h.
1228
1229         * recog.c: Include toplev.h.
1230         (extract_insn): Remove unused variable `p'.
1231
1232         * regclass.c (fix_register): Add missing braces around initializer
1233         for `what_option'.
1234         (allocate_reg_info): Move variable `i' into the scope where it is
1235         used.  Change its type to `size_t'.
1236
1237 Sun Oct 25 13:10:15 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1238
1239         * reload.c (push_reload): When merging reloads, make sure
1240         that reload_in_reg and reload_in are from the same reload in
1241         all cases.
1242
1243 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
1244
1245         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
1246         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
1247
1248 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1249
1250         * loop.c (loop_has_tablejump): New variable.
1251         (prescan_loop): Scan for it.
1252         (insert_bct): Replace explicit scan with use of it.
1253         * regclass.c (regclass): Restore loop variable j.
1254         (record_reg_classes): Deterine op_types modifiers and initialize
1255         classes[i] before matching constraints.  Handle matching
1256         constraints 5-9.
1257         
1258 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
1259
1260         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
1261         subreg support.
1262
1263 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1264
1265         * mips.h (EXTRA_SPECS): Add missing initializers.
1266
1267 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1268
1269         * sparc.h (EXTRA_SPECS): Add missing initializers.
1270         (sparc_defer_case_vector): Provide a prototype.
1271
1272         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
1273         comparing it to the result of a pointer subtraction.
1274
1275 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1276
1277         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
1278         the argument to (unsigned char).
1279
1280         * alpha.h (EXTRA_SPECS): Add missing initializers.
1281         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
1282         format specifier.
1283
1284 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
1285
1286         * flow.c (life_analysis_1): Enable "rescan" code after reload.
1287         (propagate_block): Delete dead code after reload.
1288
1289         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
1290         back Oct 15, 1998 change.  
1291         * haifa-sched.c (update_flow_info): Likewise.
1292         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
1293
1294         * mn10200.md (truncated shift): Accept constant inputs too.
1295
1296 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
1297
1298         * machmode.h (mode_mask_array): No longer const.
1299         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
1300
1301 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
1302
1303         * frame.c: Somewhat explain `FDE'.
1304         Suggested by Brendan Kehoe
1305
1306 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
1307
1308         * expr.c (pending_chain): Move up.
1309         (save_expr_status): Do save pending_chain.
1310         (restore_expr_status): And restore it.
1311         * function.h (struct function): Add pending_chain.
1312
1313 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1314
1315         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
1316         did not match the code.
1317
1318 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1319
1320         * regclass.c (regclass): Break out some code into new function
1321         scan_one_insn, and into regclass_init.
1322         (init_cost): New static variable, moved out of regclass.
1323         (regclass_init): Initialize it here, not in .
1324         (scan_one_insn): New static function, broken out of regclass.
1325         * recog.c (apply_change_group): Break out some code into new
1326         function insn_invalid_p.
1327         (insn_invalid_p): New static fn, broken out of apply_change_group.
1328
1329 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
1330
1331         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
1332         reg_reloaded_contents matches incremented pseudo.
1333
1334         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
1335
1336 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1337
1338         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
1339         addressing modes with side effects.  These are currently
1340         placeholders for the C4x target.
1341
1342 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1343
1344         * loop.c (express_from): Make sure that when generating a PLUS of
1345         a PLUS, any constant expression appears on the outermost PLUS.
1346
1347 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
1348
1349         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
1350         works if "$(srcdir)" != ".".
1351
1352 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
1353
1354         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
1355         existing SUBREG if we can, otherwise abort.
1356
1357 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
1358
1359         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
1360         `restrict' is applied to a non-pointer variable.
1361
1362 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
1363
1364         * invoke.texi: Document -flang-isoc9x.
1365
1366         * Makefile.in (OBJS): Add splay-tree.o.
1367         (c-common.o): Depend on rtl.h.
1368         (splay-tree.o): List dependencies and provide build rule.
1369         
1370         * rtl.h (record_alias_subset): New function.
1371         * alias.c: Include splay-tree.h.
1372         (alias_set_entry): New type.
1373         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
1374         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
1375         (mems_in_disjoin_alias_sets_p): New function.
1376         (alias_set_compare): Likewise.
1377         (insert_subset_children): Likewise.
1378         (get_alias_set_entry): Likewise.
1379
1380         * tree.h (TYPE_RESTRICT): New macro.
1381         (TYPE_UNQUALIFIED): New manifest constant.
1382         (TYPE_QUAL_CONST): Likewise
1383         (TYPE_QUAL_VOLATILE): Likewise.
1384         (TYPE_QUAL_RESTRICT): Likewise.
1385         (tree_type): Add restrict_flag.  Reduce count of free bits.
1386         (DECL_POINTER_ALIAS_SET): New macro.
1387         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
1388         (tree_decl): Add pointer_alias_set.
1389         (build_qualified_type): New function.
1390         (build_type_variant): Define in terms of build_qualified_type.
1391         * tree.c (set_type_quals): New function.
1392         (make_node): Initializae DECL_POINTER_ALIAS_SET.
1393         (build_type_attribute_variant): Use build_qualified_type and
1394         set_type_quals.
1395         (build_type_variant): Rename, and modify, to become...
1396         (build_qualified_type): New function.
1397         (build_complex_type): Use set_type_quals.
1398
1399         * c-tree.h (C_TYPE_OBJECT_P): New macro.
1400         (C_TYPE_FUNCTION_P): Likewise.
1401         (C_TYPE_INCOMPLETE_P): Likewise.
1402         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1403         (c_apply_type_quals_to_decl): New function.
1404         (c_build_qualified_type): New function.
1405         (c_build_type_variant): Define in terms of c_build_qualified_type.
1406         (flag_isoc9x): Declare.
1407         * c-typeck.c (qualify_type): Use c_build_qualified_type.
1408         (common_type): Change to use TYPE_QUALS.
1409         (comptypes): Likewise.
1410         (convert_for_assignment): Likewise.
1411         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
1412         * c-decl.c (flag_isoc9x): Define.
1413         (c_decode_option): Handle -flang-isoc9x.
1414         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
1415         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
1416         * c-lex.c (init_lex): Deal with restrict.
1417         (init_lex): Don't treat restrict as a reserved word in
1418         -traditional mode, or without -flang-isoc9x.
1419         * c-lex.h (rid): Add RID_RESTRICT.
1420         * c-parse.gperf (restrict, __restrict, __restrict__): Make
1421         equivalent to RID_RESTRICT.
1422         * c-parse.in (TYPE_QUAL): Update comment.
1423         * c-common.c: Include rtl.h.
1424         (c_find_base_decl): New function.
1425         (c_build_type_variant): Rename, and modify, to become ...
1426         (c_build_qualified_type): New function.
1427         (c_apply_type_quals_to_decl): Likewise.
1428         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
1429         a particular alias set for the reference.
1430         * toplev.c (documented_lang_options): Add -flang-isoc9x.
1431
1432 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
1433
1434         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
1435         command line switches.
1436
1437 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
1438
1439         * reload.c (loc_mentioned_in_p): Add missing braces to bind
1440         else to correct if.
1441
1442 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
1443
1444         * gcc.c (option_map): Added --classpath and --CLASSPATH.
1445
1446 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
1447
1448         * regclass.c (fix_register): Add error message.
1449         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
1450           new error message.
1451
1452 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1453
1454         * c-decl.c (warn_missing_noreturn): New global variable.
1455         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
1456         (finish_function): Implement missing noreturn warning.
1457
1458         * c-tree.h (warn_missing_noreturn): Declare extern.
1459
1460         * invoke.texi: Document new flags.
1461
1462         * toplev.c (documented_lang_options): Add description.
1463
1464 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1465
1466         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
1467         loop optimization stable for the C4x.
1468         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
1469         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
1470         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
1471         loop optimization).
1472         (c4x_address_conflict): Be more paranoid when packing a volatile
1473         memref in a parallel load/store.
1474
1475 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1476
1477         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
1478         repeat_block_filler): Deleted.
1479         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
1480         Condition code not set if destination register from 'c' class.
1481         (*subbqi3_carry_clobber): Fix typo.
1482
1483 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1484
1485         * reorg.c (steal_delay_list_from_target) Check for insns that
1486         modify the condition codes and effect the direction of the jump
1487         in the sequence.
1488
1489 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
1490
1491         * function.c (purge_addressof_1): Replace call to
1492         emit_insns_before() with emit_insn_before().
1493
1494 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
1495
1496         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
1497
1498 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
1499
1500         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
1501
1502 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
1503
1504         * gcse.c (compute_hash_table): Correctly identify hard regs which are
1505         clobbered across calls.
1506
1507         * loop.c (scan_loop): Be more selective about what invariants are
1508         moved out of a loop.
1509
1510 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
1511
1512         * version.c: Bump for snapshot.
1513
1514 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
1515
1516         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
1517         static eh_context structure.
1518
1519 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
1520
1521         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
1522         callers changed.
1523         (try_combine): Don't update max_scratch.
1524         * flow.c (max_scratch, num_scratch): Delete variables.
1525         (life_analysis_1): Don't initialize max_scratch.
1526         (propagate_block): Don't update max_scratch.
1527         (mark_set_1): Don't increment num_scratch.
1528         * regs.h (max_scratch): Delete declaration.
1529
1530 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
1531
1532         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
1533         is nonzero.  This is temporary!
1534
1535         * sched.c (update_flow_info): Handle death notes made invalid by
1536         instruction splitting.  Partially reverts Oct 15, 1998 patch.
1537         * haifa-sched.c (update_flow_info): Likewise.
1538
1539 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
1540
1541         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
1542         if it has a nonzero DECL_INITIAL.
1543
1544 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1545
1546         * Makefile.in (flow.o): Depend on recog.h.
1547
1548         * cpplib.h (directive_table): Add missing initializiers.
1549         (finclude): Change type of variable `bsize' to size_t.
1550         
1551         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
1552
1553         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
1554
1555         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
1556         `int' when comparing against one.
1557         (cpp_file_line_for_message): Mark parameter `pfile' with
1558         ATTRIBUTE_UNUSED.
1559         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
1560
1561         * flow.c: Include recog.h.
1562         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
1563
1564         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
1565         `f' with ATTRIBUTE_UNUSED.
1566         (reposition_prologue_and_epilogue_notes): Likewise.
1567
1568         * genopinit.c (gen_insn): Cast argument of ctype functions to
1569         `unsigned char'.
1570
1571         * haifa-sched.c: Include recog.h.
1572         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
1573         comparing against one.
1574
1575         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
1576
1577         * mips-tfile.c (parse_end): Cast the argument of ctype function to
1578         `unsigned char'.
1579         (parse_ent): Likewise.
1580         (parse_input): Likewise.
1581
1582         * optabs.c (init_libfuncs): Likewise.
1583
1584         * protoize.c (find_rightmost_formals_list): Likewise.
1585
1586         * recog.h (const_double_operand): Fix typo in prototype.
1587
1588         * tlink.c (scan_linker_output): Cast the argument of ctype
1589         function to `unsigned char'.
1590
1591         * toplev.c (check_lang_option): Cast the result of `strlen' to
1592         `int' when comparing against one.
1593
1594 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
1595
1596         * gcse.c (dump_cuid_table): Correct typo.
1597
1598 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
1599
1600         * toplev.c (display_help): Prepend '-m' to target specific
1601         options. 
1602         (check_lang_option): Ignore text after end of first word of a
1603         language specific option.
1604
1605 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
1606
1607         * reload1.c (reg_used_by_pseudo): New static variable.
1608         (choose_reload_regs): Initialize it.
1609         Use it instead of testing spill_reg_order to determine whether a
1610         pseudo is live in a hard register across the current insn.
1611         Fix a typo in a reference to reload_reg_rtx.
1612
1613         * flow.c (propagate_block): Replace code that computes and uses
1614         regs_sometimes_live with simpler code that just walks the set of
1615         currently live registers.
1616
1617         * Makefile.in (insn-extract.o): Fix dependencies.
1618         * genextract.c (main): Generate includes for insn-config.h and
1619         recog.h.
1620         Delete generation of declarations which are now in recog.h.
1621         * genrecog.c (main): Delete generation of definitions which are
1622         now in recog.c.
1623         * local-alloc.c (block_alloc): Use extract_insn and the variables
1624         it sets up instead of looking up values by insn_code.
1625         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
1626         recog_dup_num): Define here instead of generating the definition in
1627         genrecog.c.
1628         (recog_n_operands, recog_n_dups, recog_n_alternatives,
1629         recog_operand_mode, recog_constraints, recog_operand_address_p):
1630         New variables.
1631         (extract_insn): New function.
1632         * recog.h (extract_insn): Declare function.
1633         (which_alternative, recog_n_operands, recog_n_dups,
1634         recog_n_alternatives, recog_operand_mode, recog_constraints,
1635         recog_operand_address_p): Declare variables.
1636         * regclass.c (n_occurrences): New static function.
1637         * reload.c (n_occurrences): Delete function.
1638         (find_reloads): Use extract_insn.
1639         * reload.h (n_occurrences): Delete declaration.
1640
1641 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
1642
1643         * reload1.c (reload_as_needed): Fix test for when to call
1644         update_eliminable_offsets.
1645
1646 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1647
1648         Fix consistency problems with reg_equiv_{mem,address};
1649         Improve reload inheritance;
1650
1651         * reload.c (reload_out_reg): New variable.
1652         (loc_mentioned_in_p, remove_address_replacements): New functions.
1653         (remove_replacements): Deleted.
1654         (push_reload): Set reload_out_reg[i].
1655         When merging, also set reload_{in,out}_reg[i], and remove
1656         duplicate address reloads.
1657         (combine_reloads): Copy reload_out_reg[i].
1658         (find_reloads): Do make_memloc substitution also when
1659         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
1660         are both nonzero.
1661         Include *recog_operand_loc in commutativity operand changes.
1662         Generate optional output reloads.
1663         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
1664         processing operands.  Call make_memloc in reg_equiv_address code.
1665         Set *recog_operand_loc only after processing operands, and only
1666         if replace is true.  Return a value.
1667         When changing address reload types for operands that didn't get
1668         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
1669         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
1670         Don't emit USEs for pseudo SUBREGs when not replacing.
1671         (find_reloads_address): Do make_memloc substitution also when
1672         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
1673         are both nonzero.
1674         (find_reloads_toplev): Likewise.
1675         Call make_memloc in reg_equiv_address code.
1676         (debug_reload_to_stream): Add code to output reload_out_reg.
1677         (make_memloc): Delete local variable i, ifdefed out code, and
1678         references to memlocs and n_memlocs.
1679         (memlocs, n_memlocs): Delete.
1680         (push_secondary_reload): Clear reload_out_reg.
1681         (find_reloads_address_1): Provide memrefloc argument to all calls
1682         to find_reloads_address.
1683         In AUTO_INC code, handle non-directly addressable equivalences properly.
1684         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
1685         (find_reloads): Add return type.
1686         (remove_address_replacements, deallocate_reload_reg): Declare.
1687         * reload1.c (num_not_at_initial_offset): No longer static.
1688         (delete_address_reloads, delete_address_reloads_1): Likewise.
1689         (deallocate_reload_reg): New function.
1690         (spill_reg_stored_to): New array.
1691         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
1692         (eliminate_regs_in_insn): Move assignments of previous_offset and
1693         max_offset fields, and recalculation of num_not_at_initial_offset
1694         into new static function:
1695         (update_eliminable_offsets) .
1696         (reload_as_needed): Call update_eliminable_offsetss after calling
1697         find_reloads.
1698         Call forget_old_reloads_1 with contents of reloaded auto_inc
1699         expressions if the actual addressing can't be changed to match the
1700         auto_inc.
1701         (choose_reload_regs): For inheritance, replace
1702         reload_reg_free_before_p test with reload_reg_used_at_all test, and
1703         remove stand-alone reload_reg_used_at_all test.
1704         Use reload_out_reg to determine which reload regs have output reloads.
1705         Treat reload_override_in more similar to inherited reloads.
1706         Handle (subreg (reg... for inheritance.
1707         For flag_expensive_optimizations, add an extra pass to remove
1708         unnecessary reloads from known working inheritance.
1709         Delete obsolete code for pseudos replaced with MEMs.
1710         Handle inheritance from auto_inc expressions.
1711         (emit_reload_insns): If reload_in is a MEM, set OLD to 
1712         reload_in_reg[j].
1713         Don't reload directly from oldequiv; if it's a pseudo with a
1714         stack slot, use reload_in[j].
1715         Check that reload_in_reg[j] is a MEM before replacing reload_in
1716         from reg_reloaded_contents.
1717         Include non-spill registers in reload inheritance processing.
1718         Also try to use reload_out_reg to set spill_reg_store /
1719         reg_last_reload_reg.
1720         In code to set new_spill_reg_store, use single_set to find out if
1721         there is a single set.
1722         Add code that allows to delete optional output reloads.
1723         Add code to allow deletion of output reloads that use no spill reg.
1724         At the end, set reload_override_in to oldequiv.
1725         Also call delete_output_reload if reload_out_reg is equal to old
1726         in oldequiv code.
1727         Add code to call delete_output_reload for stores with no matching load.
1728         Set / use spill_reg_stored_to.
1729         Handle case where secondary output reload uses a temporary, but
1730         actual store isn't found.
1731         When looking for a store of a value not loaded in order to call
1732         delete_output_reload, count_occurences should return 0 for no
1733         loads; but discount inherited input reloadill_reg_stored_to.
1734         Do checks for extra uses of REG.  Changed all
1735         callers.
1736         Use delete_address_reloads.
1737         (reload): Take return value of find_reloads into account.
1738         If a no-op set needs more than one reload, delete it.
1739         (reload_reg_free_before_p): RELOAD_FOR_INPUT
1740         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
1741         for the same operand.
1742         (clear_reload_reg_in_use): Check for other reloads that keep a
1743         register in use.
1744         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
1745         RELOAD_FOR_OPADDR_ADDR.
1746         Take into account when an address address reload is only needed
1747         for the address reload we are considering.
1748         (count_occurrences): Use rtx_equal_p for MEMs.
1749         (inc_for_reload): Return instruction that stores into RELOADREG.
1750         New argument two, IN, and rtx.  Changed all callers.
1751         (calculate_needs_all_insns, reload_as_needed):
1752         Don't clear after_call for a CLOBBER.
1753         Keep track of how many hard registers need to be copied from
1754         after_call, and don't clear after_call before we have seen
1755         that much copies, or we see a different instruction.
1756
1757 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
1758
1759         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
1760         after reload has completed.
1761
1762 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
1763
1764         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
1765         a macro name and the next token with a single blank if that whitespace
1766         is in a macro buffer and the next token is not '('.
1767
1768 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
1769
1770         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
1771         (rescan): Ditto.
1772         (skip_if_group): Ditto.
1773         (skip_to_end_of_comment): Ditto.
1774         (macarg1): Ditto.
1775         (discard_comments): Ditto.
1776         (change_newlines): Ditto.
1777
1778 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
1779
1780         * c-lex.c (yylex): Fix unaligned access of wchar_t.
1781
1782 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
1783
1784         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
1785         (TARGET_OPTIONS): Add --help documentation.
1786
1787 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1788
1789         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
1790
1791 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
1792         
1793         * fixinc/* Moved in from ../contrib directory in preparation
1794         for integrating it into the normal build process.  In particular,
1795         fixinc/Makefile.in must be config-ed into the build directory
1796         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
1797         ./configure.in will be "in the mail" momentarily.
1798
1799 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
1800
1801         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
1802         accidently walk into the free list.  Comment how that can happen.
1803         (invalidate): Fix indentation.
1804
1805 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1806                          Jeffrey A Law  (law@cygnus.com)
1807
1808         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
1809         reload.  Never perform rescans of the insn chain after reload.
1810         (propagate_block): Do not delete insn or create new autoinc addressing
1811         modes after reload.
1812
1813         * jump.c (jump_optimize): Unconditionally use the code that was
1814         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
1815         * reload1.c (reload): When reloading is finished, delete all
1816         REG_DEAD and REG_UNUSED notes.
1817         (emit_reload_insns): Delete all code that was conditional on
1818         PRESERVE_DEATH_INFO_REGNO_P.
1819         (no_longer_dead_regs): Delete variable.
1820         (reload_cse_delete_death_notes): Delete function.
1821         (reload_cse_no_longer_dead): Delete function.
1822         (reload_cse_regs_1): Delete all code to handle deletion of death
1823         notes.
1824         (reload_cse_noop_set_p): Likewise.
1825         (reload_cse_simplify_set): Likewise.
1826         (reload_cse_simplify_operands): Likewise.
1827         (reload_cse_move2add): Likewise.
1828         * reorg.c (used_spill_regs): Delete declaration.
1829         (max_label_num_after_reload): Delete declaration.
1830         (find_dead_or_set_registers): Don't assume that spill regs are
1831         dead at a CODE_LABEL.
1832         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
1833         even after reload.
1834         * sched.c (sched_analyze_insn): Likewise.
1835         (update_flow_info): Likewise.
1836         * haifa-sched.c (sched_analyze_insn): Likewise.
1837         (update_flow_info): Likewise.
1838         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
1839         * toplev.c (max_label_num_after_reload): Delete variable.
1840         (rest_of_compilation): Don't set max_label_num_after_reload.
1841         Call life_analysis after reload_cse_regs if optimizing.
1842         * config/gmicro/gmicro.h: Delete comment referring to
1843         PRESERVE_DEATH_INFO_REGNO_P.
1844         * config/i386/i386.h: Likewise.
1845         * config/m88k/m88k.h: Likewise.
1846         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
1847         * config/sh/sh.h: Likewise.
1848
1849 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1850
1851         * loop.c (strength_reduce): Restore marking bct_p as
1852         ATTRIBUTE_UNUSED.
1853         * rs6000.c (optimization_options): Change #ifdef HAIFA to
1854         HAVE_decrement_and_branch_on_count.
1855         (small_data_operand): Remove TARGET_ELF condition for marking
1856         parameters ATTRIBUTE_UNUSED.
1857         
1858 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
1859
1860         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
1861         (SELECT_SECTION): Resync with svr4.h.
1862
1863 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1864
1865         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
1866         ATTRIBUTE_UNUSED.
1867
1868 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
1869
1870         * c-pragma.c (handle_pragma_token): Test for null tree before
1871         dereferencing TREE_CODE.
1872
1873 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1874
1875         * config/c4x/c4x.c: Convert to use GEN_INT.
1876         (c4x_parallel_process): Rework to handle new repeat loop structure.
1877
1878         * config/c4x/c4x.md: Convert to use GEN_INT. 
1879         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
1880         (decrement_and_branch_on_count): Likewise.
1881
1882         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
1883         loop.c has the desired functionality.
1884         (rc_reg_operand): New prototype.
1885
1886         * config/c4x/t-c4x: Can now build all front ends.
1887
1888 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
1889
1890         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
1891
1892 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
1893
1894         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
1895         * config/t-rtems: Do not install assert.h -- use newlib's.
1896
1897 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1898
1899         * combine.c (combine_instructions): When finished, call init_recog.
1900         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
1901
1902 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
1903
1904         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
1905
1906 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1907
1908         * cppalloc.c (memory_full): Mark function prototype with
1909         ATTRIBUTE_NORETURN.
1910
1911         * demangle.h (collect_exit): Likewise.
1912
1913         * fix-header.c (v_fatal, fatal): Likewise.
1914
1915         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
1916         Likewise.
1917
1918         * gcov.c (print_usage): Likewise.
1919
1920         * genattr.c (fatal, fancy_abort): Likewise.
1921
1922         * genattrtab.c (fatal, fancy_abort): Likewise.
1923
1924         * gencodes.c (fatal, fancy_abort): Likewise.
1925
1926         * genconfig.c (fatal, fancy_abort): Likewise.
1927
1928         * genemit.c (fatal, fancy_abort): Likewise.
1929
1930         * genextract.c (fatal, fancy_abort): Likewise.
1931
1932         * genflags.c (fatal, fancy_abort): Likewise.
1933
1934         * genopinit.c (fatal, fancy_abort): Likewise.
1935
1936         * genoutput.c (fatal, fancy_abort): Likewise.
1937
1938         * genpeep.c (fatal, fancy_abort): Likewise.
1939
1940         * genrecog.c (fatal, fancy_abort): Likewise.
1941
1942         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
1943         __sjpopnthrow, __throw): Likewise.
1944
1945         * objc/objc-act.c (objc_fatal): Likewise.
1946
1947         * protoize.c (usage, aux_info_corrupted,
1948         declare_source_confusing): Likewise.
1949
1950         * rtl.c (dump_and_abort): Likewise.
1951
1952         * rtl.h (sets_cc0_p): Likewise.
1953
1954         * toplev.c (float_signal, pipe_closed): Likewise.
1955         
1956 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
1957
1958         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
1959         when generating the decision tree for the general case.
1960
1961         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
1962         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
1963
1964 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1965
1966         * Makefile.in (sched.o): Depend on recog.h.
1967
1968         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
1969         (unsigned) when comparing against one.
1970         (find_base_value): Likewise.
1971         (record_base_value): Cast variable `regno' to (unsigned) when
1972         comparing against one.  Cast the result of REGNO() macro to
1973         (unsigned) when comparing against one.
1974         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
1975         unsigned.
1976         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
1977         variable where an unsigned index is needed.
1978
1979         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
1980         before comparing against one.
1981
1982         * collect2.c: Add prototypes for functions `error', `fatal' and
1983         `fatal_perror'.  Make these functions take variable arguments
1984         instead of faking it with a fixed number of args.
1985         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
1986         char).
1987
1988         * combine.c (can_combine_p): Mark parameter `pred' with
1989         ATTRIBUTE_UNUSED.
1990         (find_split_point): Cast variable `src' to (unsigned
1991         HOST_WIDE_INT) when comparing against one.
1992         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
1993         (simplify_logical): Likewise.
1994         (force_to_mode): Cast result of INTVAL() macro to (unsigned
1995         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
1996         HOST_WIDE_INT) in shift.
1997         (simplify_and_const_int): Cast result of INTVAL() macro to
1998         `unsigned HOST_WIDE_INT' when comparing against one.
1999         (merge_outer_ops): Cast variable const0 to `unsigned
2000         HOST_WIDE_INT' when comparing against the result of
2001         GET_MODE_MASK() macro.
2002         (simplify_comparison): Likewise for variable `c0'.  Cast variable
2003         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
2004         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
2005         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
2006         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
2007         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
2008         comparing against one.
2009         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
2010
2011         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
2012         macro to `unsigned HOST_WIDE_INT' when comparing against one.
2013         (output_block_move): Cast `sizeof' expression to (int) when
2014         comparing against one.
2015         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
2016         against one.
2017         (save_restore_insns): Cast `base_offset' to `long' to match format
2018         specifier in fprintf.
2019
2020         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
2021         to `enum machine_mode'.
2022
2023         * flow.c (life_analysis_1): Remove unused variable `insn'.
2024
2025         * gcc.c (translate_options): Move variables `j' and `k' into the
2026         scope in which they are used.  Change their types to `size_t'.
2027         (set_spec): Cast the argument of ctype macro to `unsigned char'.
2028         (read_specs): Likewise.
2029         (process_command): Cast `sizeof' to (int) when comparing against one.
2030         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
2031         (handle_braces): Cast both sides of `==' expression to `long' to
2032         ensure sign matching.
2033         (main): Cast variable `i' to `int' when comparing against one.
2034
2035         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
2036         int to size_t.  Cast variable `i' to size_t when comparing against
2037         one.
2038
2039         * genattrtab.c (convert_set_attr_alternative): Remove unused
2040         parameter `insn_code'.  All callers changed.
2041         (convert_set_attr): Likewise.
2042
2043         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
2044         size_t when comparing against one.  Likewise for variable `len'.
2045
2046         * global.c (global_alloc): Cast variable `max_regno' to size_t
2047         when comparing against one.  Likewise for variable `max_allocno'.
2048
2049         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
2050
2051         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
2052         `set' with ATTRIBUTE_UNUSED.
2053         (find_free_reg): Cast `sizeof' expression to (int) when comparing
2054         against one.
2055
2056         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
2057         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
2058         (get_condition): Cast variable `const_val' to `unsigned
2059         HOST_WIDE_INT' when comparing against one.  Cast unsigned
2060         expression to HOST_WIDE_INT when comparing against one.
2061         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
2062         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
2063         `unsigned' when comparing against one.
2064
2065         * protoize.c (is_id_char): Change type of parameter `ch' to
2066         unsigned char.
2067         (munge_compile_params): Cast argument of ctype macro to (const
2068         unsigned char).
2069         (process_aux_info_file): Cast variable `aux_info_size' to int when
2070         comparing against one.
2071         (forward_to_next_token_char): Cast argument of ctype macro to
2072         `const unsigned char'.
2073         (edit_formals_lists): Likewise.
2074         (find_rightmost_formals_list): Likewise.
2075         (add_local_decl): Likewise.
2076         (add_global_decls): Likewise.
2077         (edit_fn_definition): Likewise.
2078         (do_cleaning): Likewise.
2079         (scan_for_missed_items): Likewise.
2080         (edit_file): Cast variable `orig_size' to (int) when comparing
2081         against one.
2082         (main): Cast argument of ctype macro to `const unsigned char'.
2083
2084         * recog.c (const_int_operand): Mark parameter `mode' with
2085         ATTRIBUTE_UNUSED.
2086
2087         * regclass.c (record_reg_classes): Change type of variable `c' to
2088         `unsigned char'.  Cast `char' array index to `unsigned char'.
2089
2090         * reload.c (push_secondary_reload): Cast argument to
2091         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
2092
2093         * reload1.c (calculate_needs): Cast `char' array index to
2094         `unsigned char'.
2095         (set_label_offsets): Change type of variable `i' to unsigned int.
2096         Cast result of XVECLEN() macro to unsigned when comparing against
2097         one.
2098         (mark_not_eliminable): Change type of variable `i' to unsigned.
2099         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
2100         when comparing against one.
2101         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
2102         comparing against one.
2103         (choose_reload_regs): Hide unused label `fail'.
2104         (reload_cse_simplify_operands): Cast `char' array index to
2105         `unsigned char'.
2106         (reload_combine_note_store): Mark parameter `set' with
2107         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
2108         against one.
2109         (reload_cse_move2add): Remove unused variable `src2'.
2110
2111         * sched.c: Include recog.h.
2112         (sched_note_set): Remove unused parameter `b'.  All callers
2113         changed.
2114         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
2115         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
2116         when comparing against one.
2117
2118         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
2119         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
2120         comparing against one.
2121
2122         * unroll.c (precondition_loop_p): Remove unused parameter
2123         `loop_end'.  All callers changed.
2124
2125 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2126
2127         * reload1.c (maybe_fix_stack_asms): New static function.
2128         (reload): Call it.
2129
2130         * reload.h (compute_use_by_pseudos): Declare.
2131
2132         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
2133         (something_needs_reloads): Delete variable.
2134         (finish_spills): New function.
2135         (compute_use_by_pseudos): New function.
2136
2137         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
2138         Use the reload_insn_chain instead of walking the rtl directly.
2139
2140         (reload): Allocate and free spilled_pseudos.
2141         Ensure that all calls of spill_hard_reg are followed by a call to
2142         finish_spills.
2143         Use the insns_need_reload list instead of something_needs_reloads
2144         to find out if reload_as_needed must be called.
2145         Clear unused_insn_chains at the end.
2146
2147         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
2148         changed.
2149         Delete code to keep track of current basic block.
2150         Walk reload_insn_chain instead of the rtl structure.  Build the
2151         insns_need_reload chain.
2152         Remember which insns need reloading/elimination by setting the
2153         appropriate fields in struct insn_chain, not by putting modes on the
2154         insn.
2155
2156         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
2157         arg INSN.  All callers changed.
2158         Delete declaration of struct needs.
2159         Don't set something_needs_reloads.
2160         Record insn needs in the CHAIN argument.
2161
2162         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
2163
2164         (reload_as_needed): Lose FIRST arg.  All callers changed.
2165         Walk the reload_insn_chain instead of the rtx structure.
2166         Delete code to keep track of current basic block.
2167         Rename one of the NEXT variables to OLD_NEXT.
2168
2169         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
2170         callers changed.
2171         (choose_reload_regs): Likewise.
2172
2173         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
2174         callers changed.
2175         
2176         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
2177         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
2178         (hard_regs_live, hard_regs_need_restore): Delete variables.
2179         (n_regs_saved): Now static.
2180         (referenced_regs, this_insn_sets): New variables.
2181
2182         (setup_save_areas): Restructure the code a bit.
2183
2184         (restore_referenced_regs): Delete function.
2185         (mark_referenced_regs): New function, similar to the old
2186         restore_referenced_regs, but mark registers in referenced_regs.
2187
2188         (clear_reg_live): Delete function.
2189         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
2190         Only mark registers in this_insn_sets.
2191
2192         (save_call_clobbered_regs): Rework this function to walk the
2193         reload_insn_chain instead of using the list of instructions directly.
2194         Delete code to keep track of register lives, compute live regs on the
2195         fly from information in the chain.
2196         Instead of calling restore_referenced_regs, use mark_referenced_regs,
2197         then walk the set it computes and call insert_restore as appropriate.
2198
2199         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
2200         callers changed.
2201         Restructure the code a bit.  Test hard_regs_saved instead of
2202         hard_regs_need_restore.
2203         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
2204         args.  All callers changed.
2205         Restructure the code a bit.  Use TO_SAVE to determine which regs to
2206         save instead of more complicated test.
2207         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
2208         callers changed.
2209         Create a new insn_chain structure for the new insn and place it
2210         into the chain.
2211
2212         * rtl.texi: Update documentation to reflect that reload no longer
2213         puts modes on the insns.
2214
2215 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2216
2217         * function.c (purge_addressof_1): Force the first argument of a
2218         CALL insn to memory.
2219
2220 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
2221
2222         * rtl.h: Delete duplicate prototypes.  Add some missing
2223         prototypes.
2224         * rtlanal.c: (for_each_rtx): Formatting tweak.
2225
2226 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2227
2228         * real.c (emdnorm and etoasc): Disable round to even for c4x target
2229         to be compatible with TI compiler.
2230
2231         * Makefile.in (USER_H): Add va-c4x.h to definition.
2232
2233 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
2234
2235         * function.c (purge_addressof_1): Fix typo in inequality: do
2236         bitfield optimization for equal mode sizes.
2237         * expmed.c (store_bit_field): Don't take subregs of subregs in
2238         the movstrict case.  Tidy a potential problem in the multi-word case.
2239         (extract_bit_field): Likewise.
2240
2241 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2242
2243         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
2244         function.
2245         Compute max_uid_for_flow by calling get_max_uid after the scan.
2246         (find_basic_blocks_1): Don't emit NOPs here.
2247
2248 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
2249
2250         * alias.c (base_alias_check): Accept new args for the modes of the
2251         two references.  Use them to determine if an AND can overlap.  Update
2252         all callers.
2253         (memrefs_conflict_p): Assume sizes are aligned, and uses them
2254         to determine if an AND can overlap.
2255
2256 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
2257
2258         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
2259         check.  Add comment to document problems with TARGET_SUN_FPA version
2260         of this macro.
2261         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
2262
2263 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2264
2265         * Makefile.in (gencheck.o): Depend on gansidecl.h.
2266
2267         * c-common.c (print_char_table): Add missing initializers.
2268         (scan_char_table): Likewise.
2269         (time_char_table): Likewise.
2270
2271         * c-decl.c (c_decode_option): Mark parameter `argc' with
2272         ATTRIBUTE_UNUSED.
2273         (declare_parm_level): Mark parameter `definition_flag' with
2274         ATTRIBUTE_UNUSED.
2275
2276         * c-lex.c (readescape): Use `(unsigned)1' in shift.
2277         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
2278         against one.
2279
2280         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
2281         callers changed.
2282         (emit_call_1): Mark parameters `fndecl' and `funtype' with
2283         ATTRIBUTE_UNUSED.
2284         (expand_call): Cast result of MIN() to (unsigned int) when
2285         comparing against an unsigned value.
2286
2287         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
2288         callers changed.
2289         (make_definition): Remove unused parameter `op'.  All callers
2290         changed.
2291         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
2292         comparing against the result of pointer arithmetic.
2293
2294         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
2295         when comparing against one.
2296
2297         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
2298         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
2299         one.
2300         (output_die): Move variable `i' into the scope in which it is
2301         used.  Change its type to `unsigned'.
2302         (output_die): Cast the result of `strlen' to (int) when passing it
2303         to ASM_OUTPUT_ASCII().
2304         (output_pubnames): Likewise.
2305         (output_line_info): Likewise.
2306
2307         * emit-rtl.c (global_rtl): Add missing initializers.
2308
2309         * explow.c (promote_mode): Mark parameter `for_call' with
2310         ATTRIBUTE_UNUSED.
2311
2312         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
2313         `unsigned HOST_WIDE_INT' when comparing against one.
2314         (synth_mult): Change type of variable `cost' to int.
2315         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
2316
2317         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
2318         when comparing against one.
2319         (get_inner_reference): Change variable `alignment' to unsigned.
2320         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
2321         int) when comparing against one.
2322         (expand_builtin_setjmp): Change type of variable `i' to size_t.
2323
2324         * fold-const.c (div_and_round_double): Cast BASE to
2325         (HOST_WIDE_INT) when comparing against one.
2326
2327         * gencheck.c: Include gansidecl.h.
2328         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
2329
2330         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
2331         `tcode' with ATTRIBUTE_UNUSED.
2332
2333         * real.c (edivm): Cast constant value to (unsigned long) in
2334         expression compared against an unsigned value.
2335
2336         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
2337         comparing against one.
2338         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
2339         when comparing against one.
2340
2341         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
2342         (unsigned int) when comparing against one.  Likewise for
2343         GET_MODE_BITSIZE.
2344         (smallest_mode_for_size): Likewise.
2345         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
2346         (restore_storage_status): Likewise.
2347         
2348         * toplev.c (debug_args): Add missing initializer.
2349         (f_options): Spelling correction.  Add missing initializers.
2350         (documented_lang_options): Likewise.
2351         (debug_end_source_file): Mark parameter `lineno' with
2352         ATTRIBUTE_UNUSED.
2353
2354         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
2355         `decl' and `type' with ATTRIBUTE_UNUSED.
2356
2357         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
2358         when comparing against one.
2359         (assemble_variable): Mark parameter `top_level' with
2360         ATTRIBUTE_UNUSED.
2361         (assemble_external_libcall): Mark parameter `fun' with
2362         ATTRIBUTE_UNUSED.
2363         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
2364         ATTRIBUTE_UNUSED.
2365
2366 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
2367
2368         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
2369         Replace use of r5 with use of r19.
2370
2371         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
2372
2373         * config/v850/v850.c (compute_register_save_size): Allow for the
2374         fact that helper functions save all registers, not just those used
2375         by the function.
2376         
2377         Replace constant 31 with macro LINK_POINTER_REGNUM.
2378
2379         * config/v850/v850.md: Use 'indirect_operand' rather than
2380         'memory_operand' for bit test/set/clear patterns.
2381
2382 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
2383
2384         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
2385         * varasm.c (assemble_start_function et al): Don't call
2386         ASM_GLOBALIZE_LABEL for weak symbols.
2387
2388 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
2389
2390         * cse.c (equiv_constant): Check for NULL return from
2391         gen_lowpart_if_possible().
2392
2393 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
2394
2395         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
2396
2397         * collect2.c (main): Pass -EL/-EB through to the compiler.
2398
2399 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2400         
2401         * expr.c (push_block): Handle targets where the stack grows
2402         to higher addresses, but args grow to lower addresses and
2403         ACCUMULATE_OUTGOING_ARGS is not defined.
2404
2405 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
2406
2407         * config/v850/v850.c (print_operand):  Extend meaning
2408         of 'c' operands to support .vtinherit.
2409
2410 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2411
2412         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
2413         Added ATTRIBUTE_UNUSED to unused function arguments.
2414         (rc_reg_operand): New predicate.
2415         (c4x_rptb_insert): New function.
2416         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
2417         (c4x_optimization_options): New function.
2418
2419         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
2420          (decrement_and_branch_on_count): New pattern.
2421          (rptb_top): Modified pattern to work with BCT optimization.
2422         
2423         * config/c4x/c4x.h (RC_REG): New register class.
2424         (rc_reg_operand): Define prototype.
2425         (IS_RC_REG): New macro.
2426         (IS_RC_OR_PSEUDO_REG): New macro.
2427         (IS_RC_OR_PSEUDO_REGNO): New macro.
2428         (OPTIMIZATION_OPTIONS): Define.
2429
2430 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
2431
2432         * collect2.c (extract_init_priority): No priority is 65535.
2433
2434 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2435         
2436         * Makefile.in (build_tooldir): new variable, same as old
2437         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
2438         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
2439         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
2440         
2441         * configure.in (gxx_include_dir): set default based on unlibsubdir
2442         * Makefile.in (tooldir): ditto
2443         (cccp.o, cpplib.o): use unlibsubdir implicitly through
2444         gxx_include_dir, includedir and tooldir
2445         (protoize.o, unprotoize.o): ditto
2446         
2447 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
2448
2449         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
2450
2451         * config/arm/thumb.c (thumb_override_options): Add warning about
2452         PIC code not being supported just yet.
2453
2454 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
2455
2456         * flow.c: Update comment.
2457         (notice_stack_pointer_modification): New static function.
2458         (record_volatile_insns): Use it.
2459         (mark_regs_live_at_end): Mark the stack pointer as alive
2460         at the end of the function if current_function_sp_is_unchanging
2461         is set.
2462         (life_analysis_1): Set current_function_sp_is_unchanging.
2463         * function.c: Define it.
2464         (init_function_start): Initialize it.
2465         * output.h: Declare it.
2466         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
2467         the stack pointer as alive at the end of the function if
2468         current_function_sp_is_unchanging is set.
2469         * i386.c (ix86_epilogue): Optimize the restoring
2470         of the stack pointer.
2471
2472 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
2473
2474         * version.c: Bump for snapshot.
2475
2476 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
2477
2478         * c-pragma.c (handle_pragma_token): If passed a token instead
2479         of a tree, use that as the pack value.
2480
2481 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
2482
2483         * flow.c (find_basic_blocks_1): Fix prototype.
2484
2485 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
2486
2487         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
2488         (struct tree_decl): New fields no_check_memory_usage.
2489         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
2490         (init_attributes): Register it as a new attribute.
2491         (decl_attributes): Set flags on functions given that attribute.
2492         * c-decl.c (duplicate_decls): Merge new attribute.
2493         * expr.h (current_function_check_memory_usage): Declare new var.
2494         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
2495         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
2496         current_function_check_memory_usage.
2497         * function.h: Add field to struct function.
2498         * function.c (current_function_check_memory_usage): Define it.
2499         (push_function_context_to, pop_function_context_from): Save and
2500         restore it.
2501         (expand_function_start): Set it, based on global flag and function
2502         attribute.
2503
2504         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
2505         check non-automatic variables, to permit detection of writes to
2506         read-only locations in embedded systems without memory management.
2507         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
2508         when emitting chkr_set_right_libfunc call, even if the argument is
2509         BLKmode or variable-sized; don't abort.
2510
2511         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
2512         symbols in Pmode, not VOIDmode.
2513
2514 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2515
2516         * cppexp.c: When forcing unsigned comparisons, cast both sides
2517         of the operation.
2518
2519         * cpphash.h: Move static declaration of hashtab[]...
2520         * cpphash.c: ...here.
2521
2522         * cpplib.c: Cast difference of two pointers to size_t before
2523         comparing it to size_t.  Cast signed to unsigned
2524         before comparing to size_t. (FIXME: struct argdata should use
2525         unsigned buffer sizes.)
2526         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
2527         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
2528         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
2529         size_t before comparison.
2530
2531 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
2532
2533         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
2534         (find_basic_blocks_1): Similarly.
2535         * output.h (find_basic_blocks): Fix prototype.
2536         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
2537         find_basic_blocks anymore.
2538
2539 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
2540
2541         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
2542         (sbitmap_free, sbitmap_vector_free): New macros.
2543         * output.h (rtl_dump_file): Declare.
2544
2545 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
2546
2547         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
2548
2549 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2550
2551         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
2552         (DFtype): Likewise.
2553         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
2554         (divide): Remove unused variable `tmp'.
2555         (si_to_float): Cast numeric constant to (SItype) before comparing
2556         it against one.
2557
2558 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
2559
2560         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
2561         * gcc.c (add_preprocessor_option): Correct typo when allocating
2562         memory, sizeof() argument had one too many `*'.
2563         (add_assembler_option): Likewise.
2564         (add_linker_option): Likewise.
2565         * gcov.c (output_data): Likewise.
2566         * local-alloc.c (memref_used_between_p): Likewise.
2567         (update_equiv_regs): Likewise.
2568         * loop.c (strength_reduce): Likewise.
2569         * reg-stack.c (record_asm_reg_life): Likewise.
2570         (subst_asm_stack_reg): Likewise.
2571         * reorg.c (dbr_schedule): Likewise.
2572
2573 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
2574
2575         * flow.c (life_analysis_1): Break out some functions.
2576         (find_basic_blocks_1): Likewise.  Also move some variables out and
2577         make them static.
2578         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
2579         new static var nonlocal_label_list with it.
2580         (active_eh_region, nested_eh_region, label_value_list,
2581         nonlocal_label_list): New static variables.
2582         (make_edges, delete_unreachable_blocks, delete_block): New static
2583         functions, broken out of find_basic_blocks_1.
2584         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
2585         noop_move_p): New static functions, broken out of life_analysis_1.
2586
2587 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
2588
2589         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
2590         Take extra care for op0 now possibly being a subreg.
2591         (extract_bit_field): Likewise.
2592         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
2593         the reg to memory if there is no equal sized integral mode.
2594         * stor-layout.c (int_mode_for_mode): New function.
2595         * machmode.h: Prototype it.
2596
2597 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
2598
2599         * global.c (build_insn_chain): Verify no real insns exist past the
2600         end of the last basic block, then exit the loop.
2601
2602 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2603
2604         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
2605
2606 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
2607
2608         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
2609
2610 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2611
2612         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
2613
2614 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
2615
2616         * flow.c (find_basic_blocks): Correctly determine when a call
2617         is within an exception region.
2618
2619 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
2620
2621         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
2622
2623         * cpplib.h: Protect from multiple inclusions.
2624         * cpplib.c: Fix minor formatting problems.
2625
2626         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
2627
2628         * jump.c (jump_optimize): Revert accidental patch.
2629
2630         * Makefile.in (cpplib.o): Use unlibsubdir.
2631
2632 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
2633
2634         * loop.c (get_condition): Allow combine when either compare is
2635         VOIDmode.
2636
2637 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
2638
2639         * version.c: Bump for snapshot.
2640
2641 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
2642
2643         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
2644         (init_lex): Initialize ridpointers[RID_BYREF].
2645         * c-lex.h (enum rid): Add RID_BYREF.
2646         * c-parse.gperf: Add RID_BYREF as a type qualifier.
2647         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
2648         (encode_type_qualifiers): Similarly
2649         * c-gperf.h: Rebuilt.
2650
2651 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
2652
2653         * c-common.c (type_for_mode): Only return TItype nodes when
2654         HOST_BITS_PER_WIDE_INT is >= 64 bits.
2655         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
2656         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
2657         (init_decl_processing): Only create TItype nodes when
2658         HOST_BITS_PER_WIDE_INT is >= 64 bits.
2659         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
2660         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
2661
2662 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
2663
2664         * stmt.c (n_occurrences): New static function.
2665         (expand_asm_operands): Verify that all constrains match in the
2666         number of alternatives.
2667         Verify that '+' or '=' are at the beginning of an output constraint.
2668         Don't allow '&' for input operands.
2669         Verify that '%' isn't written for the last operand.
2670         * reload.c (find_reloads): Abort if an asm is found with invalid
2671         constraints; all possible problems ought to be checked for earlier.
2672
2673 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2674
2675         * flags.h (flag_branch_on_count_reg): Always declare 
2676         * toplev.c (flag_branch_on_count_reg): Likewise.
2677         * toplev.c: Fix typos.
2678
2679         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
2680         (toc4x): Similarly.
2681
2682 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
2683
2684         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
2685         max_uids_for_flow.
2686         (find_basic_blocks_1): Add a nop to the end of a basic block when
2687         a trailing call insn does not have abnormal control flow.
2688         * gcse.c (pre_transpout): New variable.
2689         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
2690         (compute_pre_transpout): Calculate it.
2691         (compute_pre_ppinout): Use it to eliminate impossible placements
2692         due to abnormal control flow through calls.
2693         (compute_pre_data): Call compute_pre_transpout.
2694
2695 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2696
2697         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
2698
2699 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
2700
2701         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
2702         and matching define_insns): Tack on a `use' of the table label, so
2703         flow analysis will recognize a tablejump.
2704
2705 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
2706
2707         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
2708         always end basic blocks for abnormal edge reasons.
2709
2710 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
2711
2712         * config/i386/i386.h: Remove definition of
2713         HANDLE_PRAGMA_PACK_PUSH_POP.
2714         
2715         * config/i386/go32.h: Add definition of
2716         HANDLE_PRAGMA_PACK_PUSH_POP.
2717         
2718         * config/i386/win32.h: Add definition of
2719         HANDLE_PRAGMA_PACK_PUSH_POP.
2720         
2721         * config/i386/cygwin32.h: Add definition of
2722         HANDLE_PRAGMA_PACK_PUSH_POP.
2723
2724         * c-pragma.c (insert_pack_attributes): Do not insert
2725         attributes unless #pragma pack(push,<n>) is in effect.
2726
2727 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
2728
2729         * expr.c (emit_group_store): Handle a PARALLEL destination.
2730
2731 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
2732
2733         * gcse.c (pre_insert_insn): When a call ends a bb, insert
2734         the new insns before the argument regs are loaded.
2735
2736 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2737
2738         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
2739         (c-parse.gperf): Update comments describing invocation flags.
2740         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
2741
2742 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
2743
2744         * reload1.c (reload): Call free before clobbering the memory
2745         locations or constants pointers.
2746
2747 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2748
2749         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
2750         for efficiency by checking whether we need to modify the current
2751         stack permission at all.
2752         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
2753         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
2754         __enable_execute_stack libcall here too if
2755         TRANSFER_FROM_TRAMPOLINE is defined.
2756         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
2757         IN_LIBGCC2.
2758
2759 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
2760
2761         * Makefile.in (DRIVER_DEFINES): Remove last change.
2762         
2763 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
2764
2765         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
2766         insns we're going to copy.
2767         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
2768
2769         * loop.c (count_one_set): Add prototype.
2770
2771         * caller-save.c (restore_referenced_regs): Lose mode argument.
2772         (insert_save): Lose mode argument.
2773         (insert_restore): Lose mode argument.
2774         (insert_one_insn): Lose mode argument.
2775         (save_call_clobbered_regs): Lose mode argument.
2776         (setup_save_areas): Take no argument and return void.  All callers
2777         changed.
2778         Don't verify validity of memory addresses.
2779         * reload.h (setup_save_ares): Adjust prototype.
2780         (save_call_clobbered_regs): Likewise.
2781         * reload1.c (delete_caller_save_insns): New function.
2782         (caller_save_spill_class): Delete variable.
2783         (caller_save_group_size): Delete variable.
2784         (reload): Call setup_save_areas and save_call_clobbered_regs
2785         in the main loop, before calling calculate_needs_all_insns.
2786         Don't call save_call_clobbered_regs after the loop.
2787         Call delete_caller_save_insns at the end of an iteration if
2788         something changed.
2789         Delete code to manage caller_save_spill_class.
2790         Emit the final note before setting reload_first_uid.
2791         Simplify test that determines whether reload_as_needed gets run.
2792         (calculate_needs): Delete code to manage caller_save_spill_class.
2793
2794 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
2795
2796         * collect2.c (main): Initialize ld_file_name.
2797
2798 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
2799  
2800         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
2801         check for flag_function_sections.
2802
2803 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2804
2805         * cse.c (insert_regs): Fix bug in Sep 24 change.
2806
2807 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2808
2809         * flags.h (flag_dump_unnumbered): Declare.
2810         * toplev.c (flag_dump_unnumbered): Don't declare.
2811         * print-rtl.c (flags.h): Include.
2812         (print_rtl_single): Add return value.
2813         * rtl.h (print_rtl_single): Update declaration.
2814         * flow.c (flag_dump_unnumbered): Don't declare.
2815         (print_rtl_with_bb): Use return value of print_rtl_single.
2816
2817 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
2818
2819         * loop.c (count_one_set): New static function, broken out of
2820         count_loop_regs_set
2821         (count_loop_regs_set): Call it.
2822         * global.c (mark_reg_store): Handle clobbers here by not calling
2823         set_preference.
2824         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
2825         is in fact a clobber.
2826         * integrate.c (process_reg_param): New function, broken out of
2827         expand_inline_function.
2828         (expand_inline_function): Call it.
2829
2830
2831         * i386.md (addsidi3_1): Delete unused variable temp.
2832         (addsidi3_2): Likewise.
2833         (clstrstrsi): Delete unused variable addr1.
2834
2835         * rtl.h: Don't declare any functions also declared in recog.h.
2836
2837         * Makefile.in (stupid.o): Update dependencies.
2838         (global.o): Likewise.
2839
2840         * global.c: Include reload.h
2841         (reg_becomes_live): New function.
2842         (reg_dies): New function.
2843         (build_insn_chain): New function.
2844         (global_alloc): Call build_insn_chain before calling reload.
2845
2846         * reload.h (struct needs): New structure definition.
2847         (struct insn_chain): Likewise.
2848         (reload_insn_chain): Declare variable.
2849         (new_insn_chain): Declare function.
2850
2851
2852         * reload1.c (reload_startobj): New variable.
2853         (reload_insn_chain): New variable.
2854         (unused_insn_chains): New variable.
2855         (new_insn_chain): New function.
2856         (init_reload): Initialize reload_startobj, not reload_firstobj.
2857         (reload): Initialize reload_firstobj.
2858         Before returning, free everything on the reload_obstack.
2859
2860         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
2861         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
2862         current_chain): New variables.
2863         (reg_where_born): Delete variable.
2864         (REG_WHERE_BORN): New macro.
2865         (find_clobbered_regs): New function.
2866         (stupid_life_analysis): Don't allocate/free reg_where_born.
2867         Allocate and free reg_where_born_exact, reg_where_born_clobber,
2868         reg_where_dead_chain.
2869         Use REG_WHERE_BORN instead of reg_where_born.
2870         While processing the insns, build the reload_insn_chain with
2871         information about register lifetimes.
2872         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
2873         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
2874         changed.
2875         Compute and information about birth and death of pseudo registers in
2876         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
2877         Delete code to set elements of reg_where_born.  
2878
2879 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2880
2881         * tree.def (GOTO_EXPR): Modified documentation.
2882         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
2883         goto.
2884
2885 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2886
2887         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
2888         loop_final_value, loop_comparison_code): No longer static.
2889         (unroll_loop): Delete loop_start_value update.
2890         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
2891         loop_final_value, loop_comparison_code): Extern.
2892         (loop_start_value): Delete extern.
2893         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
2894         loop_comparison_value, loop_comparison_code): Delete.
2895         (loop_optimize): Remove initialization for deleted variables.
2896         (strength_reduce): Delete analyze_loop_iterations call.  Only call
2897         insert_bct if flag_branch_count_on_reg set.
2898         (analyze_loop_iterations): Delete.
2899         (insert_bct): Remove iteration count calculation.  Move checks for
2900         viable BCT optimization to here.  Obtain iteration count from
2901         loop_iterations and correct for unrolling.  Check for enough
2902         iteration to be beneficial.  Comment out runtime iteration count
2903         case.
2904         (insert_bct): Print iteration count in dump file.  Remove
2905         loop_var_mode and use word_mode directly.
2906
2907         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
2908         * rs6000.c (rs6000_override_options): Use it.
2909         (optimization_options): Enable use of flag_branch_on_count_reg.
2910         * rs6000.md (define_function_unit): Describe 604e.
2911
2912 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2913
2914         * loop.c (move_movables): Corrected threshold calculation for
2915         moved_once registers.
2916
2917 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
2918
2919         * loop.c (combine_givs_p): Fix test for identical givs.
2920
2921 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
2922
2923         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
2924         call abort if the function is already defined.
2925
2926 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
2927
2928         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
2929         truncation is not a no-op.
2930
2931 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
2932
2933         * version.c: Bump for snapshot.
2934
2935 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
2936
2937         * version.c: Bump for snapshot.
2938
2939 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
2940
2941         * expmed.c (expand_divmod): Don't widen for computing remainder
2942         if we seem to have a divmod pattern for needed mode.
2943
2944 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
2945
2946         * cpplib.c (macroexpand): Correct off-by-one error in handling
2947         of escapes.
2948
2949 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
2950
2951         * combine.c (expand_field_assignment): Don't do bitwise operations
2952         on MODE_FLOAT; pun to MODE_INT if possible.
2953
2954 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
2955                           scott snyder  <snyder@d0sgif.fnal.gov>
2956
2957         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
2958         linker.  Recognize mangled names in quotes.
2959
2960 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2961
2962         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
2963         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
2964         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
2965         (lshrsi3_extend, lshrsi3_extend2): Ditto.
2966
2967 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2968
2969         * function.c (purge_addressof_1): If trying to take a sub-word
2970         integral piece of a floating point mode, put it on the stack.
2971
2972 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
2973
2974         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
2975
2976 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
2977
2978         * PROJECTS: Remove template friends.
2979
2980         * collect2.c (sort_ids): Remove unused variable.
2981
2982         * tm.texi (MATH_LIBRARY): Document.
2983         (NEED_MATH_LIBRARY): Remove.
2984
2985         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
2986         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
2987
2988 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
2989
2990         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
2991         last_end to 0x7fffffff.
2992
2993 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2994
2995         * function.c (purge_addressof_1): Do not perform endianness
2996         corrections on bitpos, who we call will do it for us.
2997
2998 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
2999
3000         * h8300.c (WORD_REG_USED): Fix typo.
3001         (initial_offset): Use WORD_REG_USED.
3002
3003         * h8300.c (handle_pragma): Fix typo.
3004
3005 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
3006
3007         * caller-save.c (insert_save_restore): Break this function up
3008         into new functions insert_restore, insert_save and insert_one_insn.
3009         All callers changed.
3010         (insert_restore): New function, mostly broken out of
3011         insert_save_restore.
3012         (insert_save): Likewise.
3013         (insert_one_insn): Likewise.
3014         (restore_referenced_regs): New argument BLOCK.  All callers changed.
3015         (save_call_clobbered_regs): Don't keep track of basic block boundaries
3016         in this function, do it in insert_one_insn instead.
3017
3018         * reload1.c (reload): Break out some more pieces into separate
3019         functions.
3020         (dump_needs): New function, broken out of reload.
3021         (set_initial_elim_offsets): Likewise.
3022         (init_elim_table): Likewise.
3023         (update_eliminables): Likewise.
3024
3025         * global.c (global_alloc): Delete code to manage the scratch_list.
3026         * local-alloc.c (qty_scratch_rtx): Delete.
3027         (scratch_block): Delete.
3028         (scratch_list): Delete.
3029         (scratch_list_length): Delete.
3030         (scratch_index): Delete.
3031         (alloc_qty_for_scratch): Delete.
3032         (local-alloc): Update initialization of max_qty.
3033         Delete code to manage the scratch list.
3034         Delete code to allocate/initialize qty_scratch_rtx.
3035         (block_alloc): Don't allocate quantities for scratches.
3036         Delete code to manage the scratch list.
3037         * regs.h (scratch_list): Delete declaration.
3038         (scratch_block): Delete declaration.
3039         (scratch_list_length): Delete declaration.
3040         * reload1.c (reload): Delete code to manage the scratch list.
3041         (spill_hard_reg): Likewise.
3042         (mark_scratch_live): Delete.
3043
3044         * recog.c (alter_subreg): Delete declaration.
3045
3046 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
3047
3048         * Makefile.in (cccp.o): Fix typo in last patch.
3049
3050 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3051
3052         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
3053         * config/sh/lib1funcs.asm (___set_fpscr): Add.
3054
3055 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
3056
3057         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
3058         NULL_RTX as an argument.
3059
3060         * Makefile.in (unlibsubdir): Define.
3061         (DRIVER_DEFINES): Use unlibsubdir.
3062         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
3063         (stmp-fixinc): Similarly.
3064
3065 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
3066
3067         * regmove.c (regmove_optimize): Add variable old_max_uid.
3068         At the end of the function, update basic_block_end.
3069
3070 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3071
3072         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
3073         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
3074         arbitrary constant.
3075
3076 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
3077
3078         * config/arm/arm.c: Improve interworking support.
3079
3080 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3081
3082         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
3083         copied from reload_out[r] .
3084
3085 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
3086
3087         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
3088         with more than three size ranges.
3089
3090         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
3091
3092         * rtl.c (mode_name): Add a null string at the end of the array.
3093         (mode_wider_mode): Change type to unsigned char.
3094         (mode_mask_array): New variable.
3095         (init_rtl): Update for mode_wider_mode type change.
3096
3097         * rtl.h (mode_wider_mode): Change type to unsigned char.
3098         (mode_mask_array): Declare.
3099         (GET_MODE_MASK): Use mode_mask_array.
3100
3101 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
3102
3103         * calls.c (expand_call) : Encapsulate code into 
3104         copy_blkmode_from_reg.
3105         * expr.c (copy_blkmode_from_reg): New function.
3106         * expr.h (copy_blkmode_from_reg): New function.
3107         * integrate.c (function_cannot_inline_p): We can inline
3108         these now.
3109         (expand_inline_function): Use copy_blkmode_from_reg
3110         if needed.  Avoid creating BLKmode REGs.
3111         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
3112         object.
3113
3114 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
3115
3116         * config/v850/v850.c: Add function prototypes.
3117         Add support for v850 special data areas.
3118
3119         * config/v850/v850.h: Add support for v850 special data areas.
3120         
3121         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
3122         HANDLE_PRAGMA_PACK_PUSH_POP.
3123         (push_alignment): New function: Cache an alignment requested
3124         by a #pragma pack(push,<n>).
3125         (pop_alignment): New function: Pop an alignment from the
3126         alignment stack.
3127         (insert_pack_attributes): New function: Generate __packed__
3128         and __aligned__ attributes for new decls whilst a #pragma pack
3129         is in effect. 
3130         (add_weak): New function: Cache a #pragma weak directive.
3131         (handle_pragma_token): Document calling conventions.  Add
3132         support for #pragma pack(push,<n>) and #pragma pack (pop).
3133
3134         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
3135         are defined enable HANDLE_PRAGMA_PACK.
3136         Move 'struct weak_syms' here (from varasm.c).
3137         Add pragma states for push and pop pragmas.
3138
3139         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
3140         if it is defined.
3141
3142         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
3143         HANDLE_GENERIC_PRAGMAS.
3144         
3145         * varasm.c: Move definition of 'struct weak_syms' into
3146         c-pragma.h. 
3147         (handle_pragma_weak): Deleted.
3148
3149         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3150
3151         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3152
3153         * c-decl.c (start_function): Add invocation of
3154         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
3155
3156         * tm.texi: Remove description of non-existant macro
3157         SET_DEFAULT_SECTION_NAME.
3158         
3159         (HANDLE_SYSV_PRAGMA): Document.
3160         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
3161
3162 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
3163
3164         * config.sub: Recognize i[34567]86-pc-udk as new target.
3165         * configure.in: Likewise.
3166         * config/i386/t-udk: New file.
3167         * config/i386/udk.h: New file.
3168
3169 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
3170
3171         * reorg.c (check_annul_list_true_false): Remove unused variables.
3172         (steal_delay_list_from_target): Add missing "used_annul" variable.
3173         (try_merge_delay_insns): Close out half formed comment.
3174
3175 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
3176
3177         * cpplib.c (macroexpand): If arg->raw_before or
3178         arg->raw_after, remove any no-reexpansion escape at the
3179         beginning of the pasted token.  Correct handling of whitespace
3180         markers and no-reexpand markers at the end if arg->raw_after.
3181
3182         * toplev.c (documented_lang_options): Recognize -include,
3183         -imacros, -iwithprefix, -iwithprefixbefore.
3184         * cpplib.c (cpp_start_read): Process -imacros and -include
3185         switches at the same time and in command-line order, after
3186         initializing the dependency-output code.  Emit properly nested
3187         #line directives for them.  Emit a #line for the main file
3188         before processing these switches, and don't do it again
3189         afterward.
3190
3191 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
3192
3193         * function.c (purge_addressof_1): Use bitfield manipulation
3194         routines to handle mem mode < reg mode.
3195
3196 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
3197
3198         * reorg.c (try_merge_delay_insns): Account for resources referenced
3199         in each instruction in INSN's delay list before trying to eliminate
3200         useless instructions.  Similarly when looking at a trial insn's delay
3201         slots.
3202
3203         * reorg.c (check_annul_list_true_false): New function.
3204         (steal_delay_list_from_{target,fallthrough}): Call it and also
3205         refine tests for when we may annul if already filled a slot.
3206         (fill_slots_from_thread): Likewise.
3207         (delete_from_delay_slot): Return newly-created thread.
3208         (try_merge_delay_isns): Use its new return value.
3209
3210 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
3211
3212         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
3213         used to compute a giv or as some other non-counting use.
3214
3215 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3216
3217         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
3218         * local-alloc.c (find_free_reg): Use it.
3219         * global.c (find_reg): Likewise.
3220         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
3221
3222         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
3223         * caller-save.c (init_caller_save): Use it.
3224         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
3225
3226 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
3227
3228         * configure.in: Add --enable-cpplib option which uses cpplib
3229         for cpp, but doesn't link cpplib into cc1.  Make help text
3230         capitalization consistent.
3231         * configure: Rebuilt.
3232
3233 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
3234
3235         * function.c (gen_mem_addressof): If the address REG is
3236         REG_USERVAR_P make the new REG be so also.
3237         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
3238         in an attempt to clarify slightly.
3239
3240 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
3241
3242         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
3243         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
3244
3245 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
3246
3247         * toplev.c:  Fix last patch.
3248
3249 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
3250
3251         * loop.c (get_condition): Fix typo in May 9 change.
3252
3253 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
3254
3255         * invoke.texi (-fexceptions): Merge 2 different descriptions.
3256
3257 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3258
3259         * toplev.c (documented_lang_options): Spelling corrections.
3260
3261 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3262
3263         * configure.in: new flags --with-ld and --with-as, equivalent
3264         to setting LD and AS environment variables.  Test whether
3265         specified arguments are GNU commands, and report them with
3266         checking messages.  Use the specified AS for configure
3267         tests too.
3268         * configure: ditto
3269         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
3270         * config.in: ditto
3271         * gcc.c (find_a_file): when looking for `as' and `ld', return
3272         the DEFAULT program if it exists
3273         * collect2.c (main): use DEFAULT_LINKER if it exists
3274
3275         * gcc.c (find_a_file): the test for existence of a full
3276         pathname was reversed
3277
3278 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
3279
3280         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
3281         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
3282
3283 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
3284
3285         * tree.h (TYPE_BINFO): Document.
3286
3287 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
3288
3289         * i386-coff.h (dbxcoff.h): Added.
3290
3291 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
3292
3293         * toplev.c:  fix bad patch around flag_data_sections.
3294
3295 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
3296
3297         * reload1.c (reload): Use reload_address_index_reg_class and 
3298         reload_address_base_reg_class when setting
3299         caller_save_spill_class.  (Patch generated by Jim Wilson:
3300         wilson@cygnus.com).
3301
3302 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
3303
3304         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
3305         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
3306         * expr.c (store_field): Add alias_set parameter.  Set the
3307         MEM_ALIAS_SET accordingly, if the target is a MEM.
3308         (expand_assignment): Use it.
3309         (store_constructor_field): Pass 0.
3310         (expand_expr): Likewise.
3311
3312 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
3313  
3314         * flags.h:  Add flag_data_sections.
3315         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
3316         (compile_file):  Error if flag_data_sections not supported.
3317         * varasm.c (assemble_variable):  Handle flag_data_sections.
3318         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
3319         * config/mips/elf.h:  Likewise.
3320         * config/mips/elf64.h:  Likewise.
3321         * invoke.texi:  Describe -fdata-sections.
3322  
3323 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
3324
3325         * invoke.texi (-ffloat-store): Clarify that this option
3326         does not affect intermediate results -- only variables.
3327
3328 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
3329
3330         * cpp.texi: Update for Fortran usage from Craig.
3331
3332 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3333
3334         * rs6000.c (function_arg_boundary): Revert accidental change on
3335         September 18.
3336
3337 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
3338
3339         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
3340         (output_mi_thunk): Declare.
3341
3342         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
3343         (output_function_profiler): Use r12 for temp, instead of r11 so
3344         that we preserve the static chain register.
3345         
3346 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
3347
3348         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
3349
3350 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3351
3352         * sh.c (gen_shl_sext): Fix case 5.
3353
3354 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3355
3356         * reload1.c (reload_combine): Re-add line that got accidentally lost.
3357
3358 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3359
3360         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
3361         accessing variables until they are initialized via va_arg().
3362
3363 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3364
3365         * reload1.c (reload_combine): Initialize set before using.
3366
3367 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
3368
3369         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
3370         won't be emitting.
3371
3372 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
3373
3374         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
3375         operand3 with mask before using it.  Patch provided by Jim Wilson.
3376
3377 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
3378
3379         * config/sparc/sparc.c (function_value): Perform the equivalent of
3380         PROMOTE_MODE for ARCH64.
3381         (eligible_for_epilogue_delay): Allow DImode operations in delay
3382         slot of a return for ARCH64.
3383
3384 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3385
3386         * sh.md (sqrtsf2): Fix mode of sqrt.
3387
3388 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3389
3390         * reload1.c (choose_reload_regs): Also try inheritance when
3391         reload_in is a stack slot of a pseudo, even if we already got a
3392         reload reg.
3393
3394 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3395
3396         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
3397         (reload_cse_regs): New function body: call reload_cse_regs_1,
3398         reload_combine, reload_cse_move2add.
3399         When doing expensive_optimizations, call reload_cse_regs_1 a
3400         second time after reload_cse_move2add.
3401         (reload_combine, reload_combine_note_store): New functions.
3402         (reload_combine_note_use): New function.
3403         (reload_cse_move2add, move2add_note_store): New functions.
3404
3405 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3406
3407         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
3408         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
3409
3410         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
3411         more than 3 such reloads.
3412
3413         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
3414         RELOAD_FOR_X_ADDR_ADDR reload.
3415
3416 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3417
3418         * expr.c (store_constructor): When initializing a field that is smaller
3419         than a word, at the start of a word, try to widen it to a full word.
3420
3421         * cse.c (cse_insn): When we are about to change a register,
3422         remove any invalid references to it.
3423
3424         (remove_invalid_subreg_refs): New function.
3425         (mention_regs): Special treatment for SUBREGs.
3426         (insert_regs): Don't strip SUBREG for call to mention_regs.
3427         Check if reg_tick needs to be bumped up before that call.
3428         (lookup_as_function): Try to match known word_mode constants when
3429         looking for a norrower constant.
3430         (canon_hash): Special treatment for SUBREGs.
3431
3432 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3433
3434         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
3435         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
3436         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
3437         and offsets in actual stack trampoline code so they match the
3438         commentary and actually work.
3439
3440 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
3441
3442         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
3443         tmake_file.
3444         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
3445         tmake_file.  Set extra_parts to needed crt objects.
3446         * configure: Rebuilt.
3447         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
3448         (TARGET_DEFAULT): Set if default is v9 or ultra.
3449         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
3450         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
3451         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
3452         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
3453         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
3454         (TARGET_VERSION): Define.
3455         (MULTILIB_DEFAULT): Define.
3456         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
3457         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
3458         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
3459         appropriately.
3460         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
3461         * config/sparc/sparc.c (sparc_override_options): If arch and
3462         pointer size disagree, emit diagnostic and fix it up.  If
3463         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
3464         V8PLUS in 64-bit mode.
3465         * config/sparc/t-linux64: New file.
3466         * config/sparc/t-sol2-64: New file.
3467         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
3468         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
3469         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
3470         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
3471         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
3472         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
3473         Define.
3474         (STARTFILE_SPEC): Set approriately based upon those.
3475         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
3476         disposition of DEFAULT_ARCH32_P.
3477         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
3478         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
3479         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
3480         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
3481         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
3482         arch64/v9.
3483         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
3484         
3485 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
3486
3487         * rtl.h (init_virtual_regs): New function.
3488         * emit-rtl.c (init_virtual_regs): Define.
3489         (insn_emit): Use it.
3490         * integrate.c (save_for_inline_copying): Likewise.
3491
3492 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
3493
3494         * config/arm/thumb.h: The following patches were made by Jim Wilson:
3495         (enum reg_class): Add NONARG_LO_REGS support.
3496         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
3497         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3498         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
3499         completes.  Re-enable HImode REG+OFFSET addresses.
3500         (LEGITIMIZE_RELOAD_ADDRESS): Define.
3501
3502         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
3503
3504 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
3505
3506         * alpha.c (get_aligned_mem): Revert Sep 20 change.
3507         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
3508         (alpha_align_insns): Properly calculate initial offset wrt max_align.
3509
3510 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
3511
3512         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
3513         jumps as a single entity, taking into account the size of the
3514         table.
3515
3516 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3517
3518         * tree.def (SWITCH_EXPR): New tree node definition.
3519
3520 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
3521
3522         * version.c: Bump for snapshot.
3523
3524 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
3525
3526         * version.c: Bump for snapshot.
3527
3528 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
3529
3530         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
3531         NetBSD.
3532
3533 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
3534
3535         * Revert this patch.
3536         * reload.c (find_reloads): Do not replace a pseudo with
3537         (MEM (reg_equiv_addr)) in the initializing insn for the
3538         pseudo.
3539
3540 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
3541
3542         * final.c (final_scan_insn): Disable tracking CC across branches.
3543
3544 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
3545
3546         * expr.h (eh_rtime_match_libfunc): New extern declaration.
3547         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
3548         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
3549         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
3550         NULL. Only include <stdio.h> if inhibit_libc is not defined.
3551
3552 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
3553
3554         * toplev.c (rest_of_compilation): Skip compiling anything with
3555         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
3556
3557 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
3558
3559         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
3560         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
3561         use in_libcall_block.
3562         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
3563         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
3564         to INSN.
3565
3566 Mon Sep 21 14:02:23 1998
3567
3568         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
3569         typo in no-fancy-math-387 description.
3570
3571 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
3572
3573         * version.c: Bump for snapshot.
3574
3575 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
3576
3577         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
3578
3579 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
3580
3581         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
3582         documented in install.texi.
3583         (TARGET_OPTIONS) Likewise.
3584
3585 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
3586
3587         * version.c: Bump for snapshot.
3588
3589 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
3590
3591         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
3592         * cccp.c (main): Likewise.
3593
3594         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
3595         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
3596         macro-use bugs.
3597
3598 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
3599
3600         * Makefile.in (LIBS):  Link in libiberty.a.
3601         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
3602
3603 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
3604
3605         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
3606         it to update bb boundaries.  Update caller.
3607         * function.c (reposition_prologue_and_epilogue_notes): Update
3608         bb boundaries wrt the moved note.
3609
3610 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
3611         
3612         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
3613         problems.
3614         * configure: Regenerate.
3615
3616 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
3617
3618         * alpha.c (alpha_sr_alias_set): New variable.
3619         (override_options): Set it.
3620         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
3621         (mode_mask_operand): Fix signed-unsigned comparision warning.
3622         (alpha_expand_block_move): Likewise.
3623         (print_operand): Likewise.
3624         (get_aligned_mem): Use change_address.
3625         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
3626         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
3627         (alphaev4_next_nop, alphaev5_next_nop): New functions.
3628         (alpha_align_insns): Remade from old alphaev5_align_insns
3629         to handle multiple processors.
3630         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
3631         * output.h (label_to_alignment): Prototype.
3632
3633         * tree.c (new_alias_set): New function.
3634         * tree.h (new_alias_set): Declare it.
3635         * c-common.c (c_get_alias_set): Use it.
3636
3637 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
3638
3639         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
3640         to an ABS expr, convert an unsigned input to signed.
3641         
3642 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
3643
3644         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
3645
3646 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3647
3648         * configure.in: Add support for c4x targets.
3649         * configure: Rebuilt.
3650
3651 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
3652
3653         * combine.c (distribute_notes): If an insn is a cc0 user, only
3654         delete it if we can also delete the cc0 setter.
3655
3656 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
3657
3658         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
3659         (invert_truthvalue): Enable truthvalue inversion for
3660         floating-point operands if -ffast-math.
3661
3662 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
3663                          
3664         * configure.in: Disable collect2 for nextstep.  Instead use
3665         crtbegin/crtend.
3666         * configure: Rebuilt.
3667         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
3668         (ENDFILE_SPEC): Define.
3669         (OBJECT_FORMAT_MACHO): Define.
3670         (EH_FRAME_SECTION_ASM_OP): Define.
3671         * crtstuff.c: Handle MACHO.
3672
3673 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
3674
3675         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
3676
3677 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
3678
3679         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
3680         (_fpadd_parts): Get sign right for 0.
3681
3682 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3683
3684         * ginclude/varargs.h: Add support for C4x target.
3685         * ginclude/stdargs.h: Likewise.
3686
3687 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
3688
3689         * alpha.c (alpha_return_addr): SET should be VOIDmode.
3690         (alpha_emit_set_long_const): Rewrite to be callable from reload
3691         and 32-bit hosts.
3692         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
3693         * alpha.md (movdi): Likewise.
3694
3695 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
3696
3697         * arm.c (add_constant): New parameter address_only, change caller.
3698         Set it non-zero if taking the address of an item in the pool.
3699         (arm_reorg): Handle cases where we need the address of an item in
3700         the pool.
3701
3702         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
3703         a memory address.
3704         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
3705         memory addresses that are not in standard canonical form.
3706
3707 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
3708
3709         * README.C4X: New file with information about the c4x ports.
3710         * ginclude/va-c4x.h: New file for c4x varargs support.
3711         * config/c4x: New directory with c4x port files.
3712
3713 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
3714
3715         * reload.c (find_reloads): Do not replace a pseudo with 
3716         (MEM (reg_equiv_addr)) in the initializing insn for the
3717         pseudo.
3718
3719 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3720
3721         * toplev.c (rest_of_compilation): Set bct_p on second call to
3722         loop_optimize.
3723         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
3724         bct_p.
3725         (strength_reduce): Only call analyze_loop_iterations and
3726         insert_bct if bct_p set.
3727         (check_dbra_loop): Fix typo.
3728         (insert_bct): Use word_mode instead of SImode.
3729         (instrument_loop_bct): Likewise.  Do not delete iteration count
3730         condition code generation insn.  Initialize iteration count before
3731         loop start.
3732         * rtl.h (loop_optimize): Update prototype.
3733
3734         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
3735         not doubleword aligned.
3736
3737         * rs6000.c (optimization_options): New function.
3738         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
3739         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
3740         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
3741         first; cr1 can be used for FP record condition insns.
3742
3743 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
3744
3745         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
3746         PREDICATE_CODES.
3747
3748         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
3749         patterns.
3750
3751         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
3752         operators.
3753         (block_move_call): New function: Call a library routine to copy a
3754         block of memory.
3755         (m32r_expand_block_move): New function: Expand a "movstrsi"
3756         pattern into a sequence of insns.
3757         (m32r_output_block_move): New function: Expand a
3758         "movstrsi_internal" pattern into a sequence of assembler opcodes.
3759         (m32r_block_immediate_operand): New function: Return true if the
3760         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
3761         
3762 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
3763
3764         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
3765         re-align some code.
3766         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
3767
3768 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3769
3770         * regmove.c (copy_src_to_dest): Check that modes match.
3771
3772 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
3773
3774         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
3775
3776 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
3777
3778         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
3779         narrower than FLOAT_REGS.
3780
3781 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3782
3783         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
3784         * cccp.c: ditto
3785         * Makefile.in (old_gxx_include_dir): removed
3786
3787 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
3788
3789         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
3790         new specification.
3791
3792         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
3793         (sh_handle_pragma): Change function arguments to match new
3794         specification for HANDLE_PRAGMA. 
3795
3796 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3797
3798         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
3799         `unsigned char'.
3800         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
3801         When generating output, initialize missing struct member to zero.
3802
3803 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3804
3805         * regmove.c (copy_src_to_dest): Don't copy if that requires
3806         (a) new register(s).
3807
3808 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3809
3810         * global.c (reg_allocno): Now static.
3811         * reload1.c (reg_allocno): Delete declaration.
3812         (order_regs_for_reload): Take no arguments.  Don't treat regs
3813         allocated by global differently than those allocated by local-alloc.
3814
3815 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
3816
3817         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
3818         condition, fix format strings.
3819         (output_function_epilogue): Likewise.
3820
3821         * m68k/m68k.c: Don't include <stdlib.h> directly.
3822
3823 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
3824
3825         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
3826         mem_first_set, mem_last_set; because 0 can be a CUID.
3827         (oprs_unchanged_p): Use new definition.
3828         (record_last_reg_set_info): Likewise.
3829         (record_last_mem_set_info): Likewise.
3830         (compute_hash_table): Likewise.
3831
3832 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
3833
3834         * rs6000.c (output_epilogue): Handle Chill.
3835
3836         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
3837         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
3838
3839         * combine.c (make_extraction): If no mode is specified for
3840         an operand of insv, extv, or extzv, default it to word_mode.
3841         (simplify_comparison): Similarly.
3842         * expmed.c (store_bit_field): Similarly.
3843         (extract_bit_field): Similarly.
3844         * function.c (fixup_var_regs_1): Similarly.
3845         * recog.c (validate_replace_rtx_1): Similarly.
3846         * mips.md (extv, extzv, insv expanders): Default modes for most
3847         operands.  Handle TARGET_64BIT.
3848         (movdi_uld, movdi_usd): New patterns.
3849
3850         * pa.c (emit_move_sequence): Do not replace a pseudo with its
3851         equivalent memory location unless we have been provided a scratch
3852         register.  Similarly do not call find_replacement unless a
3853         scratch register has been provided.
3854
3855 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3856
3857         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
3858         return FLOAT_REGS.
3859
3860 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
3861
3862         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
3863         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
3864         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
3865         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
3866         * c-decl.c (init_decl_processing): Update accordingly.
3867         * expr.c (expand_builtin): Likewise.
3868
3869         * rtl.h (global_rtl): Add cfa entry.
3870         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
3871         (LAST_VIRTUAL_REGISTER): Update.
3872         * emit-rtl.c (global_rtl): Add cfa entry.
3873         (init_emit): Initialize it.
3874         * function.c (cfa_offset): New.
3875         (instantiate_virtual_regs): Initialize it.
3876         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
3877         (expand_function_end): Call expand_eh_return.
3878         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
3879
3880         * except.c (current_function_eh_stub_label): Kill.
3881         (current_function_eh_old_stub_label): Likwise; update all references.
3882         (expand_builtin_set_return_addr_reg): Kill.
3883         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
3884         (expand_builtin_set_eh_regs): Kill.
3885         (eh_regs): Produce a third reg for the actual handler address.
3886         (eh_return_context, eh_return_stack_adjust): New.
3887         (eh_return_handler, eh_return_stub_label): New.
3888         (init_eh_for_function): Initialize them.
3889         (expand_builtin_eh_return, expand_eh_return): New.
3890         * except.h: Update prototypes.
3891         * flow.c (find_basic_blocks_1): Update references to the stub label.
3892         * function.h (struct function): Kill stub label elements.
3893
3894         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
3895         register number is one that would be in the previous window.
3896         Provide a dummy definition for non-windowed targets.
3897         (get_reg_addr): New function.
3898         (get_reg, put_reg, copy_reg): Use it.
3899         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
3900         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
3901
3902         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
3903         (alpha_init_expanders): Initialize it.
3904         (alpha_expand_epilogue): Use it.
3905         * alpha.h: Declare it.
3906         * alpha.md (eh_epilogue): New.
3907
3908         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
3909         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
3910
3911 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
3912
3913         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
3914         flag bit mask.
3915
3916 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
3917
3918         * except.h (struct eh_entry): Add false_label field.
3919         (end_catch_handler): Add prototype.
3920         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
3921         (start_catch_handler): When using old style exceptions, issue
3922         runtime typematch code before continuing with the handler.
3923         (end_catch_handler): New function, generates label after handler
3924         if needed by older style exceptions.
3925         (expand_start_all_catch): No need to check for new style exceptions.
3926         (output_exception_table_entry): Only output the first handler label
3927         for old style exceptions.
3928         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
3929         mechanism into one function, if a runtime matcher is provided.
3930
3931 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
3932
3933         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
3934
3935 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
3936
3937         * integrate.c (copy_decl_list): Fix typo.
3938
3939 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3940
3941         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
3942         attribute.
3943
3944 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
3945
3946         * version.c: Bump for snapshot.
3947
3948 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
3949
3950         * version.c: Bump for snapshot.
3951
3952 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
3953
3954         * version.c: Bump for snapshot.
3955
3956 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3957
3958         * invoke.texi (C Dialect Options): Put back missing @end itemize.
3959
3960 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3961
3962         * configure.in: remove usage of `!' to negate the result of a
3963         command; some common shells do not support it
3964
3965 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3966
3967         * configure.in: in sparc9-sol2 config, use 'if test' not
3968         brackets.
3969         * configure: Rebuilt.
3970
3971         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
3972         CM_MEDANY.
3973         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
3974         (CPP_CPU_DEFAULT_SPEC): Likewise.
3975         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
3976         for arch64 libfuncs.
3977         
3978         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
3979         for operand zero.
3980
3981 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3982
3983         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
3984
3985         * collect2.c: Don't declare `sys_siglist' here.
3986         (my_strsignal): Prototype and define new function.  Use it in
3987         place of `sys_siglist' hacks.
3988
3989         * mips_tfile.c:  Likewise.
3990
3991         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
3992         (GCC_NEED_DECLARATIONS): Likewise.
3993
3994         * system.h (strsignal): Prototype it, if necessary.
3995         (sys_siglist): Declare it, if necessary.
3996
3997 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3998
3999         * loop.c (move_movables): While removing insn sequences, preserve
4000         the next pointer of the most recently deleted insn when we skip
4001         over a NOTE.
4002
4003 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
4004
4005         * objc/config-lang.in: Do not output the name of the selected
4006         thread file when building the front-end.  The Makefile for the
4007         runtime library will do this.
4008
4009         * objc/Make-lang.in: Do not build the runtime library or install
4010         the Objective C header files.  The Makefile for the runtime
4011         library will do this.
4012
4013         * objc/Makefile.in (all.indirect): Only build the front-end.
4014         (compiler): Rename to `frontend'.
4015         (obj-runtime): Remove target.
4016         (copy-headers): Likewise.
4017         (clean): No need to remove `libobjc.a' any longer.
4018
4019 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
4020
4021         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
4022         supported with -mcpu=xxx.
4023
4024 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4025
4026         * flow.c (mark_set_1): Recognize multi-register structure return
4027         values in CALL insns.
4028         (mark_used_regs): Likewise.
4029         (count_reg_sets_1): Likewise.
4030         (count_reg_references): Likewise.
4031         * rtlanal.c (note_stores): Likewise.
4032         (reg_overlap_mentioned_p): Likewise.
4033         * haifa-sched.c (check_live_1): Likewise.
4034         (update_live_1): Likewise.
4035         (sched_analyze_1): Likewise.
4036         (sched_note_set): Likewise.
4037         (birthing_insn_p): Likewise.
4038         (attach_deaths): Likewise.
4039
4040         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
4041
4042
4043 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
4044
4045         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
4046
4047 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4048
4049         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
4050
4051 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
4052
4053         * configure.in: Add check for GAS subsection -1 support.
4054         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
4055         * configure config.in: Rebuilt.
4056         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
4057         SImode is subsection -1 works, else use DImode.
4058         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
4059         subsection -1 works.
4060         * config/sparc/sparc.c (sparc_output_addr_vec,
4061         sparc_output_addr_diff_vec): Use them if defined.
4062
4063 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
4064
4065         * tree.h (DECL_ORIGIN): New macro.
4066         * integrate.c (copy_and_set_decl_abstract_origin): New function.
4067         (copy_decl_list): Use it.
4068         (integrate_parm_decls): Likewise.
4069         (integrate_decl_tree): Likewise.
4070         * dwarf2out.c (decl_ultimate_origin): Simplify.
4071         * dwarfout.c (decl_ultimate_origin): Likewise.
4072         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
4073         (pushdecl): Likewise.
4074
4075 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
4076
4077         * config/rs6000/rs6000.c (output_epilog): Add Java support.
4078
4079 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
4080
4081         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
4082
4083 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
4084
4085         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
4086         empty or has a single entry.
4087
4088         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
4089         before calling reg_to_stack.
4090
4091 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
4092
4093         * alpha.c (alphaev5_insn_pipe): Abort on default case.
4094         (alphaev5_next_group): Swallow CLOBBERs and USEs.
4095
4096         * c-tree.h (warn_long_long): Declare it.
4097
4098 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
4099
4100         * emit-rtl.c (gen_lowpart_common): Disable optimization of
4101         initialized float-int union if the value is a NaN.
4102
4103 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
4104
4105         * c-lex.c (real_yylex): Don't warn about long long constants if 
4106         we're allowing long long
4107
4108 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4109
4110         * except.h (current_function_eh_stub_label): Declare.
4111         (current_function_eh_old_stub_label): Declare.
4112         * function.h (struct function): New members eh_stub_label and
4113         eh_old_stub_label.
4114         * except.c (current_function_eh_stub_label): New variable.
4115         (current_function_eh_old_stub_label): New variable.
4116         (init_eh_for_function): Clear them.
4117         (save_eh_status): Save them.
4118         (restore_eh_status): Restore them.
4119         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
4120         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
4121         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
4122         make an edge from the block that contains it to the block starting
4123         with the label if this label is one of the eh stub labels.
4124         If eh stub labels exist, show they are reachable from the last block
4125         in the function.
4126
4127         * reload1.c (reload): Break out several subroutines and make some
4128         variables global.
4129         (calculate_needs_all_insns): New function, broken out of reload.
4130         (calculate_needs): Likewise.
4131         (find_reload_regs): Likewise.
4132         (find_group): Likewise.
4133         (find_tworeg_group): Likewise.
4134         (something_needs_reloads): New global variable, formerly in reload.
4135         (something_needs_elimination): Likewise.
4136         (caller_save_spill_class): Likewise.
4137         (caller_save_group_size): Likewise.
4138         (max_needs): Likewise.
4139         (group_size): Likewise.
4140         (max_groups): Likewise.
4141         (max_nongroups): Likewise.
4142         (group_mode): Likewise.
4143         (max_needs_insn): Likewise.
4144         (max_groups_insn): Likewise.
4145         (max_nongroups_insn): Likewise.
4146         (failure): Likewise.
4147
4148         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
4149
4150 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
4151
4152         * loop.c (load_mems): Copy rtx for output mem.
4153
4154 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
4155
4156         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
4157         mips1 or mips2 either.
4158
4159 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
4160
4161         * pa.c (pa_reorg): New marking scheme for jumps inside switch
4162         tables.
4163         (pa_adjust_insn_length): Update to work with new marking scheme
4164         for jumps inside switch tables. 
4165         * pa.md (switch_jump): Remove pattern.
4166         (jump): Handle jumps inside jump tables.
4167
4168         * Makefile.in (profile.o): Depend on insn-config.h
4169
4170 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
4171
4172         * iris6.h (DWARF2_UNWIND_INFO): Undef.
4173
4174 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4175
4176         Add preliminary native sparcv9 Solaris support.
4177         * configure.in: Recognize sparv9-*-solaris2*
4178         * configure: rebuilt
4179         * config.sub: Recognize sparcv9 just like sparc64.
4180         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
4181         config/sparc/sol2-cn.asm: Macroize so it can be shared between
4182         32-bit and 64-bit Solaris systems.
4183         * config/sparc/t-sol2: Assemble those with cpp.
4184         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
4185         (*TF*_LIBCALL): If ARCH64 use V9 names.
4186         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
4187
4188 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
4189
4190         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
4191         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
4192         not doing pic.
4193         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
4194         Pmode.
4195         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
4196         to Pmode if CASE_VECTOR_MODE is something else.
4197
4198 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
4199
4200         * prefix.c (update_path): Correctly handle cases where PATH is
4201         a substring of the builtin prefix, but specifies a different
4202         directory location.
4203
4204 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
4205
4206         * expr.c: Corrected comment about what MOVE_RATIO does.
4207         * config/alpha/alpha.h: Ditto.
4208         * config/1750a/1750a.h: Ditto.
4209         * config/clipper/clipper.h: Ditto.
4210         * config/i386/i386.h: Ditto.
4211
4212 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
4213
4214         * configure.in (m68k-next-nextstep3*): Use collect2.
4215         Similarly for x86 NeXT configurations.
4216         * configure: Rebuilt.
4217
4218 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
4219
4220         * configure.in: Don't assume srcdir is .../gcc
4221         * configure: Rebuilt.
4222
4223 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
4224
4225         * global.c: Update comments.
4226         (global_alloc): Assign allocation-numbers
4227         even for registers allocated by local_alloc in case
4228         they are later spilled and retry_global_alloc is called.
4229         (mark_reg_store, mark_reg_clobber,
4230         mark_reg_conflicts, mark_reg_death): Always record a
4231         conflict with a pseudo register even if it has been
4232         assigned to a hard register.
4233         (dump_conflicts): Don't list pseudo registers already assigned to
4234         a hard register as needing to be allocated, but do list their
4235         conflicts.
4236         * local-alloc.c: Update comment.
4237
4238 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
4239
4240         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
4241         * configure: Rebuilt.
4242
4243 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
4244
4245         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
4246         missing 'c'.
4247         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
4248         for all targets that set -msoft-float.
4249
4250 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4251
4252         * toplev.c (print_switch_values): Make static to match prototype.
4253
4254 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
4255
4256         * configure.in: If we are unable to find the "gnatbind" program,
4257         then do not configure the ada subdir.
4258         * configure: Rebuilt.
4259
4260 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
4261
4262         * version.c: Bump for snapshot.
4263
4264 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
4265
4266         * version.c: Bump for snapshot.
4267
4268 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4269
4270         * Makefile.in (toplev.o): Depend on $(EXPR_H).
4271         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
4272
4273         * gansidecl.h: Define ATTRIBUTE_NORETURN.
4274
4275         * genattrtab.c: Have insn-attrtab.c include toplev.h.
4276
4277         * genextract.c: Have insn-extract.c include toplev.h.
4278
4279         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
4280
4281         * toplev.c: Include expr.h.
4282         (really_sorry, fancy_abort): Remove prototypes.
4283         (set_target_switch): Add argument in prototype.
4284         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
4285         (v_really_sorry): Likewise.
4286         (print_version, print_single_switch, print_switch_values): Make
4287         static and add prototype arguments.
4288         (decl_printable_name): Add prototype arguments.
4289         (lang_expand_expr_t): New typedef.
4290         (lang_expand_expr): Declare as a lang_expand_expr_t.
4291         (incomplete_decl_finalize_hook): Add prototype argument.
4292         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
4293         (botch): Likewise for variable `s'.
4294         (rest_of_type_compilation): Mark variables `type' and `toplev'
4295         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
4296         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
4297         (display_help): Make variable `i' an `unsigned long'.
4298         (main): Remove unused parameter `envp'.
4299         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
4300         Cast -1 when comparing it with a `size_t'.
4301
4302         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
4303         prototype with ATTRIBUTE_NORETURN.
4304         (fatal_insn_not_found, fatal_insn, really_sorry,
4305         push_float_handler, pop_float_handler): Add prototypes.
4306         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
4307         (do_abort, botch): Add prototypes.
4308         
4309 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
4310
4311         * final.c (final): If a label is reached only from a single jump,
4312         call NOTICE_UPDATE_CC on the jump and its predecessor before
4313         emitting the insn after the label.
4314         
4315         * i386.h: Add AMD K6 support.
4316         Change TARGET_* macros to use table lookup.
4317         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
4318         (ADJUST_COST): Change definition to call function in i386.c.
4319         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
4320         * i386.c: Add AMD K6 support.
4321         Add constants for feature tests used by TARGET_* macros.
4322         (split_di): If before reload, call gen_lowpart and gen_highpart.
4323         (x86_adjust_cost): New function.
4324         (put_jump_code): New function.
4325         (print_operand): New codes 'D' and 'd'.
4326         * i386.md: New insn types.  New insn attribute "memory".
4327         Redefine scheduling parameters to use new types and add AMD K6
4328         support.  Explicitly set type of most insns.
4329         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
4330         Pro and K6 prefer movl $1,reg to incl reg.
4331         (adddi3, subdi3): Set cc_status.
4332         (DImode shift patterns): Change label counters from HOST_WIDE_INT
4333         to int; x86 can't have more than 2^31 DImode shifts per file.
4334         (setcc): Combine all setcc patterns.  Allow writing memory.
4335         Combine all jump patterns using match_operator.
4336         (*bzero): Name pattern.  Emit mutliple stos instructions when that
4337         is faster than rep stos.
4338         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
4339         add define_split.
4340
4341 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
4342
4343         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
4344         linking.
4345
4346 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
4347
4348         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
4349         not whatever we're generating now.
4350
4351         * alpha.c (set_frame_related_p, FRP): New.
4352         (alpha_expand_prologue): Mark frame related insns.
4353         (alpha_expand_epilogue): Likewise, but with a null FRP.
4354         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
4355         * alpha.md (exception_receiver): New.
4356         * alpha/crtbegin.asm (.eh_frame): New beginning.
4357         (__do_frame_setup, __do_frame_takedown): New.
4358         * alpha/crtend.asm (.eh_frame): New ending.
4359         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
4360         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
4361         (ASM_FILE_START): Don't emit .file for dwarf2.
4362
4363         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
4364         * rtl.c (reg_note_name): Likewise.
4365         * rtl.texi (REG_NOTES): Likewise.
4366         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
4367         without an offset.
4368
4369 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
4370
4371         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
4372         * i386.md (movsf, movdf, movxf): Validate memory address returned
4373         from force_const_mem.  Kill useless REG_EQUAL setting code.
4374
4375 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
4376
4377         * m68k.md (zero_extendsidi2): Fix typo.
4378
4379 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
4380
4381         * configure.in: Removed references to the removed file
4382         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
4383         * arm*-*-netbsd* and ns32k-*-netbsd*.
4384         * config/i386/xm-netbsd.h: Removed unnecessary file.
4385         * config/m68k/xm-netbsd.h: Likewise.
4386         * config/sparc/xm-netbsd.h: Likewise.
4387         * config/mips/xm-netbsd.h: Likewise.
4388
4389 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
4390
4391         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
4392         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
4393
4394         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
4395         for exact section attributions.
4396
4397         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
4398         runtime.
4399         * i386/crtdll.h (CPP_PREDEFINES): Define.
4400
4401 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
4402
4403         * m68k.md (5200 movqi): Do not allow byte sized memory references
4404         using address regs.
4405         * m68k.c (output_move_qimode): Do not use byte sized operations on
4406         address registers.
4407
4408         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
4409         explicit rules for building.  Similarly for alloca, vfprintf,
4410         choose-temp and mkstemp, getopt, getopt1, and obstack.
4411         (INCLUDES): Add $(srcdir)/../include.
4412         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
4413         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
4414
4415 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
4416
4417         * gcc.c (do_spec_1): [case 'o'] Account for
4418         lang_specific_extra_outfiles.
4419         (main): Correctly clear all slots in outfiles for
4420         lang_specific_extra_outfiles.  Set input_file_number before
4421         calling lang_specific_pre_link.
4422
4423 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
4424
4425         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
4426
4427 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4428
4429         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
4430         cases, use xword.
4431         (sparc_output_deferred_case_vectors): If no work to do, return.
4432         Fix thinko in Sept 1 change.
4433
4434 1998-09-03  SL Baur  <steve@altair.xemacs.org>
4435
4436         * Makefile.in: add semicolon in BISON definition for portability.
4437
4438 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
4439
4440         * config/nextstep.c (handle_pragma): Correct name of third
4441         argument.
4442
4443 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
4444
4445         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
4446         * config/m32r/m32r.h: Make register 17 be fixed.
4447         * config/m32r/m32r.c: Use SImode for cc operations.
4448
4449 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
4450
4451         * invoke.texi (Warning Options): Add -Wnon-template-friend
4452         documentation.
4453
4454 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
4455
4456         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
4457
4458 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4459
4460         * rs6000.md (movsf): Disable explicit secondary-reload-like
4461         functionality if TARGET_POWERPC64.
4462         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
4463         functionality.
4464
4465 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
4466
4467         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
4468         and term.h from fixinc.wrap.
4469
4470 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4471
4472         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
4473         safe to include both string.h and strings.h together.
4474         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
4475         which headers to search for function declarations.  Continue to
4476         prefer string.h over strings.h when both are not acceptable.
4477
4478         * acconfig.h (STRING_WITH_STRINGS): Add stub.
4479
4480         * configure.in: Call GCC_HEADER_STRING.
4481
4482         * system.h: Test STRING_WITH_STRINGS when deciding which headers
4483         to include.  Continue to prefer string.h over strings.h when both
4484         are not acceptable.
4485
4486 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4487
4488         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
4489         not assume top 32-bits of symbolic addresses are zero if
4490         flag_pic.
4491
4492 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
4493
4494         * ginclude/va-alpha.h: Protect entire second portion of the
4495         file against double inclusion.
4496
4497 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
4498
4499         Added support for the Boehm's garbage collector.
4500         * configure.in: Handle --enable-objc-gc.
4501         * configure: Rebuilt.
4502         * Makefile.in (CHECK_TARGETS): Add check-objc.
4503         (check-objc): New rule.
4504         * objc/Make-lang.in: Build a different Objective-C library that
4505         runs with the Boehm's collector.
4506         * objc/encoding.c (objc_round_acc_size_for_types): New function.
4507         * objc/encoding.c: Correctly compute the size of compound types in
4508         the presence of bitfields. Skip the variable name of the type if
4509         any. Added support for long long.
4510         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
4511         (_F_GCINVISIBLE): New mask.
4512         * objc/gc.c: New file. Compute the type memory mask associated with
4513         a class based on the runtime information.
4514         * objc/misc.c: Added the hooks that use the Boehm's collector
4515         allocation functions.
4516         * objc/objc-act.c (build_class_template): Generate a new class
4517         member (gc_object_type) to hold the class' type memory mask.
4518         (build_shared_structure_initializer): Initialize the new member to
4519         NULL.
4520         (encode_complete_bitfield): New function. Generate the new
4521         encoding.
4522         (encode_field_decl): Generate the new encoding only for the GNU
4523         runtime.
4524         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
4525         long long types.
4526         (class_get_gc_object_type): New function to mark a pointer instance
4527         variable as a weak pointer.
4528         * objc/objc-features.texi: New file.
4529         * objc/objc.h (gc_object_type): New class member.
4530         * objc/objects.c (class_create_instance): Create a typed memory
4531         object when compiled with Boehm's collector support.
4532         * objc/sendmsg.c (__objc_init_install_dtable): Call
4533         __objc_send_initialize instead of setting the initialize flag.
4534         (__objc_send_initialize): Call __objc_generate_gc_type_description
4535         to generate the class type memory mask. Rewrite the code that
4536         sends the +initialize so that it is called only once (bug report
4537         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
4538         * testsuite/objc: New testsuite for Objective-C type encoding.
4539         * testsuite/lib/objc-torture.exp: New file.
4540         * testsuite/lib/objc.exp: New file.
4541
4542 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
4543
4544         * jump.c (jump_optimize): In if/then/else transformations, add
4545         another call to modified_between_p for the jump insn.
4546
4547 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
4548
4549         * fix-header.c (symlink): Treat like readlink.
4550
4551 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4552
4553         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
4554         as FT_float.
4555
4556 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
4557
4558         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
4559         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
4560         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
4561         
4562         * config/nextstep.c (handle_pragma): Take three arguments, as per
4563         the new HANDLE_PRAGMA macro specification.
4564         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
4565         per the new HANDLE_PRAGMA macro specification.
4566         * config/i960/i960.c (process_pragma): Take three arguments, as
4567         per the new HANDLE_PRAGMA macro specification.
4568
4569 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
4570
4571         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
4572         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
4573         if unknown pragmas are encountered.
4574         (handle_sysv_pragma): Interpret return code from
4575         handle_pragma_token ().  Return success/failure indication rather
4576         than next unprocessed character. 
4577         (pragma_getc): New function: retrieves characters from the
4578         input stream.  Defined when HANDLE_PRAGMA is enabled.
4579         (pragma_ungetc): New function: replaces characters back into the
4580         input stream.  Defined when HANDLE_PRAGMA is enabled.
4581         
4582         * c-pragma.c (handle_pragma_token): Return success/failure status
4583         of the parse.
4584         
4585         * c-pragma.h: Change prototype of handle_pragma_token().
4586
4587         * varasm.c: (handle_pragma_weak): Only create this function if
4588         HANDLE_PRAGMA_WEAK is defined.
4589
4590         * c-common,c (decl_attributes): If defined call the expression
4591         contained within the INSERT_ATTRIBUTES macro before adding
4592         attributes to a decl.
4593
4594         * tm.texi (HANDLE_PRAGMA): Document the new verion of
4595         HANDLE_PRAGMA, which takes three arguments.
4596         (INSERT_ATTRIBUTES): Document this new macro.  
4597
4598         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
4599         new INSERT_ATTRIBUTES macro.
4600
4601 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4602
4603         * config/sparc/sparc.md (movdf): Only generate special RTL for
4604         LABEL_REFs when PIC.
4605         (move_label_di): Remove
4606         (movdi_pic_label_ref, movdi_high_pic_label_ref,
4607         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
4608         references when PIC.
4609         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
4610         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
4611         output an .xword for all 64-bit cases.
4612         
4613 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4614
4615         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
4616         alignment, use FUNCTION_BOUNDARY instead.
4617         (sparc_output_deferred_case_vectors): Likewise.
4618
4619 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4620
4621         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
4622         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
4623
4624 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
4625
4626         * alpha/va_list.h: New file.
4627         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
4628
4629 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
4630
4631         * NEWS: Add SCO Openserver and Unixware 7 notes.
4632
4633         * NEWS: Fix typos.
4634
4635 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
4636
4637         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
4638         (record_constant_1): Handle RANGE_EXPR.
4639
4640 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
4641
4642         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
4643         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
4644         and NOTE_INSN_RANGE_END specially.
4645         (reemit_notes): Likewise.
4646
4647 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4648
4649         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
4650         (ultrasparc_sched_init): Remove unneeded &.
4651
4652 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4653
4654         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
4655         for m68020-60, to prevent the use of fintrz.
4656
4657 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
4658
4659         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
4660         even in stage1. 
4661         * Makefile.in: Likewise.
4662         * configure: Regenerated.
4663
4664 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
4665
4666         * configure.in (gxx_include_dir): Changed to
4667         '${prefix}/include/g++'-${libstdcxx_interface}.
4668         * configure: Rebuilt.
4669
4670 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
4671
4672         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
4673         consistent.
4674         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
4675         *sequences* *below* which scalar moves will be used.
4676
4677 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
4678
4679         * collect2.c (mktemp): Delete unused declaration.
4680
4681         * config/xm-netbsd.h: Remove unnecessary file.
4682         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
4683         file anymore, it is not needed.
4684
4685 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
4686
4687         * convert.c (convert_to_integer): Issue an error on conversions to
4688         incomplete types.
4689
4690 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
4691
4692         * Makefile.in: Add lang_tree_files and gencheck.h.
4693         * configure.in: Generate them.
4694         * gencheck.c: Include gencheck.h.
4695
4696 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4697
4698         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
4699         movdi_lo_sum_pic and movdi_high_pic and make visible.
4700         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
4701         emit these when Pmode is not SImode.
4702         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
4703
4704 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
4705
4706         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
4707         .linkonce directive after the first time.
4708
4709 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
4710
4711         * m68k.md (beq0_di): Generate correct (and more efficient) code when
4712         the clobbered operand overlaps with an input.
4713         (bne0_di): Similarly.
4714
4715         * Makefile.in (INSTALL): Remove "--no-header" argument.
4716
4717         * NEWS: Various updates.
4718
4719 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4720
4721         * config/sparc/sparc.c (arith_operand, const64_operand,
4722         const64_high_operand, arith_double_4096_operand): Mark mode as
4723         unused.
4724         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
4725         callers changed.
4726         (sparc_emit_set_const64): Remove unused variable i.
4727         (sparc_splitdi_legitimate): Likewise for addr_part.
4728         (ultra_code_from_mask): Likewise for mask.
4729         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
4730         reverse return values so it matches usage and comments.
4731         (ultra_flush_pipeline): Likewise.
4732         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
4733         this_type, and allow loads and stores of differing FP modes as
4734         they do not create a conflict.
4735         (ultra_find_type): Initialize fpmode to SFmode, fix
4736         parenthesization thinkos in large conditional.
4737         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
4738         Init free_slot_mask after ultra_cur_hist is reset, not before.
4739         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
4740         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
4741         use ultra_flush_pipeline instead, then re-init group pointer.
4742         Fix statement with no effect.  If no progress made in, and no
4743         instructions scheduled at all, advance to new pipeline cycle else
4744         we get into an endless loop.
4745         (ultrasparc_adjust_cost): Remove previous arg.
4746         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
4747         
4748 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
4749
4750         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
4751         code.  Use reg_overlap_mentioned_p to detect when source and
4752         destination overlap.
4753         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
4754
4755 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
4756
4757         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
4758         COMPARISON_VAL, into invariant_p.
4759
4760 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4761
4762         * regmove.c (regclass_compatible_p): New function.
4763         (regmove_optimize): Use it.
4764
4765         Use NREGS parameter insted of calling max_reg_num.
4766
4767         (fixup_match_1): Don't use code = MINUS when later tieing with
4768         a hard register is likely.
4769
4770 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4771
4772         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
4773         COMPARISON_VAL was normalized.
4774
4775 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
4776
4777         * loop.c (check_dbra_loop): The loop ending comparison value
4778         must be an invariant or we can not reverse the loop.
4779
4780         * loop.c (scan_loop): Count down from max_reg_num - 1 to
4781         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
4782         of the loop.
4783         (load_mems_and_recount_loop_regs_set): Likewise.
4784
4785         * i386.c (print_operand): Remove obsolete 'c' docs.
4786
4787 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
4788
4789         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
4790         * frame.c (init_object_mutex): New function.
4791         (init_object_mutex_once): Likewise.
4792         (find_fde): Call it.
4793         (__register_frame_info): Likewise.
4794         (__register_frame_info_table): Likewise.
4795         (__deregister_frame_info): Likewise.
4796
4797 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
4798
4799         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
4800
4801 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4802
4803         * loop.c (check_dbra_loop): Enable code for reversal
4804         of some loops without a known constant loop end.
4805
4806 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
4807
4808         * haifa-sched.c (last_clock_var): New.
4809         (schedule_block): Initialize it.
4810         (schedule_insn): Use it to fill insn modes with issue information.
4811
4812         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
4813         Tag trapb and next insn with TImode.
4814         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
4815         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
4816         Invoke alphaev5_align_insns as appropriate.
4817         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
4818         (MD_SCHED_VARIABLE_ISSUE): New.
4819         * alpha.md (attr type): Add multi.
4820         (define_asm_attributes): New.
4821         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
4822         (arg_home): Likewise.
4823         (fnop, unop, realign): New.
4824
4825 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
4826
4827         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
4828         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
4829
4830         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
4831         (rs6000-ibm-aix4.[12]*): Likewise.
4832         * configure: Regnerate.
4833
4834 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
4835
4836         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
4837         already contains the return address.
4838
4839 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
4840
4841         * calls.c (expand_call): Use bitfield instructions to extract/deposit
4842         word sized hunks when loading unaligned args into registers.
4843
4844         * haifa-sched.c (sched_analyze_insn): Only create scheduling
4845         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
4846
4847         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
4848
4849 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4850
4851         * loop.c (check_dbra_loop): Add some code that would allow reversal
4852         of some loops without a known constant loop end if it were enabled.
4853
4854 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
4855
4856         * mips.md (lshrsi3_internal2+2): Fix type-o.
4857
4858 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4859
4860         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
4861         correctly with regards to stdio.h.
4862         
4863         * calls.c: Remove stdarg.h/varargs.h.
4864         * cccp.c: Likewise.
4865         * cexp.y: Likewise.
4866         * combine.c: Likewise.
4867         * cpperror.c: Likewise.
4868         * cpplib.c: Likewise.
4869         * cpplib.h: Likewise.
4870         * doprint.c: Likewise.
4871         * emit-rtl.c: Likewise.
4872         * final.c: Likewise.
4873         * fix-header.c: Likewise.
4874         * gcc.c: Likewise.
4875         * genattr.c: Likewise.
4876         * genattrtab.c: Likewise.
4877         * gencodes.c: Likewise.
4878         * genconfig.c: Likewise.
4879         * genemit.c: Likewise.
4880         * genextract.c: Likewise.
4881         * genflags.c: Likewise.
4882         * genopinit.c: Likewise.
4883         * genoutput.c: Likewise.
4884         * genpeep.c: Likewise.
4885         * genrecog.c: Likewise.
4886         * mips-tfile.c: Likewise.
4887         * prefix.c: Likewise.
4888         * protoize.c: Likewise.
4889         * regmove.c: Likewise.
4890         * toplev.c: Likewise.
4891         * tree.c: Likewise.
4892
4893 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
4894
4895         * config/sparc/sparc.c (sparc_override_options): If not
4896         TARGET_FPU, turn off TARGET_VIS.
4897         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
4898         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
4899         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
4900         (movdi_insn_sp64): Add VIS fzero alternative.
4901         (clear_sf, clear_df): New VIS patterns.
4902         (movsf, movdf expanders): Allow fp_zero_operand flat out when
4903         TARGET_VIS.
4904         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
4905         
4906 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
4907
4908         * loop.c (n_times_set, n_times_used, may_not_optimize,
4909         reg_single_usage): Convert to varrays.  All uses changed.
4910         (insert_loop_mem): Return a value.
4911         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
4912         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
4913         necessary.
4914
4915 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
4916
4917         * From Alexandre:
4918         * configure.in: Do not set thread_file to "irix" since no such
4919         support exists yet.
4920
4921         * sparc.md (float abs/neg splits): Check reload_completed before
4922         calling alter_subreg.
4923
4924 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4925
4926         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
4927         function.
4928         * config/sparc/sparc.h: Declare it.
4929         * config/sparc/sparc.md (float abs/neg splits): Use it.
4930         (all other splits): Handle SUBREGs properly where necessary.
4931         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
4932
4933 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
4934
4935         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
4936         an insn on the unfilled_slots_list that has no delay slots.
4937         (fill_eager_delay_slots): Similarly.
4938
4939 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
4940
4941         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
4942         as an ordinary operand.
4943
4944 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
4945
4946         * tree.c (valid_machine_attribute): Don't apply attributes to both
4947         decl and type.
4948
4949 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
4950
4951         * reload.c (operands_match_p): Handle rtvecs.
4952
4953         * i386.c (legitimate_pic_address_disp_p): New.
4954         (legitimate_address_p): Use it.
4955         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
4956         Handle constant pool symbols just like statics.
4957         (emit_pic_move): Use Pmode not SImode for clarity.
4958         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
4959         [UNSPEC]: New, handling what we killed above.
4960         [PLUS]: Detect and abort on invalid symbol arithmetic.
4961         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
4962
4963 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
4964
4965         * alias.c: Include output.h.
4966         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
4967         different if we're in a varargs function.
4968         * Makefile.in (alias.o): Depend on output.h
4969         
4970 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4971
4972         * sh.h (GIV_SORT_CRITERION): Delete.
4973
4974 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
4975
4976         * regclass.c (regclass): Use xmalloc/free instead of alloca.
4977         * stupid.c (stupid_life_analysis): Ditto.
4978         * reload1.c (reload): Ditto.
4979
4980 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
4981
4982         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
4983         arith_double_4096_operand, arith_double_add_operand): New
4984         predicates.
4985         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
4986         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
4987         them to transform add/sub 4096 into add/sub -4096.
4988
4989 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4990
4991         * loop.c (scan_loop): Allocate some slop to handle pseudos
4992         generated by move_movables.
4993         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
4994         here too.
4995
4996 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
4997
4998         * tree.def (DECL_RESULT): Correct documentation.
4999
5000 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5001
5002         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
5003         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
5004         conflicts will all RELOAD_FOR_OUTPUT reloads.
5005
5006         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
5007         loads the function result, substitute with a USE.
5008
5009 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5010
5011         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
5012         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
5013         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
5014         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
5015         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
5016         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
5017         operand. 
5018         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
5019         'o' to 'm' for GPR variant constraints.
5020
5021 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
5022
5023         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
5024
5025         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
5026
5027         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
5028         when the source and destination overlap.
5029
5030         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
5031         clash with global type.
5032
5033 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
5034
5035         * fixinc.irix: Add curses.h handling from fixinc.wrap.
5036
5037         * c-common.c (combine_strings): Also set TREE_READONLY.
5038         Change warn_write_strings to flag_const_strings.
5039         * c-decl.c, c-tree.h: Likewise.
5040
5041 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5042
5043         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
5044         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
5045         sequence, use SET/IOR instead so CSE can see it.
5046         * config/sparc/sparc.md (movhi_const64_special,
5047         movsi_const64_special): New patterns necessitated by that change.
5048         (movhi_high): Remove.
5049         (movhi_lo_sum): Change to match an IOR.
5050         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
5051         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
5052         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
5053         (movdf splits): Allow when not V9 or when not ARCH64 and integer
5054         registers are involved.
5055         (snesi_zero_extend split): Remove reload_completed test.
5056         (unnamed plus and minus zero_extend sidi splits): Add it.
5057
5058 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
5059
5060         * extend.texi: Remove description of extension to explicit
5061         instantiation that is now endorsed by standard C++.
5062
5063 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5064
5065         * config/arc/arc.c (arc_initialize_pic): Remove.
5066         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
5067         nothing on any platform and is invoked by no-one, it does not even
5068         appear in the documentation.
5069         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
5070         * config/sparc/sparc.c (initialize_pic): Likewise.
5071         (find_addr_reg): Remove this as well, no longer referenced after
5072         my rewrite.
5073
5074 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
5075
5076         * recog.c (validate_replace_rtx_group): New function.
5077         * recog.h (validate_replace_rtx_group): Declare it.
5078         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
5079         the entire group of substitutions.
5080
5081 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
5082
5083         * loop.c (load_mems): Fix initializers.
5084
5085 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5086
5087         * config/sparc/sparc.md (TFmode splits): Handle destination
5088         registers being referenced in the address correctly.
5089
5090         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
5091         TREE_UNSIGNED, when bitsize of type's mode is larger than
5092         HOST_BITS_PER_WIDE_INT.
5093
5094 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
5095
5096         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
5097         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
5098         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
5099         macros.
5100         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
5101         EXIT_BLOCK_EXPR.
5102
5103 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
5104
5105         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
5106         * h8300.h (TINY_DATA_NAME_P): Likewise.
5107         (STRIP_NAME_ENCODING): Handle '&'.
5108
5109         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
5110         register (it could be accessed via an outer SUBREG).
5111         (REG_OK_FOR_BASE_P): Likewwise.
5112         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
5113
5114         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
5115         bogus rtl.
5116
5117         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
5118
5119 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5120
5121         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
5122         must be offsettable so the splits can be made.
5123
5124 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
5125
5126         * config/i386/winnt.c: Include system.h, not stdio.h to get
5127         sys/param.h pulled in before rtl.h in case the system defines MIN
5128         and MAX.
5129
5130 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5131
5132         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
5133
5134 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
5135
5136         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
5137         arrays of bits.
5138         * cpplib.c (cpp_define): Handle macros with parameters.
5139
5140 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5141
5142         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
5143         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
5144         and DImode 64-bit.  Use llong for minimal-toc SFmode and
5145         SYMBOL_REF / LABEL_REF 64-bit.
5146         (output_function_profiler): Use llong for profiler label and ld to
5147         load 64-bit label address.
5148
5149 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
5150
5151         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
5152         OFFSET addressing.
5153
5154 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
5155
5156         * version.c: Bump for snapshot.
5157
5158 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
5159
5160         * version.c: Bump for snapshot.
5161
5162 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
5163
5164         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
5165
5166 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
5167
5168         * tm.texi (Misc): Fix typo "teh".
5169
5170         * tm.texi (PIC): Fix typo "PPIC".
5171
5172         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
5173         effect when -O2 and higher.
5174         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
5175
5176 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
5177
5178         * regclass.c: Changed register set documentation to be consistent
5179         with GCC behaviour.
5180
5181         * final.c (final_start_function) Removed redundant test for
5182         call_fixed_regs.
5183
5184 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
5185
5186         * rtl.h (rtx_function): New type.
5187         (for_each_rtx): New function.
5188         * rtlanal.c (for_each_rtx): Define it.
5189         
5190         * recog.c (change_t): New type.
5191         (change_objects, change_old_codes, change_locs, change_olds):
5192         Replace with ...
5193         (changes): New variable.
5194         (validate_change): Dynamically allocate room for more changes, if
5195         necessary.  Uses changes array instead of change_objects, etc.
5196         (apply_change_group):  Use changes array instead of
5197         change_objects, etc.
5198         
5199         * loop.c (loop_mem_info): New type.
5200         (loop_mems): New variable.
5201         (loop_mems_idx): Likewise.
5202         (looop_mems_allocated): Likewise.
5203         (scan_loop): Remove nregs parameter.
5204         (next_insn_in_loop): New function.
5205         (load_mems_and_recount_loop_regs_set): Likewise.
5206         (load_mems): Likewise.
5207         (insert_loop_mem): Likewise.
5208         (replace_loop_mem): Likewise.
5209         (replace_label): Likewise.
5210         (INSN_IN_RANGE_P): New macro.
5211         (loop_optimize): Don't pass max_reg_num() to scan_loop.
5212         (scan_loop): Remove nregs parameter, compute it after any new
5213         registers are created by load_mems.  Use INSN_IN_RANGE_P and
5214         next_insn_in_loop rather than expanding them inline.  Call
5215         load_mems to load memory into pseudos, if appropriate.
5216         (prescan_loop): Figure out whether or not there are jumps from the
5217         loop to targets other than the label immediately following the
5218         loop.  Call insert_loop_mem to notice all the MEMs used in the
5219         loop, if it could be safe to pull MEMs into REGs for the duration
5220         of the loop.
5221         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
5222
5223 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
5224
5225         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
5226
5227 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5228
5229         * config/sparc/sparc.c (finalize_pic): Check for the correct
5230         nonlocal_goto_receiver UNSPEC number.
5231         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
5232         making note of this dependency existing in sparc.c
5233         (negtf2_notv9 split): Give NEG SFmode.
5234         (negsf2): Fix insn output string.
5235         
5236 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
5237
5238         * c-common.c (decl_attributes): Issue an error if the argument
5239         to alias is not a string.
5240
5241 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
5242
5243         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
5244         pending memory flush list.
5245
5246         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
5247         notes.
5248         (try_combine): Allow combining insns with REG_LIBCALL notes.
5249
5250         * expr.c (emit_block_move): Do not call memcpy as a libcall
5251         instead build up a CALL_EXPR and call it like any other
5252         function.
5253         (clear_storage): Similarly for memset.
5254
5255         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
5256         on notes.
5257
5258         * Makefile.in (cplus-dem.o): Provide explicit rules for building
5259         cplus-dem.o
5260
5261         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
5262         and REG_LIVE_LENGTH as successful substitutions are made.
5263
5264 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5265
5266         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
5267         statement after end of loop label.
5268
5269 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5270
5271         * config/sparc/sparc.c (ultra_types_avail): New variable.
5272         (ultra_build_types_avail): New function to record mask of insn
5273         types in ready list at this cycle.
5274         (ultrasparc_sched_reorder): Call it.
5275         (ultra_find_type): Use it to quicken the search.  Also simplif
5276         dependency check, don't use rtx_equal_p because we know exactly
5277         what we are looking for.
5278
5279 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
5280
5281         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
5282         for architecture v4.
5283
5284 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5285
5286         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
5287         gen_compare_reg.
5288         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
5289         movdf_const_intreg and helper splits): New patterns to move float
5290         constants into integer registers.
5291         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
5292         splits.
5293
5294 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
5295
5296         * From Graham
5297         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
5298         to itype.
5299         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
5300
5301         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
5302         a BASE_REGS register is needed as an intermediate when copying
5303         a symbolic value into any register class other than BASE_REGS.
5304
5305         * expr.c (move_by_pieces): No longer static.  Remove prototype.
5306         * rtl.h (move_by_pieces): Add extern prototype.
5307         * mips.c (expand_block_move): Handle aligned straight line copy by
5308         calling move_by_pieces.
5309
5310         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
5311         and VAR_DECLs.
5312
5313 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
5314
5315         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
5316         jumps out of the loop to be treated as part of the exit test.
5317
5318 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5319                           Jeff Law <law@cygnus.com>
5320
5321         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
5322         * cplus-dem.c: Delete.
5323
5324         * Makefile.in (fold-const.o): depend on $(RTL_H).
5325
5326         * fold-const.c: Include rtl.h to get the prototype for
5327         `set_identifier_local_value'.
5328
5329         * loop.c (express_from_1): Remove unused variable `tmp'.
5330         (combine_givs): cast the first argument of bzero to char *.
5331
5332         * toplev.c (display_help): Remove unused variable `looking_for_start'.
5333
5334         * c-decl.c (init_decl_processing): Remove unneeded &.
5335
5336         * alpha.h (alpha_initialize_trampoline): Provide prototype.
5337         
5338         * except.c (set_exception_lang_code, set_exception_version_code):
5339         Change parameter from `short' to `int' to avoid using a gcc
5340         extension.
5341
5342         * except.h (set_exception_lang_code, set_exception_version_code):
5343         Likewise for prototypes.
5344
5345         * flow.c (count_reg_references): Remove unused variables `regno'
5346         and `i'.
5347
5348         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
5349
5350         * prefix.c (translate_name): Cast the result of `alloca'.
5351
5352         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
5353
5354 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5355
5356         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
5357         Include "toplev.h".
5358         (valid_dbcc_comparison_p): Mark mode argument as unused.
5359         (symbolic_operand): Likewise.
5360         (legitimize_pic_address): Likewise.
5361         (const_uint32_operand): Likewise.
5362         (const_sint32_operand): Likewise.
5363         * sched.c [!INSN_SCHEDULING]: Define only dummy function
5364         schedule_insns and comment out rest of file.
5365
5366         * m68k.c (output_move_simode_const): Use subl to move a zero into an
5367         address register.
5368         (output_move_[hq]imode): Likewise.
5369
5370 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
5371
5372         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
5373         * invoke.texi: Corresponding changes.
5374
5375 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
5376
5377         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
5378
5379 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5380
5381         * config/sparc/sparc.c (ultra_code_from_mask,
5382         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
5383         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
5384         ultrasparc_sched_init, ultrasparc_variable_issue,
5385         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
5386         functions to describe UltraSPARC pipeline exactly to Haifa.
5387         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
5388         as there is nothing the scheduler can do about it.  Indicate that
5389         REG_DEP_OUTPUT's collide.  Fixup formatting.
5390         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
5391         divide costs on Ultra for DImode.
5392         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
5393         Define.
5394         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
5395         ieuN and add call_no_delay_slot to type list.
5396         (cti function unit): New unit for branches on UltraSPARC.
5397         (subx/addx insns): Set type to misc.
5398         (sidi zero/sign extension insns on arch64): Set type to shift.
5399         (sign_extendhidi2_insn): Set type to sload.
5400
5401 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5402
5403         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
5404         (output_epilog): Use if != 0 for offset.
5405         (rs6000_fatal_bad_address): Prepare for Intl.
5406         * rs6000.h (rs6000_fatal_bad_address): Declare.
5407         * rs6000.md (movsfcc, movdfcc): Use else if.
5408         (elf_high): Use {liu|lis}.
5409         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
5410         (movsi): Use rs6000_fatal_bad_address.
5411         
5412 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
5413
5414         * reload.c (find_equiv_reg): Reject equivalences separated
5415         by a volatile instruction.
5416
5417 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5418
5419         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
5420
5421 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
5422
5423         * alpha.md (movsicc): Fix mode mismatch.
5424
5425 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
5426
5427         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
5428         return type.
5429         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
5430
5431 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5432
5433         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
5434         write-only modifier from operand 1 constraint.
5435
5436 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5437
5438         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
5439         emitting a XOR of -1 at the end, emit a NOT instead for combine's
5440         sake.
5441         (sparc_emit_set_const64): Likewise, also when computing trailing
5442         bits do not negate low_bits and make fast_int an int.
5443
5444 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
5445
5446         * loop.c (add_label_notes): Do not ignore references to labels
5447         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
5448         * gcse.c (add_label_notes): Similarly.
5449
5450         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
5451
5452         * m68k.md (adddi_dilshr32): One of the operands must be a register.
5453         (adddi_dishl32): Similarly.
5454
5455 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
5456
5457         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
5458         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
5459         * cse.c (cse_basic_block): Add parens to shut up warnings.
5460
5461 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5462
5463         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
5464         sparc_emit_set_const64_longway, const64_is_2insns,
5465         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
5466         in 64-bit constant formation.
5467         * config/sparc/sparc.md (snesi_zero_extend split): Generate
5468         rtl for addx not subx.
5469         (define_insn movdi_const64_special): Make available even when
5470         HOST_BITS_PER_WIDE_INT is not 64.
5471         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
5472         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
5473         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
5474         instances of operand 1 inside a QI subreg.
5475         (xordi3_sp64_dbl): Remove '%' constraint for op1.
5476         (one_cmpldi2_sp64): Fix output string.
5477         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
5478         alternative case.
5479         (unnamed arch64 ashift DI): Truncate shift count if greater than
5480         63, not 31.
5481
5482 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5483
5484         * expr.c (store_expr): Don't optimize away load-store pair
5485         when either source or destination have a side effect.
5486
5487 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
5488
5489         * genrecog.c (add_to_sequence): Fatal error if the modes of the
5490         operands of SET are incompatible.
5491
5492         * alpha.md: Fix max and min patterns so modes of SET operands match.
5493
5494 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
5495
5496         * configure.in: Avoid [[ by using test and changequote.
5497         * configure: Rebuild.
5498
5499 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5500
5501         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
5502
5503         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
5504         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
5505         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
5506         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
5507         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
5508         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
5509         Fix mismatching modes in SET operands.
5510         (conditional move patterns): Fix formatting.
5511         (unnamed subx arch64 pattern): Remove duplicate insn.
5512         
5513 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5514
5515         * config/sparc/sparc.c (const64_operand, const64_high_operand):
5516         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
5517         (input_operand): Fixup test for what we accept for constant
5518         integers.
5519         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
5520         set VOIDmode.
5521         (safe_constDI): Remove.
5522         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
5523         gen_safe_XOR64): New functions.
5524         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
5525         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
5526         them.
5527         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
5528         available when HOST_BITS_PER_WIDE_INT is not 64.
5529         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
5530         move before movdi_insn_sp64 pattern.
5531         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
5532         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
5533         symbolic_operand as predicate for second operand.
5534         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
5535         expander): Give set VOIDmode.
5536         
5537 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
5538
5539         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
5540
5541 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
5542
5543         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
5544
5545 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
5546
5547         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
5548         point.
5549         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
5550
5551 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
5552
5553         * install.texi: Various SCO OpenServer tweaks.
5554
5555 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
5556
5557         * reload1.c (eliminate_regs_in_insn): Handle another case when
5558         eliminating the frame pointer to the hard frame pointer.  Add
5559         missing ep->to_rtx check to one existing case.
5560
5561         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
5562
5563 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
5564
5565         * tree.h: De-conditionalize init_priority code.
5566
5567         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
5568         * collect2.c (NM_FLAGS): Change from -p to -n.
5569
5570         * configure.in: Turn on collect2 for mipstx39-elf.
5571         Handle use_collect2=no properly.
5572
5573         * c-common.c: De-conditionalize init_priority code.
5574         * collect2.c (extract_init_priority, sort_ids): New fns.
5575         (main): Call sort_ids.
5576         Move sequence_number to file scope.
5577
5578         * configure.in: Handle --enable-init-priority.
5579         * c-common.c (attrs): Add A_INIT_PRIORITY.
5580         (init_attributes, decl_attributes): Likewise.
5581         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
5582         * tree.c (get_file_function_name_long): Split out...
5583         (get_file_function_name): ...from here.
5584
5585 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
5586
5587         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
5588         accessing nodes.
5589
5590 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
5591
5592         * toplev.c (display_help): Add braces to shut up warnings.
5593         * tree.c (simple_cst_equal): Likewise.
5594
5595         * fold-const.c (non_lvalue): Don't deal with null pointer 
5596         constants here.
5597         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
5598
5599         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
5600         of any size to a pointer.
5601
5602 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
5603
5604         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
5605
5606 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
5607
5608         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
5609         which will be saved.
5610         * mn10300.md (prologue insn): Only save registers which need saving.
5611         (epilogue insn): Similarly.
5612
5613         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
5614         optimizations.
5615
5616 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
5617
5618         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
5619         VAR_DECL's in gp addressable sections.
5620
5621 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
5622
5623         * sparc.c: Change return <exp> to <exp>; return; in functions
5624         returning void.
5625         * sparc.md: Add empty semicolon statement after final label in
5626         move expanders.
5627
5628 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5629
5630         * config/sparc/sparc.md (define_insn addx_extend): Rename to
5631         addx_extend_sp64, only allow when TARGET_ARCH64.
5632         (define_insn addx_extend_sp32 and split): Version that works when
5633         not TARGET_ARCH64.
5634         (define_insn subx_extend): Likewise.
5635         (define_split adddi3 and subdi3 with zero extension): Fixup and
5636         correct bugs when not TARGET_ARCH64.
5637
5638 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
5639
5640         * except.c (set_exception_lang_code, set_exception_version_code):
5641         Use prototype-style definition if __STDC__, to match declaration
5642         in except.h.
5643
5644         * genemit.c: Change FAIL and DONE macros not to use loops.
5645
5646 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
5647
5648         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
5649         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
5650
5651         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
5652
5653 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
5654
5655         * README.g77: Update from Craig.
5656
5657 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5658
5659         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
5660         type HOST_WIDE_INT.
5661         (safe_constDI sparc_emit_set_const64_quick1,
5662         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
5663         analyze_64bit_constant, const64_is_2insns,
5664         create_simple_focus_bits): Fix some bugs when compiled on real
5665         64-bit hosts.
5666         (function_arg_record_value_3, function_arg_record_value_2,
5667         function_arg_record_value): Add fully prototyped forward decls.
5668         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
5669         to cmpsi_insn and use on both 64 and 32 bit targets.
5670         (define_insn cmpsi_insn_sp64): Remove.
5671         (define_expand zero_extendsidi2): Allow for 32-bit target too.
5672         (define_insn zero_extendsidi2_insn): Rename to
5673         zero_extendsidi2_insn_sp64.
5674         (define_insn zero_extendsidi2_insn_sp32): New pattern and
5675         assosciated forced split for it.
5676
5677         * config/sparc/sparc.c (const64_operand, const64_high_operand):
5678         New predicates.
5679         * config/sparc/sparc.h: Declare them.
5680         (PREDICATE_CODES): Add them.
5681         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
5682         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
5683
5684 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
5685
5686         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
5687         in v9 case as the latter makes the Solaris assembler crash.
5688
5689 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5690
5691         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
5692         for TFmode when !v9.  We require offsettable memory addresses.
5693         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
5694         DFmode register number conversions.
5695         * config/sparc/sparc.md (define_split DFmode moves): If register
5696         is a SUBREG do alter_subreg on it before using.
5697         (define_expand movtf): Fixup comment about alignment on v9.
5698         (define_split TFmode moves): Don't use gen_{high,low}part, create
5699         explicit SUBREGs instead.
5700
5701 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
5702
5703         * Makefile.in (mbchar.o): Depend on mbchar.c.
5704
5705 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5706                           Richard Henderson  <rth@cygnus.com>
5707         
5708         Rewrite Sparc backend for better code generation and
5709         improved sparc64 support.
5710         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
5711         zero.
5712         * config/sparc/sysv4.h: Likewise.
5713         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
5714         move_operand, v8plus_regcmp_op, emit_move_sequence,
5715         singlemove_string, doublemove_string, mem_aligned_8,
5716         output_move_double, output_move_quad, output_fp_move_double,
5717         move_quad_direction, output_fp_move_quad, output_scc_insn):
5718         Remove.
5719         (small_int_or_double): New predicate.
5720         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
5721         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
5722         old pic_{sethi,lo_sum}_si patterns.
5723         (mem_min_alignment): New generic function to replace
5724         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
5725         available and can test for arbitrary alignments.  All callers
5726         changed.
5727         (save_regs, restore_regs, build_big_number,
5728         output_function_prologue, output_cbranch, output_return,
5729         sparc_flat_save_restore, sparc_flat_output_function_prologue,
5730         sparc_flat_output_function_epilogue): Prettify
5731         insn output.
5732         (output_function_epilogue): Likewise and add code to output
5733         deferred case vectors.
5734         (output_v9branch): Likewise, add new arg INSN and use it to tack
5735         on branch prediction settings.  All callers changed.
5736         (print_operand): Likewise and output %l44 for LO_SUMs when
5737         TARGET_CM_MEDMID.
5738         (sparc_splitdi_legitimate): New function to make sure DImode
5739         splits can be run properly when !arch64.
5740         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
5741         Reformat example code in comments.
5742         (set_extends): Remove UNSPEC/v8plus_clear_high case.
5743         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
5744         of deferred case vectors we need to output.
5745         (sparc_defer_case_vector): Record a case vector.
5746         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
5747         sparc_output_deferred_case_vectors): New functions to output them.
5748         (sparc_emit_set_const32): New function to form 32-bit constants in
5749         registers when that requires more than one instruction.
5750         (safe_constDI, sparc_emit_set_const64_quick1,
5751         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
5752         analyze_64bit_constant, const64_is_2insns,
5753         create_simple_focus_bits, sparc_emit_set_const64): New functions
5754         which do the same for 64-bit constants when arch64.
5755         (sparc_emit_set_symbolic_const64): New function to emit address
5756         loading for all code models on v9.
5757         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
5758         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
5759         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
5760         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
5761         inaccuracies in comments, add symbolic and text_segment operands
5762         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
5763         GENERAL_REGS in these cases as a temp REG is needed to load these
5764         addresses into a register properly.
5765         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
5766         is no longer used.
5767         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
5768         quads are guarenteed to have 16-byte alignment.
5769         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
5770         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
5771         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
5772         deferred case vector implementation.
5773         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
5774         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
5775         Generate "internal label - label" instead of "label - 1b".
5776         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
5777         (PREDICATE_CODES): Remove sparc_operand, move_operand,
5778         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
5779         zero_operand.
5780         (doublemove_string, output_block_move, output_fp_move_double,
5781         output_fp_move_quad, output_move_double, output_move_quad,
5782         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
5783         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
5784         (sparc_emit_set_const32, sparc_emit_set_const64,
5785         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
5786         mem_min_alignment, small_int_or_double): Add externs.
5787         * config/sparc/sparc.md: Document the many uses of UNSPEC and
5788         UNSPEC_VOLATILE in this backend.
5789         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
5790         unary to types which execute in it.
5791         (define_function_unit ieu_shift): Rename to ieu0.
5792         (define_function_unit ieu1): New, executes compare, call, and
5793         uncond_branch type insns.
5794         (define_function_units for type fdivs, fdivd, fsqrt): These
5795         execute in the fpu multiply unit not the adder on UltraSparc.
5796         (define_expand cmpdi): Disallow TARGET_V8PLUS.
5797         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
5798         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
5799         allows the arith_double_operand predicate and rHI constraint when
5800         TARGET_ARCH64.
5801         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
5802         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
5803         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
5804         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
5805         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
5806         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
5807         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
5808         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
5809         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
5810         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
5811         sign_extendqihi2_insn, sign_extendqisi2_insn,
5812         sign_extendqidi2_insn, sign_extendhidi2_insn,
5813         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
5814         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
5815         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
5816         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
5817         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
5818         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
5819         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
5820         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
5821         smulsi3_highpart_v8plus, unnamed subreg mult,
5822         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
5823         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
5824         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
5825         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
5826         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
5827         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
5828         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
5829         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
5830         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
5831         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
5832         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
5833         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
5834         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
5835         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
5836         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
5837         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
5838         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
5839         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
5840         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
5841         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
5842         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
5843         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
5844         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
5845         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
5846         call_address_untyped_struct_value_sp32,
5847         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
5848         call_value_symbolic_sp32, call_value_address_sp64,
5849         call_value_symbolic_sp64, branch_sp32, branch_sp64,
5850         flush_register_windows, goto_handler_and_restore,
5851         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
5852         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
5853         return_addsi, return_di, return_adddi, return_sf, all call+jump
5854         peepholes, trap, unnamed trap insns): Prettify output strings.
5855         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
5856         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
5857         Likewise and force + implement splits for integer cases.
5858         (define_insn return_sf_no_fpu): Likewise and allow to match when
5859         no-fpu because of our subreg SFmode splits.
5860         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
5861         zero_extendqidi2_insn, zero_extendhidi2_insn,
5862         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
5863         input_operand for second operand.
5864         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
5865         reg_or_0_operand for operand 2 so new splits can use it.
5866         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
5867         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
5868         too.
5869         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
5870         CONST_DOUBLEs for operand 2.
5871         (define_insn move_label_di): Likewise and label distance
5872         optimization because it no longer works with new deferred case
5873         vector scheme.  To be revisited.
5874         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
5875         and allow reg_or_0_operand and J constraint for second operand.
5876         (define_insn jump): Set branch predict taken on V9.
5877         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
5878         new deferred case vector scheme.
5879         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
5880         (define_insn negdi2_sp32): Force + implement splits.
5881         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
5882         one_cmplsi2_not_liveg0 respectively, and create expander of original
5883         names which emit special rtl for TARGET_LIVE_G0.
5884         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
5885         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
5886         gen_compare_reg, FAIL instead.
5887         (define_insn sgtu, sleu): Likewise and check gen_s*() return
5888         values when trying to reverse condition codes, if they FAIL then
5889         do likewise.
5890         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
5891         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
5892         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
5893         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
5894         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
5895         set output string to # to indicate they are mandatory splits.
5896         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
5897         pic_sethi_di, move_pic_label_si): Remove.
5898         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
5899         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
5900         place.
5901         (define_expand movsi_pic_label_ref, define_insn
5902         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
5903         expander and insns to handle PIC label references and deferred
5904         case vectors.
5905         (define_insn get_pc_via_rdpc): Comment out as it is no longer
5906         used.
5907         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
5908         Rewrite to not use emit_move_sequence, make use of new constant
5909         formation code, and new splits for all multi-insn cases.
5910         (define_insn movqi_insn): Remove sethi case, it can never happen.
5911         Use reg_or_zero_operand instead of const0_rtx explicit test,
5912         use input_operand instead of move_operand for source, and use
5913         general_operand now for dest.
5914         (define_insn movhi_insn): Similar but leave sethi case.
5915         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
5916         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
5917         movhi_lo_sum respectively, prettify output string.
5918         (define_insn movsi_zero_liveg0): New pattern to put zero into a
5919         register when needed on TARGET_LIVE_G0.
5920         (define_insn movsi_insn): Use general_operand and input_operand
5921         for dest and src respectively.  Simplify applicability test.
5922         Prettify output strings, and add clr alternative for J
5923         constraint.
5924         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
5925         deprecated std and reg-reg DI moves): Remove and...
5926         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
5927         implementation which uses forced splits for all non-single insn
5928         cases.
5929         (define_split DI move cases on !arch64): New splits to handle all
5930         situations of 64-bit double register DImode on 32bit, and
5931         unaligned registers and memory addresses for all subtargets.
5932         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
5933         Remove.
5934         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
5935         input_operand for dest and src respectively, prettify output
5936         strings.
5937         (define_insn movdf_insn, movdf_no_e_insn, store_df,
5938         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
5939         and...
5940         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
5941         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
5942         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
5943         movtf_no_e_insn_sp64) Replace with new
5944         implementation which uses forced splits for all non-single insn
5945         cases.
5946         (define_split DF move cases): New splits in similar vein to DI
5947         move counterparts.
5948         (define_insn sethi_di_medlow, sethi_di_medium_pic,
5949         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
5950         movdi_sp64_insn): Remove old v9 code model and constant loading
5951         support insns and..
5952         (define_insn pic_lo_sum_di, pic_sethi_di,
5953         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
5954         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
5955         embmedany_sethi, embmedany_losum, embmedany_brsum,
5956         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
5957         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
5958         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
5959         scheme, using unspecs, secondary reloads, and one to one sparc
5960         insn to rtl insn mapping for better scheduling and code gen.
5961         (define_expand reload_indi, reload_outdi): Reload helpers for
5962         MEDANY and EMBMEDANY symbol address loading cases which require a
5963         temporary register.
5964         (define_expand movsicc): Remove v8plus_regcmp cases.
5965         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
5966         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
5967         cmp_diqi_trunc_set): New patterns used by some of the new scc
5968         splits on arch64.
5969         (define_insn xordi3_sp64_dbl): New pattern used for constant
5970         formation when crossing from 32-bit targets.
5971         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
5972         split): Remove.
5973         (define_insn addx, subx): Make visible and prettify.
5974         (define_insn adddi3_insn_sp32): Likewise and force split.
5975         (define_insn addx_extend, subx_extend, unnamed): New patterns for
5976         64bit scc split usage.
5977         (define_insn unnamed plusDI zero_extend, unnamed minusDI
5978         zero_extend, subdi3): Force and implement splits.
5979         
5980         * final.c (final_scan_insn): Don't output labels if target
5981         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
5982         instead.
5983         
5984         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
5985         don't forget to walk inside SEQUENCESs too as these are what the
5986         delay slot scheduler will create.
5987         
5988 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
5989
5990         * alpha.md (extxl+1,+2): New patterns to work around
5991         combine lossage.
5992
5993 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
5994
5995         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
5996         caused bad assembly code to be generated.
5997
5998 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
5999
6000         * netbsd.h: Fix typo.
6001
6002 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
6003
6004         * config.sub: Fix typo.
6005
6006 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
6007
6008         * invoke.texi (Environment Variables): Typo: Change "ascpects"
6009         into "aspects".
6010         (Running Protoize): Typo: Change "ther" into "other".
6011
6012 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
6013
6014         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
6015         * m68k/netbsd.h: Likewise.
6016         * ns32k/netbsd.h: Likewise.
6017         * sparc/netbsd.h: Likewise.
6018
6019 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
6020
6021         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
6022         * ginclude/va-clipper.h (va_list): Likewise.
6023
6024 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
6025
6026         * rs6000.c (rs6000_override_options): If big endian and -Os, use
6027         load/store multiple instructions unless user overrides.
6028
6029 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
6030
6031         * ns32k/netbsd.h: Fix typo.
6032
6033 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
6034
6035         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
6036         labels with .debugsym if no parallel insns.
6037
6038 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
6039
6040         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
6041         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
6042
6043 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6044
6045         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
6046         (AR_FOR_TARGET): Define.
6047
6048 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
6049
6050         * dyn-string.h: New file.
6051         * dyn-string.c: Likewise.
6052         * Makefile.in (OBJS): Add dyn-string.o.
6053         (dwarf2out.o): Add dyn-string.h dependency.
6054         (dyn-string.o): List dependencies.
6055         * dwarf2out.c: Include dyn-string.h.
6056         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
6057         (addr_const_to_string): Take a dyn_string_t, not a char* as a
6058         prototype.  Use dyn_string_append rather than strcat, throughout.
6059         (addr_to_string): Use dyn_string_t.
6060
6061 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
6062
6063         Function entry/exit profiling instrumentation:
6064         * expr.h (profile_function_entry_libfunc,
6065         profile_function_exit_libfunc): Declare new variables.
6066         * optabs.c: Define them here.
6067         (init_optabs): Initialize them.
6068         * tree.h (struct tree_decl): New flag
6069         no_instrument_function_entry_exit.
6070         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
6071         * c-decl.c (duplicate_decls): Merge it.
6072         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
6073         (init_attributes): Use it for "no_instrument_function".
6074         (decl_attributes): Handle it, for functions that have not yet been
6075         compiled.  Set decl flag.
6076         * flags.h (flag_instrument_function_entry_exit): Declare new
6077         variable.
6078         * toplev.c (flag_instrument_function_entry_exit): Define it here.
6079         (f_options): New option "instrument-functions".
6080         * function.h (struct function): New field instrument_entry_exit.
6081         * function.c (current_function_instrument_entry_exit): New
6082         variable.
6083         (push_function_context_to, pop_function_context_from): Save and
6084         restore.
6085         (expand_function_start): Set current_ variable, maybe emit return
6086         label and entry profile call.
6087         (expand_function_end): Maybe emit exit profile call.
6088
6089 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
6090
6091         * i386.md (movqi): When optimizing a load of (const_int 1) into a
6092         NON_QI_REG_P, pretend the register is SImode.
6093
6094 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
6095
6096         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
6097         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
6098         manufacturer id for ns32k.
6099         * configure: Regenerated.
6100         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
6101         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
6102         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
6103         * config/m68k/netbsd.h: Same.
6104         * config/ns32k/netbsd.h: Same.
6105         * config/sparc/netbsd.h: Same.
6106
6107 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
6108
6109         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
6110         or UNROLL_COMPLETELY loop that starts with a jump to its
6111         exit code.
6112
6113 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6114
6115         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
6116         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
6117         (print_operand, case 'B'): Don't fall through.
6118         (print_operand, case 'S'): Correct mask begin/end computation.
6119         Use HOST_BITS_PER_WIDE_INT.
6120         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
6121         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
6122         * rs6000/aix41.h (CPP_PREDEFINES): Same.
6123         * rs6000/aix43.h (CPP_PREDEFINES): Same.
6124
6125 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
6126
6127         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
6128         constraint from second alternative.
6129
6130 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
6131
6132         * configure.in: Fix --without/--disable cases for local-prefix, 
6133         gxx-include-dir and checking.
6134
6135 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6136
6137         * configure.in (enable_haifa): Set by default for sparc64 too.
6138         configure: Rebuilt.
6139
6140 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
6141
6142         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
6143         * i386/winnt.c (associated_type): New fn.
6144         (i386_pe_valid_type_attribute_p): New fn.
6145         (i386_pe_check_vtable_importexport): Remove.
6146         (i386_pe_dllexport_p): Use associated_type.
6147         (i386_pe_dllimport_p): Likewise.
6148
6149         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
6150         * i386.c (i386_valid_type_attribute_p): Also accept
6151         attributes for METHOD_TYPEs.
6152
6153 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
6154
6155         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
6156
6157 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
6158
6159         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
6160
6161         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
6162         them from generating a new base name for each occurence of
6163         a specific suffix.
6164
6165 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
6166
6167         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
6168         SUBREG, MEM.
6169         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
6170
6171
6172
6173         * cplus-dem.c (type_kind_t): New type.
6174         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
6175         on this paramter, rather than demangling the type again.
6176         (demangle_integral_value): Pass tk_integral.
6177         (demangle_template_: Pass the value returned from do_type.
6178         (do_type): Return a type_kind_t.  Pass tk_integral to
6179         demangle_template_value_parm for array bounds.
6180         (demangle_fund_type): Likewise.
6181         
6182 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
6183
6184         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
6185         identical.
6186
6187 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
6188
6189         * pa.c (move_operand): Accept CONSTANT_P_RTX.
6190
6191 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
6192
6193         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
6194
6195         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
6196         index conversion.
6197
6198 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
6199
6200         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
6201         (DEBUGGER_ARG_OFFSET): Likewise.
6202
6203         * mn10300.md (movsf): Remove last change.  Not needed.
6204
6205 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
6206
6207         * c-lex.c (yylex): Fix boundary conditions in character literal and
6208         string literal loops.
6209
6210 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
6211
6212         * longlong.h (count_leading_zeros): Sparclite scan instruction was
6213         being invoked incorrectly.
6214
6215         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
6216         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
6217         Add -pg support. 
6218         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
6219         * configure.in: Added i[34567]86-*-win32
6220         * config.sub: Ditto.
6221         * configure: Rebuilt.
6222         
6223 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
6224
6225         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
6226         the frame pointer and compiling PIC code and reload has not completed.
6227
6228         * i386.c (output_to_reg): Add code to emulate non-popping DImode
6229         case.
6230
6231 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
6232
6233         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
6234
6235 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6236
6237         * Makefile.in (install-info): Only try to update the info
6238         directory file if it exists in the first place.
6239
6240 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
6241
6242         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
6243
6244 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
6245
6246         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
6247         CONST_DOUBLE source.
6248
6249 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
6250
6251         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
6252         strings as the insertion of USER_LABEL_PREFIX.
6253         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
6254         valid code.
6255         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
6256         calls. 
6257
6258 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
6259
6260         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
6261         already defined type.
6262
6263 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
6264
6265         * expr.c (check_max_integer_computation_mode): Allow conversions
6266         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
6267         (expand_expr): Likewise.
6268
6269 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
6270
6271         * expr.c (expand_expr): Expand RETURN_EXPR.
6272
6273 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
6274
6275         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
6276
6277 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
6278
6279         * dwarf2out.c (output_aranges):  Call stripattributes
6280         for TEXT_SECTION references.
6281         (output_line_info): Likewise.
6282
6283 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6284
6285         * profile.c (branch_prob): Call allocate_reg_info after outputting
6286         profile rtl in instrument_arcs.
6287
6288 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
6289
6290         * fixinc.irix (math.h): Install wrapper instead of copying.
6291
6292 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
6293
6294         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
6295         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
6296         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
6297         lang_flag_0. Added documentation in the flag table.
6298
6299 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
6300
6301         * cccp.c (do_include): Fix vax c style include handling.
6302
6303 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
6304
6305         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
6306
6307 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
6308
6309         * fold-const.c (non_lvalue): Don't deal with null pointer 
6310         constants here.
6311         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
6312
6313 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6314
6315         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
6316         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
6317         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
6318         (u_short_cint_operand): Same.
6319         (reg_or_cint_operand): Same.
6320         (logical_operand): Same.
6321         (input_operand): Same.
6322         (reg_or_short_operand): Use u_short_cint_operand.
6323
6324 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
6325
6326         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
6327         but keep the insns and splits.  Adjust so when the ultimate destination
6328         is memory, use cvtql.
6329
6330 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
6331
6332         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
6333
6334 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
6335
6336         * gcc.c (do_spec): Call "error" not "warning".
6337
6338         * configure.in: Fix minor problems with gas feature detection code.
6339         * configure: Rebuilt.
6340
6341         * gcc.c (do_spec): Issue a warning for '%[]' usage.
6342
6343         * Undo this change.
6344         * gcc.c: Delete %[spec] support.
6345         (do_spec_1, case '('): Likewise.
6346         (do_spec_1, case '['): Call error.
6347
6348 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
6349
6350         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
6351         (CPP_SUBTARGET_SPEC): Default to empty string.
6352         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
6353         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
6354         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
6355         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
6356         (LIB_SPEC): Tidy.
6357         * alpha/linux.h (CPP_PREDEFINES): Tidy.
6358         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
6359         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
6360         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
6361         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
6362         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
6363         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
6364         * alpha/vxworks.h: Likewise.
6365
6366 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
6367
6368         * mips.md (reload_outsi): Added missing REGNO call.
6369         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
6370         function pointer.
6371         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
6372         another match_operator and compare the codes.
6373
6374         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
6375
6376         * MIPS multiply pattern fixes:
6377         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
6378         Add union classes for HI, LO, or HILO plus general registers.
6379         (GENERATE_MADD): Deleted.
6380         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
6381         Add TARGET_MAD to condition.
6382         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
6383         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
6384         "*d" for accumulator, to give preference to LO initially but not
6385         during reload.
6386
6387 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
6388
6389         * configure.in (enable_c_mbchar): New configure option.
6390         (extra_cpp_objs): Always available now.
6391
6392         * cexp.y (mbchar.h): #include it.
6393         (yylex): Handle Multibyte characters in character literals.
6394
6395         * cccp.c (mbchar.h): #include it.
6396         (main): Set character set based on LANG environment variable.
6397         (rescan): Handle multibyte characters in comments.
6398         (skip_if_group): See above.
6399         (validate_else): See above.
6400         (skip_to_end_of_comment): See above.
6401         (macarg1): See above.
6402         (discard_comments): See above.
6403         (rescan): Handle multibyte characters in string and character literals.
6404         (collect_expansion): See above.
6405         (skip_quoted_string): See above.
6406         (macroexpand): See above.
6407         (macarg1): See above.
6408         (discard_comments): See above.
6409         (change_newlines): See above.
6410
6411         * c-lex.c (mbchar.h): #include it.
6412         (GET_ENVIRONMENT): New macro.
6413         (init_lex): Set character set based on LANG environment variable.
6414         (yylex): Handle multibyte characters in character literals.
6415         (yylex): Handle multibyte characters in string literals.
6416
6417         * Makefile.in (mbchar.o): New target.
6418         (cccp$(exeext)): @extra_cpp_objs@ is always available.
6419         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
6420
6421         * mbchar.[ch]: New files for multibyte character handling.
6422
6423 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6424
6425         * jump.c (jump_optimize): When simplifying noop moves and
6426         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
6427         the PUSHes to rewrite in second loop as we did in the first.
6428
6429 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6430
6431         * cplus-dem.c (demangle_nested_args): Make function definition
6432         static to match the prototype.
6433
6434 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
6435
6436         * alloca.c: Respect USE_C_ALLOCA.
6437         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
6438         * gengenrtl.c (xmalloc): Likewise.
6439
6440 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
6441
6442         * loop.h (struct induction): Add no_const_addval.
6443         * loop.c (the_movables, reg_address_cost): New variables.
6444         (init_loop): Init reg_address_cost.
6445         (loop_optimize): Call end_alias_analysis.
6446         (scan_loop): Init the_movables.
6447         (record_giv): Init induction->no_const_addval.
6448         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
6449         [REG]: Rearrange loop search test to catch more cases.
6450         (general_induction_var): Return success not benefit; take an extra
6451         argument for that.  Change all callers.
6452         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
6453         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
6454         [default]: Search the_movables for additional combinations.
6455         (sge_plus_constant, sge_plus): New functions.
6456         (express_from_1): New function.
6457         (express_from): Always define.  Rewrite using express_from_1.
6458         (combine_givs_p): Handle more cases.  Ignore address cost.
6459         (cmp_combine_givs_stats): New function.
6460         (combine_givs_used_once, combine_givs_benefit_from): New functions.
6461         (combine_givs): Rewrite to do best-fit combination.
6462
6463         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
6464         (fold): Do a complete (A*C)+(B*C) association check.
6465
6466 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
6467
6468         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
6469
6470 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
6471
6472         * mn10300.c (MODES_TIEABLE_P): Fix typo.
6473
6474 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
6475
6476         * tree.c (valid_machine_attribute): Only create a new type variant if
6477         there is a decl to use it.
6478
6479 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
6480
6481         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
6482         a suffix.
6483
6484 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
6485
6486         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
6487         be deleted" 
6488
6489 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
6490
6491         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
6492         Simplify tests for clearing an address register.
6493         (expand_prologue): Corresponding changes.
6494
6495         * mn10300.md (movXX patterns): Make sure the destination is an
6496         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
6497         (logical patterns): Split into expanders + patterns
6498         (zero and sign extension patterns): Similarly.
6499         (shift patterns): Similarly.
6500
6501 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
6502
6503         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
6504         for the sequence, recording base values.
6505
6506 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
6507
6508         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
6509
6510 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
6511
6512         * gcc.c: Remove ANSI-C ism from --help code.
6513
6514         * toplev.c: Support --help with USE_CPPLIB.
6515
6516 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
6517
6518         * configure.in: Rework gas feature code to work with symlink based
6519         source trees.
6520
6521         * extend.texi: Clarify some issues related to local variables
6522         assigned to explicit registers.
6523
6524         * mn10300.md (mulsi): Turn into expander + pattern.
6525
6526         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
6527         alternative.
6528
6529 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
6530
6531         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
6532
6533 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
6534
6535         * version.c: Bump again to distinguish mainline tree from the
6536         egcs-1.1 branch.
6537
6538 See ChangeLog.0 for earlier changes.
6539
6540 Local Variables:
6541 add-log-time-format: current-time-string
6542 End: