OSDN Git Service

* mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Tue Jan 12 10:23:24 1999  Stan Cox  <scox@cygnus.com>
2
3         * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
4
5 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
6
7         * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
8         ensure all prototypes necessary for building libio will be available.
9         * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
10         definitions here as they are not host specific.
11         * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
12
13 Tue Jan 12 02:53:46 1999  Richard Henderson  <rth@cygnus.com>
14
15         * cse.c (cse_insn): Never prefer (const (constant_p_rtx)).
16
17 Tue Jan 12 02:36:10 PST 1999 Jeff Law  (law@cygnus.com)
18
19         * version.c: Bump for snapshot.
20
21 Tue Jan 12 01:30:19 1999  Richard Henderson  <rth@cygnus.com>
22
23         * rtl.c (rtx_alloc): Use memset instead of inline loop.
24
25         * recog.h (recog_op_alt): Declare extern.
26
27 Tue Jan 12 00:23:31 1999  Richard Henderson  <rth@cygnus.com>
28
29         * function.c (purge_addressof_1): If the note accesses a mem+addressof
30         in a wider mode than any replacement, adjust the cached replacement.
31         Cache trivial substitutions as well.
32
33 Tue Jan 12 00:06:00 1999  Richard Henderson  <rth@cygnus.com>
34
35         * Makefile.in (OBJECTS): Add sbitmap.o.
36         (BASIC_BLOCK_H): Add sbitmap.h.
37         * basic-block.h: Move simple bitmap code to sbitmap.h.
38         * flow.c: Move simple bitmap code to sbitmap.c
39         * sbitmap.h, sbitmap.c: New files.
40
41 Mon Jan 11 23:51:50 1999  Richard Henderson  <rth@cygnus.com>
42
43         * alpha.h (TARGET_SWITCHES): Document switches.
44         (TARGET_OPTIONS): Likewise.
45
46         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC.
47
48 Mon Jan 11 22:54:14 1999  Richard Henderson  <rth@cygnus.com>
49
50         * tree.c (new_alias_set): Return zero if !flag_strict_aliasing.
51
52 Mon Jan 11 22:36:01 1999  Richard Henderson  <rth@cygnus.com>
53
54         * basic-block.h (basic_block_head): Rename to x_basic_block_head.
55         (basic_block_end): Rename to x_basic_block_end.
56         (BLOCK_HEAD, BLOCK_END): Update.
57
58         * caller-save.c: Change basic_block_head/end references to 
59         BLOCK_HEAD/END.
60         * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
61         * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
62         * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
63
64 Sat Jan  9 23:54:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
65
66         * gcc.c (xstrerror): Renamed from my_strerror.  All callers
67         changed.  Remove prototype since we get that from libiberty.h.
68
69         * protoize.c (xstrerror): Likewise.
70
71 Sat Jan  9 23:22:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
72
73         * gcc.c (read_specs): Ensure format specifiers match their arguments.
74
75 Sat Jan  9 20:04:24 1999  Richard Henderson  <rth@cygnus.com>
76
77         * tree.c (copy_node): Oops.  That would be copy not zero
78         in that last change.
79
80 Sun Jan 10 15:35:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
81
82         * config/c4x/c4x.c: Include system.h.
83         (c4x_caller_save_map): Disable caller save for RC.
84         (c4x_optimization_options): Disable scheduling before reload.
85         (valid_parallel_load_store) : Define return type as int.  
86         Remove unused variable regs.
87         * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
88         class.
89         * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
90         handle rotations.
91         (*db, decrement_and_branch_until_zero): Fix up constraints
92         to keep reload happy.
93
94 Sat Jan  9 18:35:29 1999  Richard Henderson  <rth@cygnus.com>
95
96         * tree.c (make_node): Call bzero instead of inline clear.
97         (copy_node, make_tree_vec, build1): Likewise.
98         (get_identifier): Call strlen instead of inline count.
99         (maybe_get_identifier): Likewise.
100
101 Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
102
103         * config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
104         operations in 3rd annulled delay slot.
105         (*lshrqi3_const_set): Disallow c constraint for operand0.
106         (modhi3+1, modhi3+2): Set attribute type to multi.
107         * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of 
108         != operator.
109
110 Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
111
112         * gansidecl.h: Allow attribute unused on labels only when we are
113         version 2.93 or higher.  Not all versions of 2.92 have this feature.
114
115         * version.c: Bump minor number to 93.
116
117 Fri Jan  8 10:51:13 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
118
119         * config/m68k/m68k.h: Declare output_function_epilogue.
120         * recog.h: Declare next_insn_tests_no_inequality.
121
122 Fri Jan  8 01:43:53 1999  Jeffrey A Law  (law@cygnus.com)
123
124         * stmt.c (optimize_tail_recursion): New function, extracted from ...
125         (expand_return): Use optimize_tail_recursion.
126         * tree.h (optimize_tail_recursion): Declare.
127
128         * toplev.c (compile_file): Move call to output_func_start_profiler
129         to after the loop to emit deferred functions.
130
131 Thu Jan  7 19:52:53 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
132
133         * system.h (abort): Supply more detailed information on how to
134         report an Internal Compiler Error.
135
136 Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
137
138         * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
139         allocate memory that will live beyond this function.
140         (expand_call): Free it here.
141
142 Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
143
144         * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for 
145         integer data not destined for fp regs.
146         (LEGITIMIZE_RELOAD_ADDRESS): New.
147
148 Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
149                           Richard Henderson  <rth@cygnus.com>
150
151         Support for Hypersparc and Sparclite86x:
152         * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
153         (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
154         (ASM_CPU32_DEFAULT_SPEC): Likewise.
155         (TARGET_CPU_DEFAULT): Likewise.
156         (enum processor_type): Likewise.
157         (CPP_ENDIAN_SPEC): Handle little endian data.
158         (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
159         (ADJUST_COST): Call sparc_adjust_cost.
160         * sparc.c (sparc_override_options): Fix up for the new targets.
161         (supersparc_adjust_cost): Make static.
162         (hypersparc_adjust_cost): New.
163         (ultrasparc_adjust_cost): Make static.
164         (sparc_adjust_cost): New.
165         * sparc.md (attr cpu): Add hypersparc and sparclite86x.
166         (function_unit): Add hypersparc scheduling rules.
167
168         * configure.in (with_cpu handler): Recognize hypersparc.
169
170 Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
171
172         * config/c4x/c4x.c: Added space after negation operator.
173         * config/c4x/c4x.h: Likewise.
174         * config/c4x/c4x.md: Likewise.
175
176 Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
177
178         * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
179
180 Thu Jan  7 00:29:25 199  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
181
182         * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
183         when a test can't be performed due to limited width of
184         HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
185         Fix UDIV case for cases where the first operand has the highest bit
186         set.
187
188 Thu Jan  7 00:01:38 1999  Lutz Vieweg <lkv@mania.robin.de>
189
190         * pa.h (reg_class): Add FPUPPER_REGS.
191         (REG_CLASS_NAMES): Similarly.
192         (REG_CLASS_CONTENTS): Similarly
193         (REGNO_REG_CLASS): Handle FPUPPER_REGS.
194         (FP_REG_CLASS_P): Likewise.
195         (REG_CLASS_FROM_LETTER): Similarly.
196         (CLASS_MAX_NREGS): Similarly.
197
198 1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
199
200         * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
201         for a typedef of bool.  Make sure to have a copy of the file is
202         in place before we look to fix it.  Fix typo in variable name to
203         FILE.
204
205 Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
206
207         * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
208         value_mode for the return mode.
209
210 Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
211
212         * configure.in: New flag --with-dwarf2.   If set, enables DWARF-2
213         debugging as default.
214
215         * config/tm-dwarf2.h: New file.
216
217 Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
218
219         * h8300.h (ASM_OUTPUT_LABELREF): Define.
220
221         * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
222         * local-alloc.c (update_equiv_regs): Corresponding changes.
223         * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
224
225         * calls.c (special_function_p): Push alloca test inside the large
226         conditional which excludes functions not at file scope or not
227         extern.  
228
229         * calls.c (special_function_p): New function broken out of
230         expand_call.
231         (precompute_register_parameters): Likewise.
232         (store_one_arg): Likewise.
233         (store_unaligned_argumetns_into_pseudos): Likewise.
234         (save_fixed_argument_area): Likewise.
235         (restore_fixed_argument_area): Likewise.
236         (expand_call): Corresponding changes.
237         
238 Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
239
240         * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
241         handling.
242         (const_sint32_operand): Likewise.
243
244 Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
245
246         * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
247         is a macro when deciding if we can use `jmp_buf' in prototypes.
248
249 Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
250
251         * config/c4x/c4x.md (addqi3): If the destination operand is
252         a hard register other than an extended precision register,
253         emit addqi3_noclobber.
254         (*addqi3_noclobber_reload): New pattern added so that reload
255         will recognise a store of a pseudo, equivalent to the sum
256         of the frame pointer and a constant, as an add insn.
257
258 Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net.
259
260         * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
261         * configure: Rebuilt.
262         * i386/xm-go32.h: Define LIBSTDCXX.
263         * i386/x-go32: New.
264         * i386/go32.h (MD_EXEC_PREFIX): Define.
265         (FILE_NAME_ABSOLUTE_P): Define.
266         (LINK_COMMAND_SPEC): Define.
267
268 Wed Jan  6 02:23:36 1999  "Charles M. Hannum" <root@ihack.net>
269
270         * expr.c (store_expr): If the lhs is a memory location pointed
271         to be a postincremented (or postdecremented) pointer, always
272         force the rhs to be evaluated into a pseudo.
273
274 Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
275
276         * real.c (mtherr): Print more reasonable warning messages.
277
278 Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
279
280         * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
281
282         * cccp.c: Include prefix.h, don't prototype prefix.c functions.
283         (new_include_prefix): Constify char* parameters.
284
285         * cppfiles.c (read_name_map): Likewise.
286         (append_include_chain): Likewise.  Also, use a writable char* copy
287         of parameter `dir' which we then modify, rather than using the
288         parameter itself to store the new writable string.
289         (remap_filename): Constify some variables.  Also, use a writable
290         char* to store an allocated string which we will be modifying.
291
292         * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
293         (cpp_start_read): Constify variable `str'.
294
295         * cpplib.h (append_include_chain): Constify a char* parameter.
296
297         * gcc.c Include prefix.h, don't prototype prefix.c functions.
298         (add_prefix, save_string): Constify char* parameters.
299         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
300
301         * prefix.c: Include prefix.h.
302         (get_key_value, translate_name, save_string, update_path,
303         set_std_prefix): Constify various char* parameters and variables.
304         (save_string): Use xmalloc, not malloc.
305         (translate_name): Use a writable temporary variable to create and
306         modify a string before setting it to a const char*.
307         
308         * prefix.h: New file to prototype functions exported from prefix.c.
309
310 Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
311
312         * cpplib.c (skip_if_group): Split out the logic that handles
313         directive recognition to its own function.  Don't use
314         parse markers; use a bare pointer into the buffer.  Use
315         copy/skip_rest_of_line instead of doing it by hand.  Remove
316         `return on any directive' mode which was never used, and take
317         only one argument.
318         (consider_directive_while_skipping): New function, subroutine
319         of skip_if_group.  Logic streamlined a bit.
320         (conditional_skip, do_elif, do_else): Call skip_if_group with
321         only one argument.
322
323 Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
324
325         * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
326         error.
327
328 Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
329
330         * extend.texi (Bound member functions): Document.
331
332 Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
333
334         * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
335         lang_to_string, type_to_string): Make return type const char*.
336         (print_symbol): Apply `const' keyword to a char*.
337         (print_file_desc): Cast structure member `crfd' to ulong when
338         comparing against one.
339
340         * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
341         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
342         (progname, input_name): Apply `const' keyword to a char*.
343         Don't redundantly include sys/stat.h.
344         (alloc_info): Apply `const' keyword to a char*.
345         (st_to_string, sc_to_string): Likewise.
346         (hash_string): Cast variable `hash_string' to a symint_t when
347         comparing against one.
348         (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
349         Likewise cast it to long when comparing against one.
350         (add_local_symbol): Apply `const' keyword to a char*.
351         (add_ext_symbol): Likewise.
352         (add_unknown_tag): Likewise.
353         (add_procedure): Cast a printf-style field width to an int.
354         (add_file): Cast PAGE_USIZE to long when comparing against one
355         (parse_begin): Cast a printf-style field width to an int.
356         (parse_bend): Likewise.
357         (parse_def): Likewise.
358         (parse_end): Likewise.
359         (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
360         (parse_stabs_common): Fix format specifier.
361         (parse_input): Change type of variable `i' to Size_t.
362         (write_object): Fix arguments to match format specifiers.
363         Cast variable `num_write' to long when comparing against one.
364         (read_seek): Cast variable `sys_read' to symint_t when comparing
365         against one.  Fix arguments to match format specifiers.  Cast
366         variable `size' to long when comparing against one.
367         (copy_object): Cast result of `sizeof' to int when comparing
368         against one.  Fix arguments to match format specifiers.  Cast
369         variable `ifd' to long when comparing against a signed value.
370         Likewise, likewise.
371         
372 Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
373
374         * c-common.c (decl_attributes): Allow applying attribute `unused'
375         on a LABEL_DECL.
376
377         * c-parse.in (label): Parse attributes after a label, and call
378         `decl_attributes' to handle them.
379
380         * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
381
382         * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
383         generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
384
385         * invoke.texi: Note that labels can be marked `unused'.
386
387 Sun Jan 3 23:32:18 PST 1999 Jeff Law  (law@cygnus.com)
388
389         * version.c: Bump for snapshot.
390
391 Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
392
393         * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
394         RTL for a compare/jump sequence.
395         
396 Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
397
398         * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
399         for a target with HAVE_cc0 defined.
400         (emit_cmp_and_jump_insns): New function.
401         * expr.h (emit_cmp_and_jump_insns): Prototype it.
402         * loop.c (check_dbra_loop): Use it to replace calls
403         to emit_cmp_insn and emit_jump_insn and to canonicalise
404         the comparison if necessary.
405         * unroll.c (unroll_loop): Likewise.
406
407 Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
408
409         * fixincludes (sys/utsname.h): Provide forward declaration of
410         struct utsname on Ultrix V4.[35].
411
412         * mips.md (div_trap): Use local labels instead of dot-relative
413         branches.
414
415 Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
416
417         * pa.md (branch, negated branch): Handle (const_int 0) as first
418         source operand.
419         * pa.c (output_cbranch): Likewise.
420
421 Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@mhpcc.edu>
422
423         * rs6000.c (rs6000_stack_info): Undo spurious part of last
424         change.
425
426 1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
427
428         * extend.texi (__builtin_constant_p): Add missing @smallexample.
429
430 Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
431
432         * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
433
434 Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
435
436         * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
437         (adddi_dishl32): Similarly.
438
439         * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
440         for each insn in the skipped block.
441
442         * reload1.c (reload_as_needed): Verify that the insn satisfies its
443         constraints after replacing a register address with an autoincrement
444         address for reload inheritance purposes.
445
446         * i386.md (doubleword shifts): Avoid namespace pollution.
447
448 Wed Dec 30 23:00:28 1998  David O'Brien <obrien@NUXI.com>
449
450         * configure.in (FreeBSD ELF): Needs special crt files.
451
452 Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
453
454         * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash.
455
456 1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
457
458         * loop.c (check_dbra_loop): While reversing the loop, if the
459         comparison value has a VOID mode use the mode of the other operand
460         to compute the mask.
461
462 Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
463
464         * rs6000.md ({save,restore}_stack_function): Take 2 operands to
465         avoid warnings in compiling explow.c.
466
467         (patch from Ken Raeburn, raeburn@cygnus.com)
468         * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
469         fpmem_offset.  Compute total size after that, and then
470         rs6000_fpmem_offset using both values.
471
472 Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
473
474         * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
475         the future; indeed that already happens in some cases.
476
477 Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
478
479         * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
480         (arith_operand): Remove constant_p_rtx handling.
481         (const64_operand, const64_high_operand): Likewise.
482         (arith11_operand, arith10_operand, arith_double_operand): Likewise.
483         (arith11_double_operand, arith10_double_operand, small_int): Likewise.
484         (small_int_or_double, uns_small_int, zero_operand): Likewise.
485         * sparc.h (PREDICATE_CODES): Likewise.
486
487         * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
488
489 Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>:
490
491         * rtl.def (CONSTANT_P_RTX): Clarify commentary.
492         * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
493         consider constant CONSTRUCTOR constant and to defer some cases
494         to cse.
495         * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
496         * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
497
498 Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
499
500         * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
501         * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
502
503         * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
504         (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
505         (sext_add_operand, and_operand, or_operand): Likewise.
506         (reg_or_cint_operand, some_operand, input_operand): Likewise.
507         * alpha.h (PREDICATE_CODES): Likewise.
508
509 Sat Dec 26 23:26:26 PST 1998 Jeff Law  (law@cygnus.com)
510
511         * version.c: Bump for snapshot.
512
513 Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
514
515         * gengenrtl.c (gencode): Always use bzero to clear memory instead
516         of dangerous casts and stores.
517
518         * Makefile.in (compare, gnucompare): Add missing else true clauses.
519
520 Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
521
522         * alpha.md (builtin_longjmp): Add missing "DONE".
523
524 Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
525
526         * gcc.c (execute): Enable -pipe with win32.
527
528 Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
529
530         * config/arm/t-arm-elf: Add multiplib option for leading
531         underscores.
532
533         * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
534         'user_label_prefix' rather than macro USER_LABEL_PREFIX.
535
536         (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
537         than variable 'reload_address_base_reg_class'.  [Note this
538         change is unrelated to the others in this patch].
539
540         * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
541         leading underscore.
542
543 Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
544
545         * alias.c (record_alias_subset): Remove ignored `&'.
546         (init_alias_once): Likewise.
547
548         * c-lex.c (UNGETC): Cast first argument of comma expression to void.
549
550         * config/mips/mips.c (mips_asm_file_end): Cast the result of
551         fwrite to `int' when comparing against one.
552
553         * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
554         (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
555
556         * cse.c (rehash_using_reg): Change type of variable `i' to
557         unsigned int.
558
559         * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
560         assigning it to one.
561
562         * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
563
564         * final.c (final_scan_insn): Likewise for variable `i'.
565         (output_asm_insn): Cast a char to unsigned char when used as an
566         array index.
567
568         * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
569         assigning it to one.
570
571         * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
572
573         * recog.c (preprocess_constraints): Cast a char to unsigned char
574         when used as an array index.
575
576         * regmove.c (find_matches): Likewise.
577
578         * reload1.c (calculate_needs): Add default case in switch.
579         (eliminate_regs_in_insn): Initialize variable `offset'.
580         (set_offsets_for_label): Change type of variable `i' to unsigned.
581         (reload_as_needed): Wrap variable `i' in macro check on
582         AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
583
584         * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
585         with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
586         when comparing against one.
587
588         * stor-layout.c (layout_decl): Cast maximum_field_alignment to
589         unsigned when comparing against one.  Likewise for
590         GET_MODE_ALIGNMENT().
591         (layout_record): Cast record_align to int when comparing against a
592         signed value. 
593         (layout_type): Cast TYPE_ALIGN() to int when comparing against a
594         signed value.
595
596         * tree.c (get_identifier): Cast variable `len' to unsigned when
597         comparing against one.
598         (maybe_get_identifier): Likewise
599
600 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
601
602         * toplev.c (rest_of_compilation): Do not set reload_completed.
603         * reload1.c (reload): Set reload_completed before calling
604         cleanup_subreg_operands.
605
606 Tue Dec 22 23:58:31 1998  Richard Henderson  <rth@cygnus.com>
607
608         * reload1.c (emit_reload_insns): Check `set' not null before use.
609
610 Tue Dec 22 15:15:45 1998  Nick Clifton  <nickc@cygnus.com>
611
612         * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
613         'int'. 
614
615 Tue Dec 22 13:55:44 1998  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
616
617         * halfpic.c (half_pic_encode): Delete redundant code.
618
619 Tue Dec 22 13:02:22 1998  Michael Meissner  <meissner@cygnus.com>
620
621         * toplev.c (main): Delete handling of -dM as a preprocessor
622         option.
623
624 Mon Dec 21 17:39:38 1998  Michael Meissner  <meissner@cygnus.com>
625
626         * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
627         -dI, which are handled by the preprocessor.
628
629 Sun Dec 20 16:13:44 1998  John F. Carr  <jfc@mit.edu>
630
631         * configure.in: Handle Digital UNIX 5.x the same as 4.x.
632         * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
633
634 Sun Dec 20 07:39:52 PST 1998 Jeff Law  (law@cygnus.com)
635
636         * version.c: Bump for snapshot.
637
638 Sat Dec 19 22:24:22 PST 1998 Jeff Law  (law@cygnus.com)
639
640         * version.c: Bump for snapshot.
641
642 Sat Dec 19 21:41:32 PST 1998 Jeff Law  (law@cygnus.com)
643
644         * version.c: Bump for snapshot.
645
646 Sat Dec 19 09:52:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
647
648         * genattr.c (fatal): Qualify a char* with the `const' keyword.
649         
650         * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
651         write_unit_name, write_eligible_delay, expand_units,
652         make_length_attrs, write_attr_case, find_attr,
653         make_internal_attr): Likewise.
654         * gencheck.c (tree_codes): Likewise.
655         * gencodes.c (fatal): Likewise.
656         * genconfig.c (fatal): Likewise.
657         * genemit.c (fatal): Likewise.
658         * genextract.c (fatal, walk_rtx, copystr): Likewise.
659         * genflags.c (fatal): Likewise.
660         * genopinit.c (fatal, optabs, gen_insn): Likewise.
661         * genoutput.c (fatal, error, predicates): Likewise.
662         * genpeep.c (fatal): Likewise.
663         * genrecog.c (fatal, decision, pred_table, add_to_sequence,
664         write_tree_1, write_tree, change_state, copystr, indents): Likewise.
665
666 Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
667
668         * configure.in (with-fast-fixincludes): Fix whitespace.
669         * configure: Rebuilt.
670
671         * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
672         asm() etc. function declarations in __DECC.
673
674 Thu Dec 17 13:57:23 1998  Nick Clifton  <nickc@cygnus.com>
675
676         * expr.c (emit_move_insn_1): Only emit a clobber if the target
677         is a pseudo register.
678
679 Thu Dec 17 13:50:29 1998  Nick Clifton  <nickc@cygnus.com>
680
681         * gcse.c: Include expr.h in order to get the prototype for
682         get_condition() which is used in delete_null_pointer_checks(). 
683
684 Thu Dec 17 15:58:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
685
686         * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
687
688 Thu Dec 17 12:31:12 1998  Jim Wilson  <wilson@cygnus.com>
689
690         * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
691         (ALL_CFLAGS): Delete SCHED_CFLAGS.
692
693 1998-12-17  Vladimir N. Makarov  <vmakarov@cygnus.com>
694
695         * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
696         ';').
697
698 1998-12-17  Michael Tiemann  <tiemann@axon.cygnus.com>
699
700         * i960.md (extend*, zero_extend*): Don't generate rtl that looks
701         like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
702         optimizations from the combiner.
703
704 Thu Dec 17 08:27:03 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
705
706         * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
707
708 Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
709
710         * toplev.c (main): Disable optimize_size if a specific
711         optimization level is requested.  Always set optimization
712         level to 2 if -Os is specified.
713
714 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
715
716         * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
717         cpplib.
718         * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
719         initialize it using fname.
720
721 1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
722
723         * cpplib.c (do_include): Treat #include_next in the
724         primary source file as #include plus warning.  Treat
725         #include_next in a file included by absolute path as an
726         error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.
727
728 Wed Dec 16 12:28:54 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
729
730         * cccp.c: Don't define MIN/MAX anymore.
731         * cpplib.c: Likewise.
732         * machmode.h: Likewise.
733         * system.h: Provide definitions for MIN/MAX.
734
735 Tue Dec 15 23:47:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
736
737         * fix-header.c: Don't define xstrdup here.
738
739 Wed Dec 16 05:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
740
741         * loop.c (consec_sets_giv): New argument last_consec_insn.
742         (strength_reduce): Provide / use it.
743
744 Wed Dec 16 17:24:07 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
745
746         * loop.h (loop_info): New field 'vtop'.
747         * loop.c (check_dbra_loop):  Use loop_info->vtop rather than
748         scanning loop for vtop.
749         * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
750         (loop_iterations): Use them to determine if loop has a constant
751         number of iterations.  Set loop_info->vtop.  Don't subtract
752         common reg term from initial_value and final_value if have a
753         do-while loop.
754
755 Tue Dec 15 13:49:55 1998  Jeffrey A Law  (law@cygnus.com)
756
757         * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
758
759         * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
760
761         * mn10200.md (abssf2, negsf2): New expanders.
762
763         * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
764
765 Tue Dec 15 11:55:30 1998  Nick Clifton  <nickc@cygnus.com>
766
767         * integrate.c (copy_rtx_and_substitute): If a SUBREG is
768         replaced by a CONCAT whoes components do not have the same
769         mode as the original SUBREG, use a new SUBREG to restore the
770         mode. 
771
772         * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
773         multiword complex values.
774
775 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
776
777         * cppalloc.c: Add xstrdup here.
778         * cpplib.h: Remove savestring prototype.
779         * cpplib.c: Remove savestring function. s/savestring/xstrdup/
780           throughout. 
781         * cppfiles.c: s/savestring/xstrdup/ throughout.
782
783 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
784
785         * cpplib.c: Make all directive handlers read their own
786           arguments.
787           (struct directive): Remove last two arguments from FUNC
788           member prototype. Remove `command_reads_line' member
789           entirely.
790           (directive_table): Remove initializations of
791           command_reads_line flag.  Pretty-print.
792           (eval_if_expression, do_define, do_line, do_include,
793           do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
794           do_else, do_elif, do_sccs, do_assert, do_unassert,
795           do_warning): Take only two args.
796
797           (cpp_define): Call do_define with two args and the text to
798           define stuffed into a buffer.
799           (make_assertion): Call do_assert with two args.
800           (handle_directive): Call do_line with two args. Call
801           kt->func with two args.  Remove command_reads_line
802           processing.
803           (do_define, do_undef, do_error, do_warning, do_pragma,
804           do_sccs): Read the rest of the line here.
805           (do_ident): Gobble rest of line, as cccp does.
806           (cpp_undef): New function.
807           (cpp_start_read): Call cpp_undef instead of do_undef.
808
809 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
810
811         * cpphash.h (union hash_value): Remove `keydef' member, add a
812           `struct hashnode *aschain' member for #assert.  
813
814           * cpplib.c (struct tokenlist_list, struct
815           assertion_hashnode): Delete structure definitions.
816           (assertion_install, assertion_lookup, delete_assertion,
817           check_assertion, compare_token_lists, reverse_token_list,
818           read_token_list, free_token_list): Delete functions.
819           (parse_assertion): New function.  
820           (cpp_cleanup): Don't destroy the assertion_hashtable.
821
822           (do_assert): Gut and rewrite.  #assert foo (bar) places
823           entries for `#foo' and `#foo(bar)' in the macro hash table,
824           type T_ASSERT.  The value union's `aschain' member is used
825           to chain all answers for a given predicate together.
826           (do_unassert): Also rewritten.  Take an un-asserted
827           answer off the chain from its predicate and call
828           delete_macro on the hashnode, or walk a predicate chain
829           calling delete_macro on all the entries.
830           (cpp_read_check_assertion): Simply call parse_assertion to
831           get the canonical assertion name, and look that up in the
832           hash table.
833
834         * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
835         Removed.
836
837         * cpphash.c (install): Use bcopy instead of an explicit loop
838           to copy the macro name.
839
840         * cppexp.c (cpp_lex): Convert the result of
841           cpp_read_check_assertion to a `struct operation' directly;
842           don't go through parse_number.
843
844 Tue Dec 15 18:27:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
845
846         * loop.h (struct induction): Delete times_used member.
847         * loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
848         (n_times_used): Rename to n_times_set.  Changed all users.
849         (scan_loop): Free reg_single_usage before strength reduction.
850         (record_giv, combine_givs): Remove handling of times_used member.
851         (combine_givs_used_once): Rename to:
852         (combine_givs_used_by_other) .  Changed all callers.
853
854 Tue Dec 15 01:45:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
855
856         * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
857         instead of TREE_CODE_CLASS == 't'.
858         (gen_type_die): Likewise.
859         (scope_die_for): Ignore FUNCTION_TYPE "scopes".
860
861 Mon Dec 14 16:23:27 1998  Jim Wilson  <wilson@cygnus.com>
862
863         * real.c (endian): Disable last change unless
864         HOST_BITS_PER_WIDE_INT is greater than 32.
865
866 Mon Dec 14 17:13:36 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
867
868         * output.h (force_data_section): New prototype.
869         * varasm.c (force_data_section): New function to force the
870         data section, regardless of what in_section thinks.
871         * dwarf2out.c (output_call_frame_info): Call force_data_section
872         since varasm may not realize we've changes sections.
873
874 Mon Dec 14 14:09:34 1998  Nick Clifton  <nickc@cygnus.com>
875
876         * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
877           after completeing reload.
878
879         * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
880           deleted after reload.
881
882 Mon Dec 14 01:39:28 1998  Jeffrey A Law  (law@cygnus.com)
883
884         * rtl.h (multiple_sets): Fix prototype.
885         * rtlanal.c (multiple_sets): Fix return type.
886
887 Sun Dec 13 12:43:58 PST 1998 Jeff Law  (law@cygnus.com)
888
889         * version.c: Bump for snapshot.
890
891 Sun Dec 13 01:05:22 PST 1998 Jeff Law  (law@cygnus.com)
892
893         * version.c: Bump for snapshot.
894
895 1998-12-13  Manfred Hollstein  <manfred@s-direktnet.de>
896
897         * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
898
899 Sun Dec 13 00:24:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
900
901         * rtl.h (recompute_reg_usage): Add second argument.
902         * flow.c (recompute_reg_usage): Likewise.
903         * toplev.c (rest_of_compilation): Supply second argument to
904         recompute_reg_usage.
905
906         * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
907         after reload.
908
909 Sat Dec 12 23:39:10 1998  Jeffrey A Law  (law@cygnus.com)
910
911         * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
912         (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
913         (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
914         mcpu32 or m5200.
915
916         * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
917
918         * rtlanal.c (multiple_sets): New function.
919         * rtl.h (multiple_sets): Declare it.
920         * local-alloc.c (wipe_dead_reg): Use it.
921         * global.c (global_conflicts): Likewise.
922
923 Sat Dec 12 22:13:02 1998  Mark Mitchell  <mark@markmitchell.com>
924
925         * global.c (record_conflicts): Don't use an array of shorts to
926         store an array of ints.
927         (global_conflicts): Likewise.
928
929 Sat Dec 12 16:49:24 1998  Richard Henderson  <rth@cygnus.com>
930
931         * alpha.c (alpha_expand_block_move): mode_for_size expects
932         bits, not bytes.  Infer extra alignment from addressof.
933
934 1998-12-11  Michael Meissner  <meissner@cygnus.com>
935
936         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
937         .sbss section, not .sdata.
938
939 1998-12-11  Manfred Hollstein  <manfred@s-direktnet.de>
940
941         * cccp.c: Do not #include <sys/stat.h> here; this is already done
942         by "system.h".
943         * collect2.c: Likewise.
944         * cpplib.h: Likewise.
945         * gcc.c: Likewise.
946         * gcov.c: Likewise.
947         * getpwd.c: Likewise.
948         * protoize.c: Likewise.
949         * toplev.c: Likewise.
950
951         * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
952         and don't try to define it here.
953         * Makefile.in (cppmain.o): Depend on machmode.h.
954         (cpplib.o): Likewise.
955         (cpperror.o): Likewise.
956         (cppexp.o): Likewise.
957         (cppfiles.o): Likewise.
958         (cpphash.o): Likewise.
959         (cppalloc.o): Likewise.
960         (fix-header.o): Likewise.
961         (scan-decls.o): Likewise.
962
963 Fri Dec 11 11:02:49 1998  Stan Cox  <scox@cygnus.com>
964
965         * sh.c (print_operand): lookup interrupt_handler attribute instead
966         of relying on static variable. 
967         * (calc_live_regs): Likewise.
968         * (sh_pragma_insert_attributes): Create interrupt_handler
969         attribute if a pragma was specified
970         * (sh_valid_machine_decl_attribute): Don't set static flag.
971         * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
972
973 Fri Dec 11 12:56:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
974
975         * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
976         to determine if a register is live at a jump destination.
977         Everything is dead at a BARRIER.
978
979 Thu Dec 10 16:02:06 1998  Jim Wilson  <wilson@cygnus.com>
980
981         * cse.c (simplify_unary_operation): Sign-extend constants when
982         they have the most significant bit set for the target.
983         * real.c (endian): Sign-extend 32 bit output values on a 64 bit
984         host.
985         * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
986         HOST_WIDE_INT temporary before negating it.
987         * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
988
989 Thu Dec 10 15:05:59 1998  Dave Brolley  <brolley@cygnus.com>
990
991         * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
992         #if USE_CPPLIB.
993
994 Thu Dec 10 13:39:46 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
995
996         * collect2.h: New header file for prototypes.
997
998         * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
999
1000         * collect2.c: Include collect2.h.
1001         * tlink.c: Likewise.
1002
1003 Wed Dec  9 23:55:11 1998  Jeffrey A Law  (law@cygnus.com)
1004
1005         * flow.c: Update some comments.
1006
1007 Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
1008
1009         * objc/objc-act.c (cpp_initialized): Removed.
1010         (lang_init_options): Initialize cpplib.
1011         (lang_decode_option): Move initialization of cpplib to
1012         lang_init_options.
1013         * c-lang.c: (parse_options,parse_in): Added.
1014         (lang_init_options): Initialized cpplib here.
1015         * c-decl.c (parse_options,cpp_initialized): Removed.
1016         (c_decode_option): Move initialization of cpplib to
1017         lang_init_options.
1018
1019 Wed Dec  9 19:36:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1020
1021         * reload1.c (reload_combine, reload_combine_note_store):
1022         Make STORE_RUID always valid.
1023         (reload_combine): Check if BASE is clobbered too early.
1024
1025 Wed Dec  9 09:53:58 1998  Nick Clifton  <nickc@cygnus.com>
1026
1027         * reload.c (find_reloads): Display the insn that cannot be
1028         reloaded. 
1029
1030 Wed Dec  9 12:15:26 1998  Dave Brolley  <brolley@cygnus.com>
1031
1032         * cccp.c (create_definition): Fix end of bufer logic.
1033
1034 Wed Dec  9 10:15:45 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1035
1036         * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
1037         pointer parameters changed to use the PARAMS() macro.
1038
1039 Wed Dec  9 09:12:40 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
1040
1041         * except.h (struct handler_info): Add handler_number field.
1042         * except.c (gen_exception_label): EH labels no longer need to be
1043         on the permanent obstack.
1044         (get_new_handler): Set the label number field.
1045         (output_exception_table_entry): Regenerate handler label reference 
1046         from the label number field.
1047         (init_eh): Remove a blank line.
1048         * integrate.c (get_label_from_map): Labels no longer need to be
1049         on the permanent obstack.
1050
1051 Tue Dec  8 22:04:33 1998  Jim Wilson  <wilson@cygnus.com>
1052
1053         * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
1054         only when OUTER_CODE is SET.
1055
1056 Tue Dec  8 22:47:15 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1057
1058         * loop.c (strength_reduce): If scan_start points to the loop exit
1059         test, be wary of subversive use of gotos inside expression statements.
1060         Don't set maybe_multiple for a backward jump that does not
1061         include the label under consideration into its range.
1062         * unroll.c (biv_total_increment): Make use of maybe_multiple field.
1063
1064 Tue Dec  8 22:33:18 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1065
1066         * explow.c (plus_constant_wide): Don't immediately return with
1067         result of recursive call.
1068
1069 Tue Dec  8 15:32:56 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
1070
1071         * eh-common.h (struct eh_context): Add table_index for rethrows.
1072
1073         * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
1074         (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
1075         processed when inlined or unrolled (ie duplicated in some way).
1076
1077         * rtl.c (reg_note_name): Add strings for new reg_note enums.
1078
1079         * expr.h (rethrow_libfunc): New library decl.
1080
1081         * optabs.c (rethrow_libfunc): Initialize.
1082
1083         * except.h (struct eh_entry): Add new field 'rethrow_label'.
1084         (new_eh_region_entry): No longer exported from except.c.
1085         (duplicate_handlers): Renamed to duplicate_eh_handlers and 
1086         different prototype.
1087         (rethrow_symbol_map, rethrow_used): New exported functions.
1088         (eh_region_from_symbol): New exported function.
1089
1090         * except.c (create_rethrow_ref): New function to create a single
1091         SYMBOL_REF for a rethrow region.  
1092         (push_eh_entry): Initialize a rethrow ref.
1093         (func_eh_entry): Add a rethrow_label field.
1094         (new_eh_region_entry): Make static, and initialize the rethrow entry.
1095         (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
1096         (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
1097         (rethrow_symbol_map): Given a label map, maps a rethrow symbol for 
1098         a region into an appropriate new symbol.
1099         (rethrow_used): Indicate whether a rethrow symbol has been referenced.
1100         (expand_eh_region_end): Don't issue jump around code for new-exceptions.
1101         (end_catch_handler): Emit a barrier for new-exceptions since 
1102         control can never drop through the end of a catch block.
1103         (expand_end_all_catch): new-exceptions never fall through a catch 
1104         block.
1105         (expand_rethrow): use __rethrow routine for new exceptions.
1106         (output_exception_table_entry): Generate rethrow labels, if needed.
1107         (output_exception_table): Generate start and end rethrow labels.
1108         (init_eh): Create rethrow symbols for beginning and end of table.
1109         (scan_region): Don't eliminate EH regions which are the targets of
1110         rethrows.
1111
1112         * flow.c (make_edges): Add different edges for rethrow calls, 
1113         identified by having the REG_EH_RETHROW reg label.
1114         (delete_unreachable_blocks): Don't delete regions markers which are 
1115         the target of a rethrow.
1116
1117         * integrate.c (save_for_inline_eh_labelmap): New callback routine to 
1118         allow save_for_inline_copying to call duplicate_eh_handlers.
1119         (save_for_inline_copying): Call duplicate_eh_handlers instead of
1120         exposing internal details of exception regions.
1121         (copy_for_inline): Check if SYMBOL_REFs need adjustment.
1122         (expand_inline_function_eh_labelmap):  New callback routine to 
1123         allow expand_inline_function to call duplicate_eh_handlers.
1124         (expand_inline_function): Call duplicate_eh_handlers instead of
1125         exposing internal details of exception regions.
1126         (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
1127         flag is set.
1128
1129         * libgcc2.c (find_exception_handler): Generalize to enable it to
1130         pick up processing where it left off last time for a rethrow.
1131         (__unwinding_cleanup): New function. debug hook which is called before
1132         unwinding when __throw finds there is nothing but cleanups left.
1133         (throw_helper): Common parts of __throw extracted out for reuse.
1134         (__throw): Common parts moved to throw_helper.
1135         (__rethrow): New function for performing rethrows.
1136
1137 Tue Dec  8 13:11:04 1998  Jeffrey A Law  (law@cygnus.com)
1138
1139         * reload1.c (current_function_decl): Tweak declaration.
1140
1141 Tue Dec  8 10:23:52 1998  Richard Henderson  <rth@cygnus.com>
1142
1143         * c-decl.c (flag_isoc9x): Default off.
1144         (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
1145         * cccp.c (print_help, main): Likewise.
1146         * gcc.c (default_compilers): Update for -std=gnu*.
1147
1148 Tue Dec  8 01:14:46 1998  Jeffrey A Law  (law@cygnus.com)
1149
1150         * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
1151         * demangle.h: Deleted.
1152
1153         * reload1.c (current_function_decl): Declare.
1154
1155 Tue Dec  8 11:58:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1156
1157         * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
1158
1159 Tue Dec  8 09:28:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1160
1161         * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
1162
1163 1998-12-08  Ulrich Drepper  <drepper@cygnus.com>
1164
1165         * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
1166         and fputs_unlocked.
1167         * configure: Rebuilt.
1168         * system.h: If the *_unlocked functions are available use them
1169         instead of the locked counterparts by defining macros.
1170         * config.in: Regenerated.
1171
1172 Tue Dec  8 00:34:05 1998  Mike Stump  <mrs@wrs.com>
1173
1174         * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
1175         wrong and should only be used for dump related things, not
1176         debugging information, instead main_input_filename should be used.
1177         Also, reuse output_file_directive if possible.
1178         * i386/aix386ng.h (ASM_FILE_START): Likewise.
1179         * i386/isc.h (ASM_FILE_START): Likewise.
1180         * i386/win-nt.h (ASM_FILE_START): Likewise.
1181         * i386/sun386.h (ASM_FILE_START): Likewise.
1182
1183 Mon Dec  7 23:56:28 1998   Robert Lipe  <robertl@dgii.com>
1184
1185         * configure.in (mips*-*-linux*): Handle big and little endian
1186         systems.
1187         * configure: Rebuilt.
1188
1189 Mon Dec  7 23:14:51 1998  Mike Stump <mrs@wrs.com>
1190
1191         * emit-rtl.c: Fix typo.
1192
1193 Mon Dec  7 23:07:38 1998  Nathan Sidwell  <nathan@acm.org>
1194
1195         * reload1.c (eliminate_regs): Don't do anything, if we're not
1196         generating code.
1197
1198 Mon Dec  7 15:27:09 1998  DJ Delorie  <dj@cygnus.com>
1199
1200         * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
1201         Add comment.
1202         * mips/mips.c (mips_select_section): Add comment.
1203
1204 Mon Dec  7 17:55:06 1998  Mike Stump  <mrs@wrs.com>
1205
1206         * cccp.c (ignore_escape_flag): Add support for \ as `natural'
1207         characters in file names in #line to be consistent with #include
1208         handling.  We support escape prcessing in the # 1 "..." version of
1209         the command.  See also support in cp/lex.c.
1210         (handle_directive): Likewise.
1211         (do_line): Likewise.
1212         
1213 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1214
1215         * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
1216           so it'll work on non-ASCII platforms.  Always consider $ an
1217           identifier character.  Take no arguments.
1218           (cpp_reader_init): Call initialize_char_syntax with no
1219           arguments.
1220           (cpp_start_read): Don't call initialize_char_syntax again.
1221           Clear is_idchar['$'] and is_idstart['$'] if not
1222           opts->dollars_in_ident.
1223
1224         * cpplib.h (struct cpp_reader): Replace void *data element by
1225           cpp_options *opts.  Rearrange elements to make gdb printout
1226           less annoying (put buffer stack at end).
1227           (CPP_OPTIONS): Get rid of now-unnecessary cast.
1228
1229         * cppmain.c: s/data/opts/ when initializing cpp_reader
1230           structure.
1231         * c-decl.c: Likewise.
1232         * objc/objc-act.c: Likewise.
1233         * fix-header.c: Likewise.
1234
1235 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1236
1237         * cpplib.h (struct cpp_buffer): Replace dir and dlen members
1238         with a struct file_name_list pointer.
1239         (struct cpp_reader): Add pointer to chain of `actual
1240         directory' include searchpath entries.
1241         (struct file_name_list): Add *alloc pointer for the sake of
1242         the actual-directory chain.
1243
1244         Move definition of HOST_WIDE_INT here.
1245         (cpp_parse_escape): Change prototype to match changes in
1246         cppexp.c.
1247
1248         * cppfiles.c (actual_directory): New function.
1249         (finclude): Use it to initialize the buffer's actual_dir
1250         entry.
1251         (find_include_file): We don't need to fix up max_include_len
1252         here.
1253
1254         * cpplib.c (do_include): Don't allocate a file_name_list on
1255         the fly for current directory "" includes, use the one that's
1256         been preallocated in pfile->buffer->actual_dir.  Hoist out
1257         duplicate code from the search_start selection logic.
1258         (cpp_reader_init): Initialize pfile->actual_dirs.
1259
1260         Remove definition of HOST_WIDE_INT.  Change calls
1261         to cpp_parse_escape to match changes in cppexp.c (note
1262         hardcoded MASK, which is safe since this is the source
1263         character set).
1264
1265         * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
1266         to handle wide character constants in #if directives.  The
1267         function now returns a HOST_WIDE_INT, and takes a third
1268         argument which is a binary mask for all legal values (0x00ff
1269         for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.)  Define
1270         MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK.  Change callers of
1271         cpp_parse_escape to match.  [Fixes c-torture/execute/widechar-1.c]
1272
1273 Mon Dec  7 15:38:25 1998  Dave Brolley  <brolley@cygnus.com>
1274
1275         * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
1276
1277 Mon Dec  7 15:38:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1278
1279         * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
1280         * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
1281         * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
1282
1283 Mon Dec  7 11:30:49 1998  Nick Clifton  <nickc@cygnus.com>
1284
1285         * final.c (output_asm_name): Use tabs to seperate comments from
1286         assembly text.
1287         
1288         Include instruction lengths (if defined) in output.
1289
1290 Mon Dec  7 10:53:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1291
1292         * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
1293         in the loop_info structure.
1294         
1295 Mon Dec  7 11:04:40 1998  Catherine Moore  <clm@cygnus.com>
1296  
1297         * configure.in:  (arm*-*-ecos-elf):  New target.
1298         * configure:  Regenerated.
1299         * config/arm/elf.h (ASM_WEAKEN_LABEL):  Define.
1300         * config/arm/ecos-elf.h:  New file.
1301         * config/arm/unknown-elf.h (TARGET_VERSION):  Check
1302         for redefinition.
1303  
1304 Mon Dec  7 16:15:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1305
1306         * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
1307
1308 Sun Dec 6 04:19:45 PST 1998 Jeff Law  (law@cygnus.com)
1309
1310         * version.c: Bump for snapshot.
1311
1312 Sun Dec  6 05:16:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1313
1314         * loop.c (check_dbra_loop): New argument loop_info.  Update fields
1315         as needed.
1316
1317 Sun Dec 6 03:40:13 PST 1998 Jeff Law  (law@cygnus.com)
1318
1319         * version.c: Bump for snapshot.
1320
1321 Sun Dec  6 07:49:29 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
1322
1323         * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
1324         compressed reports are ok and preferred over URLs
1325
1326 Sun Dec  6 07:45:33 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
1327
1328         * invoke.texi (Warning Options): Soften the tone of -pedantic
1329
1330 Sun Dec  6 00:20:44 1998  H.J. Lu  (hjl@gnu.org)
1331
1332         * print-rtl.c (print_rtx): Add prototype.
1333
1334         * unroll.c (iteration_info): Make it static.
1335
1336 Sun Dec  6 01:19:46 1998  Richard Henderson  <rth@cygnus.com>
1337
1338         * alias.c (memrefs_conflict_p): A second ANDed address
1339         disables the aligned address optimization.
1340
1341 Sat Dec  5 18:48:25 1998  Richard Henderson  <rth@cygnus.com>
1342
1343         * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
1344         in -c << n case.
1345
1346 Sat Dec  5 15:14:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
1347
1348         * i960.h (BOOL_TYPE_SIZE): Define.
1349
1350 Sun Dec  6 00:28:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1351
1352         * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
1353         from old valid_parallel_operands_4.
1354         (valid_parallel_operands_4): Check that operands for 4 operand
1355         parallel insns are valid, excluding load/store insns.
1356         * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
1357         * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
1358         valid_parallel_load_store instead of valid_parallel_operands_4.
1359         (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, 
1360         *negqf2_movqf_clobber, *absqi2_movqi_clobber,
1361         *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
1362         *notqi_movqi_clobber): Use valid_parallel_operands_4.
1363         (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
1364         *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
1365         *subqi3_movqi_clobber): Use valid_parallel_operands_5.
1366
1367 Sat Dec  5 23:52:01 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1368
1369         * config/c4x/c4x.c (iteration_info): Delete extern.
1370
1371 Fri Dec  4 20:15:57 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
1372
1373         * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
1374
1375         * final.c (cleanup_subreg_operands): Delete some unused code.
1376
1377         * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
1378         (struct insn_alternative): New structure definition.
1379         (recog_op_alt): Declare variable.
1380         (preprocess_constraints): Declare function.
1381         * recog.c (recog_op_alt): New variable.
1382         (extract_insn): Verify number of alternatives is in range.
1383         (preprocess_constraints): New function.
1384         * reg-stack.c: Include recog.h.
1385         (constrain_asm_operands): Delete.
1386         (get_asm_operand_lengths): Delete.
1387         (get_asm_operand_n_inputs): New function.
1388         (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
1389         N_OUTPUTS args.  All callers changed.
1390         Compute number of inputs and outputs here by calling
1391         get_asm_operand_n_inputs.
1392         Instead of constrain_asm_operands, call extract_insn,
1393         constrain_operands and preprocess_constaints.  Use information
1394         computed by these functions throughout.
1395         (record_reg_life): Delete code that is unused due to changes in
1396         record_asm_reg_life.
1397         (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
1398         N_INPUTS and N_OUTPUTS args.  All callers changed.
1399         Similar changes as in record_asm_reg_life.
1400         (subst_stack_regs): Move n_operands declaration into the if statement
1401         where it's used.
1402         Delete code that is unused due to changes in subst_asm_stack_regs.
1403         * stmt.c (expand_asm_operands): Verify number of alternatives is in
1404         range.
1405         * Makefile.in (reg-stack.o): Depend on recog.h.
1406
1407 Fri Dec  4 02:23:24 1998  Jeffrey A Law  (law@cygnus.com)
1408
1409         * except.c (set_exception_version_code): Argument is an "int".
1410
1411 Fri Dec  4 01:29:28 1998  Jeffrey A Law  (law@cygnus.com)
1412
1413         * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
1414         * configure: Rebuilt.
1415
1416 Fri Dec  4 01:29:28 1998  Robert Lipe  <robertl@dgii.com>
1417
1418         * configure.in (mipsel-*-linux*): New target.
1419         * mips/linux.h: New file, based on other Linux targets.
1420
1421 Thu Dec  3 11:19:50 1998  Mike Stump  <mrs@wrs.com>
1422
1423         * gthr-vxworks.h (__ehdtor): Fix memory leak.  The delete hook
1424         runs in the context of the deleter, not the deletee, so we must
1425         use taskVarGet to find the correct memory to free.
1426         (__gthread_key_create): Initialize the task
1427         variable subsystem so that the task variable is still active when
1428         the delete hook is run.
1429
1430 1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>
1431
1432         * pdp11.h: Use optimize_size for space optimizations.
1433         * pdp11.c: Likewise.
1434         * pdp11.md: Likewise.
1435
1436         * pdp11.h (TARGET_40_PLUS): Fix typo.
1437
1438 Thu Dec  3 11:48:32 1998  Jeffrey A Law  (law@cygnus.com)
1439
1440         * local-alloc.c (block_alloc): Slightly retune heuristic to widen 
1441         qty lifetimes.
1442
1443 Thu Dec  3 22:30:18 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1444
1445         * alias.c (addr_side_effect_eval): New function.
1446         (memrefs_conflict_p): Use it.
1447         * rtl.h (addr_side_effect_eval): Prototype it.
1448
1449 1998-12-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1450
1451         * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
1452
1453 Wed Dec  2 11:23:07 1998  Jim Wilson  <wilson@cygnus.com>
1454
1455         * reload.c (find_reloads): When force const to memory, put result
1456         in substed_operand not *recog_operand_loc.
1457
1458 1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
1459
1460         * c-lex.c: Fix indentation from last patch.
1461         Remove trailing whitespace.
1462         * real.c: Likewise.
1463
1464 Wed Dec  2 10:11:12 1998  Jeffrey A Law  (law@cygnus.com)
1465
1466         * flow.c (delete_block): Call set_last_insn after we have reset
1467         NEXT_INSN (kept_tail).
1468
1469 Wed Dec  2 00:47:31 1998  Jeffrey A Law  (law@cygnus.com)
1470
1471         * mips.md (trap_if): Use "$0" for the value zero.
1472
1473 Tue Dec  1 20:49:49 1998  Ulrich Drepper  <drepper@cygnus.com>
1474                           Stephen L Moshier  <moshier@world.std.com>
1475                           Richard Henderson  <rth@cygnus.com>
1476
1477         * c-common.c (declare_function_name): Declare predefinied variable
1478         `__func__'.
1479
1480         * c-decl.c (flag_isoc9x): Set to 1 by default.
1481         (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
1482         (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
1483
1484         * c-parse.in: Allow constructors in ISO C 9x.
1485         Rewrite designator list handling.
1486         Allow [*] parameters.
1487         Don't warn about comma at end of enum definition for ISO C 9x.
1488
1489         * cccp.c (c9x): New variable.
1490         (rest_extension): New variable.
1491         (print_help): Document new -std= option.
1492         (main): Recognize -std= option.  Set c9x appropriately.
1493         (create_definition): Recognize ISO C 9x vararg macros.
1494
1495         * gcc.c (default_compilers): Adjust specs for -std options.
1496         (option_map): Add --std.
1497         (display_help): Document -std.
1498
1499         * toplev.c (documented_lang_options): Add -std and remove
1500         -flang-isoc9x.
1501         
1502         * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
1503         or REAL_VALUE_HTOF based on base of the constants.
1504         * fold-const.c (real_hex_to_f): New function.  Replacement function
1505         for hex FP conversion if REAL_ARITHMETIC is not defined.
1506         * real.c (asctoeg): Add handling of hex FP constants.
1507         * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
1508         real_hex_to_f.
1509
1510 Tue Dec  1 16:45:49 1998  Stan Cox  <scox@cygnus.com>
1511
1512         * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
1513         -mcheck-range-division/-mcheck-zero-division checking.  Avoid as macro
1514         expansion.  Use hi/lo as destination register.
1515         (div_trap): New.
1516         (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
1517         umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
1518         Avoid as macro expansion.  Use hi/lo as destination register. 
1519
1520         * mips.h (MASK_CHECK_RANGE_DIV): New.
1521         (MASK_NO_CHECK_ZERO_DIV): New.
1522         (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
1523         (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
1524         return address for leaf functions out of r31 to support
1525         builtin_return_address. 
1526         
1527 Tue Dec  1 15:03:30 1998  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1528
1529         * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
1530         NEXT_INSN(x) to check insn x.
1531         
1532 Tue Dec  1 15:20:44 1998  Jeffrey A Law  (law@cygnus.com)
1533
1534         * flow.c (delete_block): Call set_last_insn if we end up deleting the
1535         last insn in the rtl chain.
1536
1537         * reload1.c (reload): Do not set reload_completed or split insns
1538         here.  Instead...
1539         * toplev.c (rest_of_compilation): Set reload_completed after
1540         reload returns.  Split insns after reload_cse has run.
1541
1542 Tue Dec  1 11:55:04 1998  Richard Henderson  <rth@cygnus.com>
1543
1544         * final.c (final_scan_insn): Abort if block_depth falls below 0.
1545
1546 Tue Dec  1 10:23:16 1998  Nick Clifton  <nickc@cygnus.com>
1547
1548         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
1549
1550 Tue Dec  1 10:22:18 1998  Nick Clifton  <nickc@cygnus.com>
1551
1552         * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
1553         use of user-label_prefix.
1554
1555 Tue Dec  1 17:58:26 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1556
1557         * reload1.c (emit_reload_insns): Clear spill_reg_store
1558         when doing a new non-inherited reload from the same pseudo.
1559
1560         * local-alloc.c (function_invariant_p): New function.
1561         (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
1562         to decide if an equivalence should be recorded.
1563         * reload1.c (num_eliminable_invariants): New static variable.
1564         (reload): Set it.  Use function_invariant_p instead of CONSTANT_P
1565         to decide if an equivalence should be recorded.
1566         Unshare PLUS.
1567         (calculate_needs_all_insns): Skip insns that only set an equivalence.
1568         Take num_eliminable_invariants into account when deciding
1569         if register elimination should be done.
1570         (reload_as_needed): Take num_eliminable_invariants into account
1571         when deciding if register elimination should be done.
1572         (eliminate_regs): Handle non-constant reg_equiv_constant.
1573         * rtl.h (function_invariant_p): Declare.
1574
1575 Mon Nov 30 02:00:08 PST 1998 Jeff Law  (law@cygnus.com)
1576
1577         * version.c: Bump for snapshot.
1578
1579 Mon Nov 30 00:42:59 PST 1998 Jeff Law  (law@cygnus.com)
1580
1581         * version.c: Bump for snapshot.
1582
1583 Sun Nov 29 22:59:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
1584
1585         * except.c (add_new_handler): Complain about additional handlers
1586         after one that catches everything.
1587
1588 Sat Nov 28 10:56:32 1998  Jeffrey A Law  (law@cygnus.com)
1589
1590         * configure.in (alpha*-*-netbsd): Fix typo.
1591         * configure: Rebuilt.
1592
1593 Fri Nov 27 12:28:56 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1594
1595         * system.h: Include libiberty.h.
1596
1597         * c-aux-info.c: Remove prototypes for concat/concat3.  Change
1598         function `concat' from fixed parameters to variable parameters,
1599         as is done in libiberty.  All callers of concat/concat3
1600         changed to use the new `concat' with variable args.
1601
1602         * cccp.c: Remove things made redundant by libiberty.h and/or
1603         conform to libiberty standards.
1604         * cexp.y: Likewise.
1605         * collect2.c: Likewise.
1606         * config/1750a/1750a.h: Likewise.
1607         * cppalloc.c: Likewise.
1608         * cppexp.c: Likewise.
1609         * cppfiles.c: Likewise.
1610         * cpphash.c: Likewise.
1611         * cpplib.c: Likewise.
1612         * dyn-string.c: Likewise.
1613         * fix-header.c: Likewise.
1614         * gcc.c: Likewise.
1615         * gcov.c: Likewise.
1616         * genattr.c: Likewise.
1617         * genattrtab.c: Likewise.
1618         * gencheck.c: Likewise.
1619         * gencodes.c: Likewise.
1620         * genconfig.c: Likewise.
1621         * genemit.c: Likewise.
1622         * genextract.c: Likewise.
1623         * genflags.c: Likewise.
1624         * gengenrtl.c: Likewise.
1625         * genopinit.c: Likewise.
1626         * genoutput.c: Likewise.
1627         * genpeep.c: Likewise.
1628         * genrecog.c: Likewise.
1629         * getpwd.c: Likewise.
1630         * halfpic.c: Likewise.
1631         * hash.c: Likewise.
1632         * mips-tdump.c: Likewise.  Wrap malloc/realloc/calloc prototypes
1633         in NEED_DECLARATION_* macros.
1634
1635         * mips-tfile.c: Remove things made redundant by libiberty.h and/or
1636         conform to libiberty standards.
1637         (fatal): Fix const-ification of variable `format' in
1638         !ANSI_PROTOTYPES case.
1639
1640         * prefix.c: Remove things made redundant by libiberty.h and/or
1641         conform to libiberty standards.
1642
1643         * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
1644         conflicting with function `spaces' from libiberty.
1645
1646         * profile.c: Remove things made redundant by libiberty.h and/or
1647         conform to libiberty standards.
1648         * protoize.c: Likewise.
1649         * rtl.h: Likewise.
1650         * scan.h: Likewise.
1651         * tlink.c: Likewise.
1652         * toplev.c: Likewise.
1653         * toplev.h: Likewise.
1654         * tree.h: Likewise.
1655
1656 Thu Nov 26 08:38:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1657
1658         * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
1659
1660 Thu Nov 26 23:45:37 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1661
1662         * README.C4X: Updated URLs.
1663         * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
1664         (valid_parallel_operands_5): Remove unused variable.
1665
1666 Thu Nov 26 23:40:03 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1667
1668         * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
1669
1670 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
1671
1672         * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
1673         which can be configured.
1674         (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
1675         (Makefile): Pass actual LANGUAGES through the environment when
1676         re-configuring.
1677         (cstamp-h): Likewise.
1678         (config.status): Likewise.
1679
1680         * configure.in (enable_languages): Add new configuration parameter
1681         "--enable-languages=lang1,lang2,...".
1682         (${srcdir}/*/config-lang.in): Change handling to configure only
1683         those directories, that the user might have enabled; default to
1684         "all" existing languages.
1685         * configure: Regenerate.
1686
1687 Thu Nov 26 00:19:19 1998  Richard Henderson  <rth@cygnus.com>
1688
1689         * rtlanal.c (regs_set_between_p): New function.
1690         * rtl.h (regs_set_between_p): Prototype it.
1691         * jump.c (jump_optimize): Use it instead of modified_between_p
1692         in the Sep 2 change.
1693
1694 Wed Nov 25 23:32:02 1998  Ian Dall  <Ian.Dall@dsto.defence.gov.au>
1695                           Matthias Pfaller  <leo@dachau.marco.de>
1696
1697         * invoke.texi (Option Summary, NS32K Options): add description
1698         of NS32K specific options.
1699
1700         * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
1701         fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
1702         fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
1703         negdf2, absdf2): Use l instead of f since the double class and
1704         float class are no longer the same.
1705         (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
1706         divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
1707         ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
1708         use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
1709         fixed.
1710         (cmpsi, cmphi, cmpqi): use general_operand instead of
1711         non_immediate_operand. Removes erroneous assumption that can't
1712         compare constants.
1713         (movsf, movsi, movhi, movqi,...): New register numbering scheme.
1714         (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
1715         constants.
1716         (movstrsi, movstrsi1, movstrsi2): completely new block move
1717         scheme.
1718         (...): Patterns to exploit multiply-add instructions.
1719         (udivmodsi4, udivmodsi_internal4, udivmodhi4,
1720         udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new
1721         patterns to exploit extended divide insns.
1722         (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi
1723         etc patterns.
1724
1725         * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
1726         float return values as well as simple scalar floats.
1727         (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
1728         support new flag to denote 32381 fpu.
1729         (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
1730         (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not
1731         compling for 32381.
1732         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1733         REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
1734         REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
1735         L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
1736         LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
1737         REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
1738         REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
1739         REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
1740         REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381
1741         fpu registers and special register classes for new 32381
1742         instructions dotf and polyf.
1743         (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
1744         be tieable.
1745         (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
1746         INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
1747         required.
1748         (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option.
1749         (MOVE_RATIO): Set to zero because of smart movstrsi implimentation.
1750         (REGISTER_MOVE_COST): move code to register_move_cost function for
1751         ease of coding and debugging.
1752         (CLASS_LIKELY_SPILLED_P): Under new register scheme class
1753         LONG_FLOAT_REGO is likely spilled but not caught by default
1754         definition.
1755         (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro
1756         instead of hard coded numbers in range check.
1757         (ASM_OUTPUT_LABELREF_AS_INT): delete since unused.
1758         (...): Add prototypes for functions in ns32k.c but disable because
1759         of problems when ns32k.h is included in machine independant files.
1760         
1761         * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h".
1762         (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
1763         hard_regno_mode_ok, secondary_reload_class,
1764         print_operand, print_operand_address): new register scheme to
1765         include 32381 fpu registers and special register classes for new
1766         32381 instructions dotf and polyf.
1767         (gen_indexed_expr): Make static to keep namespace clean.
1768         (check_reg): remove since never called.
1769         (move_tail, expand_block_move): helper functions for "movstrsi"
1770         block move insn.
1771         (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
1772         Increase cost of moves which go via memory.
1773         * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
1774         (CPP_PREDEFINES): nolonger predefine "unix".
1775
1776         * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
1777         Remove erroneous %$. print_operand() can work out from the rtx is
1778         an immediate prefix is required.
1779
1780         * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
1781         VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
1782         SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
1783         convention.
1784         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
1785         pic operands.
1786
1787         * ns32k.c (symbolic_reference_mentioned_p, print_operand):
1788         Correct handling of pic operands.
1789         (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
1790         ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
1791         -mrtd calling convention.
1792
1793 Wed Nov 25 23:42:20 1998  Tom Tromey  <tromey@cygnus.com>
1794
1795         * gcc.c (option_map): Recognize --output-class-directory.
1796
1797 Thu Nov 26 18:26:21 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1798
1799         * loop.h (precondition_loop_p): Added new mode argument.
1800         * unroll.c (precondition_loop_p): Likewise.
1801         (approx_final_value): Function deleted and subsumed
1802         into loop_iterations.
1803         (loop_find_equiv_value): New function.
1804         (loop_iterations): Use loop_find_equiv_value to find increments
1805         too large to be immediate constants.  Also use it to find terms
1806         common to initial and final iteration values that can be removed.
1807
1808 Thu Nov 26 18:05:04 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1809
1810         * loop.h (struct loop_info): Define new structure.
1811         (precondition_loop_p): Added prototype.
1812         (unroll_loop): Added new argument loop_info to prototype.
1813         (final_biv_value, final_giv_value): Added new argument n_iterations
1814         to prototype.
1815         * loop.c (strength_reduce): Declare new structure loop_iteration_info
1816         and new pointer loop_info.
1817         (loop_n_iterations): Replace global variable by element in 
1818         loop_info structure.
1819         (check_final_value): New argument n_iterations.
1820         (insert_bct): New argument loop_info.
1821         (loop_unroll_factor): Replace global array by element in 
1822         loop_info structure.
1823         (loop_optimize): Remove code to allocate and initialise 
1824         loop_unroll_factor_array.
1825         * unroll.c (precondition_loop_p):  No longer static since
1826         used by branch on count optimization.
1827         (precondition_loop_p, unroll_loop): New argument loop_info.
1828         (final_biv_value, final_giv_value, find_splittable_regs): New
1829         argument n_iterations.
1830         (loop_iteration_var, loop_initial_value, loop_increment, 
1831         loop_final_value, loop_comparison_code, loop_unroll_factor): 
1832         Replaced global variables by loop_info structure.
1833         (loop_unroll_factor): Replace global array by element in
1834         loop_info structure.
1835
1836 Thu Nov 26 17:49:29 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1837
1838         * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
1839         when loop reversed.
1840
1841         * unroll.c (precondition_loop_p): Return loop_initial_value
1842         for initial_value instead of loop_iteration_var.
1843
1844 Thu Nov 26 17:15:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1845
1846         * config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
1847         (*b, *b_rev, *b_noov, *b_noov_rev, *db, 
1848         decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
1849         to output the instruction sequences.
1850         (rpts): Delete.
1851         (rptb_top): Provide alternatives to use any register or memory
1852         for loop counter.
1853         (rptb_end):  Emit use of operands rather than assigning them
1854         explicitly to the RS and RE registers.
1855
1856 Thu Nov 26 16:37:59 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1857
1858         * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
1859         c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
1860         c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
1861         c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, 
1862         c4x_merge_notes, c4x_parallel_process, 
1863         c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
1864         c4x_combine_parallel): Delete.
1865
1866 Thu Nov 26 15:16:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1867
1868         * config/c4x/c4x.c: (c4x_override_options): For compatibility
1869         with old target options clear flag_branch_on_count_reg if
1870         -mno-rptb specified and set flag_argument_alias is -mno-aliases
1871         specified.
1872         (c4x_output_cbranch): Handle a sequence of insns rather than a
1873         single insn.
1874         (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
1875         has not been allocated as the loop counter.
1876         (c4x_address_conflict): Do not allow two volatile memory references.
1877         (valid_parallel_operands_4, valid_parallel_operands_5,
1878         valid_parallel_operands_6): Reject pattern if the register destination
1879         of the first set is used as part of an address in the second set.
1880
1881 Thu Nov 26 14:56:32 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1882
1883         * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
1884         (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
1885         is no longer enabled if PARALLEL_MPY_FLAG set.
1886         (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
1887         (REG_CLASS_CONTENTS): Add braces around initializers.
1888         (HAVE_MULTIPLE_PACK): Define.
1889         (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with 
1890         REAL_VALUE_TO_DECIMAL.
1891         (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with 
1892         REAL_VALUE_TO_DECIMAL.
1893         (ar0_reg_operand): Add prototype.
1894         (ar0_mem_operand): Likewise.
1895         (ar1_reg_operand): Likewise.
1896         (ar1_mem_operand): Likewise.
1897         (ar2_reg_operand): Likewise.
1898         (ar2_mem_operand): Likewise.
1899         (ar3_reg_operand): Likewise.
1900         (ar3_mem_operand): Likewise.
1901         (ar4_reg_operand): Likewise.
1902         (ar4_mem_operand): Likewise.
1903         (ar5_reg_operand): Likewise.
1904         (ar5_mem_operand): Likewise.
1905         (ar6_reg_operand): Likewise.
1906         (ar6_mem_operand): Likewise.
1907         (ar7_reg_operand): Likewise.
1908         (ar7_mem_operand): Likewise.
1909         (ir0_reg_operand): Likewise.
1910         (ir0_mem_operand): Likewise.
1911         (ir1_reg_operand): Likewise.
1912         (ir1_mem_operand): Likewise.
1913         (group1_reg_operand): Likewise.
1914         (group1_mem_operand): Likewise.
1915         (ir1_reg_operand): Likewise.
1916         (arx_reg_operand): Likewise.
1917         (not_rc_reg): Likewise.
1918         (not_modify_reg): Likewise.
1919         (c4x_group1_reg_operand): Remove prototype.
1920         (c4x_group1_mem_operand): Likewise.
1921         (c4x_arx_reg_operand): Likewise.
1922
1923 Wed Nov 25 19:02:55 1998  (Stephen L Moshier) <moshier@world.std.com>
1924
1925         * emit-rtl.c (gen_lowpart_common): Remove earlier change.
1926         * real.c (make_nan): Make SIGN arg actually specify the sign bit.
1927
1928 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1929
1930         * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
1931         during reload.
1932
1933 Wed Nov 25 22:05:28 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1934
1935         * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
1936         unless FMOVD_WORKS is defined.
1937
1938 Wed Nov 25 20:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1939
1940         * regclass.c (init_reg_sets): Move code that calculates tables
1941         dependent on reg_class_contents from here...
1942         (init_reg_sets_1): To here.
1943
1944 Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1945
1946         * cpplib.h: Delete struct import_file.  Add ihash element to
1947         struct cpp_buffer.  Delete dont_repeat_files and
1948         import_hash_table elements from cpp_reader; change
1949         all_include_files to a hash table.  Delete all foobar_include
1950         / last_foobar_include elements from struct cpp_options; put
1951         back four such: quote_include, bracket_include,
1952         system_include, after_include.  Redo struct file_name_list
1953         completely.  Add new structure type include_hash.  Add
1954         prototypes for merge_include_chains and include_hash.  Change
1955         prototypes for finclude, find_include_file, and
1956         append_include_chain to match changes below.
1957
1958         * cppfiles.c (simplify_pathname, include_hash,
1959         remap_filename, merge_include_chains): New functions.
1960         (add_import, lookup_import, open_include_file): Removed.
1961         (INO_T_EQ): Define this (copied from cccp.c).
1962         (hack_vms_include_specification): Remove all calls and #if 0
1963         out the definition.  It was being called incorrectly and at
1964         the wrong times.  Until a VMSie can look at this, it's better
1965         to not pretend to support it.
1966         (append_include_chain): Change calling convention; now takes
1967         only one directory at a time, and sets up the data structure
1968         itself.
1969         (redundant_include_p): Rewritten - this is now used for all
1970         include redundancy, whether by #ifndef, #import, or #pragma
1971         once.  Looks up things in the include hash table.
1972         (file_cleanup): Decrement pfile->system_include_depth here if
1973         it's >0.
1974         (find_include_file): Calling convention changed; now passes
1975         around a struct include_hash instead of 3 separate parameters.
1976         Guts ripped out and replaced with new include_hash mechanism.
1977         (finclude): Calling convention changed as for
1978         find_include_file.  Error exits pulled out-of-line.  Reformat.
1979         (safe_read): Return a long, not an int.
1980         (deps_output): Don't recurse.
1981
1982         * cpplib.c (is_system_include): Deleted.
1983         (path_include): Fix up call to append_include_chain.
1984         (do_include): Fix up calls to find_include_file and finclude.
1985         Clean up dependency output a bit.  Shorten obnoxiously lengthy
1986         #import warning message.  Don't decrement
1987         pfile->system_include_depth here.
1988         (do_pragma): Understand the include_hash structure.  Reformat.
1989         (do_endif): Correct handling of control macros.  Understand
1990         the include_hash.
1991         (cpp_start_read): Fix up calls to finclude.  Call
1992         merge_include_chains.
1993         (cpp_handle_option): Fix up calls to append_include_chain.
1994         Understand the four partial include chains.
1995         (cpp_finish): Add debugging code (#if 0-ed out) for the
1996         include_hash.
1997         (cpp_cleanup): Free the include_hash, not the import hash and
1998         the all_include and dont_repeat lists which no longer exist.
1999
2000 Wed Nov 25 11:26:19 1998  Jeffrey A Law  (law@cygnus.com)
2001
2002         * toplev.c (no_new_pseudos): Define.
2003         (rest_of_compilation):  Set no_new_pseudos as needed.
2004         * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
2005         if no_new_pseudos is set.
2006         * rtl.h (no_new_pseudos): Declare it.
2007         * reload1.c (reload): Update comments.
2008         * md.texi: Corresponding changes.
2009
2010 Wed Nov 25 11:26:17 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
2011
2012         * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
2013         (choose_reload_regs): Rename it here as well.  When computing it,
2014         also merge in used hardregs.
2015
2016 1998-11-25 07:51 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2017
2018         * gcc.c: Split out Objective-C specs to...
2019         * objc/lang-specs.h: here. (New file.) Make the specs cpplib
2020         aware.
2021
2022         * c-lex.c (init_parse): Always initialize the filename global.
2023         * objc/objc-act.c (lang_init): Always call check_newline at
2024         beginning of file.
2025
2026 Wed Nov 25 00:48:29 1998  Graham  <grahams@rcp.co.uk>
2027
2028         * reload1.c (reload): Remove unused variable.
2029         (reload_reg_free_for_value_p): Add missing parameter definition.
2030
2031         * jump.c (jump_optimize): Remove unused variable.
2032
2033 Wed Nov 25 00:07:11 1998  Jeffrey A Law  (law@cygnus.com)
2034
2035         * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
2036
2037         * cse.c (fold_rtx): Make autoincrement addressing mode tests be
2038         runtime selectable.
2039         * expr.c (move_by_pieces): Similarly.
2040         (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
2041         * flow.c (find_auto_inc): Similarly.
2042         (try_pre_increment): Similarly.
2043         * loop.c (strength_reduce): Similarly.
2044         * regclass.c (auto_inc_dec_reg_p): Similarly.
2045         * regmove.c (try_auto_increment): Similarly.
2046         (fixup_match_1): Similarly.
2047         * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
2048         (HAVE_PRE_DECREMENT): Similarly.
2049         (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
2050         * Corresponding changes to all target header files.
2051         * tm.texi: Update docs for autoinc addressing modes.
2052
2053 Tue Nov 24 20:24:59 1998  Jim Wilson  <wilson@cygnus.com>
2054
2055         * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
2056         * configure: Rebuild.
2057         * config/elfos.h: New file.
2058         * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
2059         config/m68k/t-m68kelf: New file.
2060         
2061 Tue Nov 24 13:40:06 1998  Jeffrey A Law  (law@cygnus.com)
2062
2063         * Makefile.in (HOST_AR): Define.
2064         (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
2065         (libcpp.a): Use the host tools explicitly.
2066         (STAGESTUFF): Add libcpp.a.
2067
2068 Tue Nov 24 09:33:49 1998  Nick Clifton  <nickc@cygnus.com>
2069
2070         * config/m32r/m32r.md (movstrsi_internal): Describe changes made
2071         to source and destination registers.
2072
2073 Mon Nov 23 20:28:02 1998  Mike Stump  <mrs@wrs.com>
2074
2075         * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
2076         The strategy we now use is to pre allocate the top_elt along
2077         with the EH context so that each thread has its own top_elt.
2078         This is necessary as the dynmanic cleanup chain is used on the
2079         top element of the stack and each thread MUST have its own.
2080         (eh_context_static): Likewise.
2081         (new_eh_context): Likewise.
2082         (__sjthrow): Likewise.
2083
2084 Mon Nov 23 20:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
2085
2086         * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
2087         * i386.md (prologue_get_pc): Remove unused variable.
2088
2089 Mon Nov 23 17:05:40 1998  Geoffrey Noer  <noer@cygnus.com>
2090
2091         * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
2092
2093 Mon Nov 23 16:40:00 1998  Ulrich Drepper  <drepper@cygnus.com>
2094
2095         * Makefile.in (OBJS): Add graph.o
2096         (graph.o): New dependency list.
2097         * flags.h: Declare dump_for_graph and define graph_dump_types type.
2098         * print-rtl.c (dump_for_graph): Define new variable.
2099         (print_rtx): Rewrite to allow use in graph dumping functions.
2100         * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
2101         finish_graph_dump_file.
2102         Define graph_dump_format.
2103         (compile_file): If graph dumping is enabled also clear these files.
2104         Finish graph dump files.
2105         (rest_of_compilation): Also dump graph information if enabled.
2106         (main): Recognize -dv to enabled VCG based graph dumping.
2107         * graph.c: New file.  Graph dumping functions.
2108
2109 Mon Nov 23 16:39:04 1998  Richard Henderson  <rth@cygnus.com>
2110
2111         * configure.in: Look for <sys/stat.h>.
2112         * system.h: Include it before substitute S_ISREG definitions.
2113
2114 Mon Nov 23 17:40:37 1998  Gavin Romig-Koch  <gavin@cygnus.com>
2115
2116         * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
2117         * config/mips/iris6.h: Same.
2118         * config/mips/mips.md: Same.
2119         * config/mips/mips.c: Same; also add "-mabi=o64" option.
2120         * config/mips/mips.h: Same; also define ABI_O64.
2121
2122 Mon Nov 23 17:02:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2123
2124         *  configure.in: Use AC_PREREQ(2.12.1).
2125
2126 Mon Nov 23 10:16:38 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
2127
2128         * cccp.c (S_ISREG, S_ISDIR): Delete defines.
2129         * cpplib.c, gcc.c: Likewise.
2130         * system.h (S_ISREG, S_ISDIR): Define if not already defined.
2131
2132 Mon Nov 23 09:53:44 1998  Richard Henderson  <rth@cygnus.com>
2133
2134         * local-alloc.c (local_alloc): Use malloc not alloca for
2135         reg_qty, reg_offset, ref_next_in_qty.
2136
2137 Mon Nov 23 16:46:46 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2138
2139         * caller-save.c (insert_one_insn): Initialize the live_before and
2140         live_after register sets.
2141
2142         Add SH4 support:
2143
2144         * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
2145         (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
2146         * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
2147         (fp_reg_names, assembler_dialect): New variables.
2148         (print_operand_address): Handle SUBREGs.
2149         (print_operand): Added 'o' case.
2150         Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
2151         Name of FP registers depends on mode.
2152         (expand_block_move): Emit different code for SH4 hardware.
2153         (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
2154         (from_compare): Likewise.
2155         (add_constant): New argument last_value.  Changed all callers.
2156         (find_barrier): Don't try HImode load for FPUL_REG.
2157         (machine_dependent_reorg): Likewise.
2158         (sfunc_uses_reg): A CLOBBER cannot be the address register use.
2159         (gen_far_branch): Emit a barrier after the new jump.
2160         (barrier_align): Don't trust instruction lengths before
2161         fixing up pcloads.
2162         (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
2163         Use auto-inc addressing for fp registers if doubles need to
2164         be loaded in two steps.
2165         Set sh_flag_remove_dead_before_cse.
2166         (push): Support for TARGET_FMOVD.  Use gen_push_fpul for fpul.
2167         (pop): Support for TARGET_FMOVD.  Use gen_pop_fpul for fpul.
2168         (calc_live_regs): Support for TARGET_FMOVD.  Don't save FPSCR.
2169         Support for FIRST_XD_REG .. LAST_XD_REG.
2170         (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
2171         (sh_expand_epilogue): Likewise.
2172         (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
2173         (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
2174         (arith_reg_operand): FPUL_REG is OK for SH4.
2175         (fp_arith_reg_operand, fp_extended_operand) New functions.
2176         (tertiary_reload_operand, fpscr_operand): Likewise.
2177         (commutative_float_operator, noncommutative_float_operator): Likewise.
2178         (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
2179         (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
2180         (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
2181         (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
2182         * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
2183         (CONDITIONAL_REGISTER_USAGE): Likewise.
2184         (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
2185         (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
2186         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
2187         (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
2188         (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
2189         to -1 and sh_flag_remove_dead_before_cse to 1.
2190         (ASSEMBLER_DIALECT): Define to assembler_dialect.
2191         (assembler_dialect, fp_reg_names): Declare.
2192         (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
2193         Hide names of registers that are not accessible.
2194         (CACHE_LOG): Take TARGET_CACHE32 into account.
2195         (LOOP_ALIGN): Take TARGET_HARWARD into account.
2196         (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
2197         (FIRST_PSEUDO_REGISTER: Now 49.
2198         (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
2199         (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
2200         (HARD_REGNO_MODE_OK): Update.
2201         (enum reg_class): Add DF_REGS and FPSCR_REGS.
2202         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
2203         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
2204         (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
2205         (NPARM_REGS): Eight floating point parameter registers on SH4.
2206         (BASE_RETURN_VALUE_REG): SH4 also passes double values
2207         in floating point registers.
2208         (GET_SH_ARG_CLASS) Likewise.
2209         Complex float types are also returned in float registers.
2210         (BASE_ARG_REG): Complex float types are also passes in float registers.
2211         (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
2212         (LIBCALL_VALUE): Remove trailing semicolon.
2213         (ROUND_REG): Round when double precision value is passed in floating
2214         point register(s).
2215         (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
2216         passed on the stack.
2217         (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
2218         (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
2219         (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
2220         (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
2221         (MODE_DISP_OK_8): Not for SH4 DFmode.
2222         (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
2223         Allow indexed addressing for PSImode after reload.
2224         (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
2225         (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
2226         Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
2227         (DOUBLE_TYPE_SIZE): 64 for SH4.
2228         (RTX_COSTS): Add PLUS case.
2229         Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
2230         (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
2231         MAC_REGS, PR_REGS, DF_REGS.
2232         (REGISTER_NAMES): Use fp_reg_names.
2233         (enum processor_type): Add PROCESSOR_SH4.
2234         (sh_flag_remove_dead_before_cse): Declare.
2235         (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
2236         (PREDICATE_CODES): Add binary_float_operator,
2237         commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
2238         fpscr_operand, noncommutative_float_operator.
2239         (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
2240         (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
2241         * sh.md (attribute cpu): Add value sh4.
2242         (attrbutes fmovd, issues): Define.
2243         (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
2244         (function units memory, int, mpy, fp): Make dependent on issue rate.
2245         (function units issue, single_issue, load_si, load): Define.
2246         (function units load_store, fdiv, gp_fpul): Define.
2247         (attribute hit_stack): Provide proper default.
2248         (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
2249         (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
2250         (udivsi3, divsi3): Emit special patterns for SH4 hardware,
2251         (mulsi3_call): Now uses match_operand for function address.
2252         (mulsi3): Also emit code for SH1 case.  Wrap result in REG_LIBCALL /
2253         REG_RETVAL notes.
2254         (push, pop, push_e, pop_e): Now define_expands.
2255         (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
2256         (movsi_ie): Added y/i alternative.
2257         (ic_invalidate_line_i, movdf_i4): New insns.
2258         (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
2259         (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
2260         (movdf): Add special code for SH4.
2261         (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
2262         (call_valuei, calli, call_value): Likewise.
2263         (movsf): Emit no-op move.
2264         (mov_nop, movsi_y): New insns.
2265         (blt, sge): generalize to handle DFmode.
2266         (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
2267         (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
2268         (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
2269         (fpu_switch0, fpu_switch1, movpsi): New expanders.
2270         (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
2271         (toggle_sz): New insn.
2272         (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
2273         (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
2274         (macsf3): Make use of fpscr visible.  Disable for SH4.
2275         (floatsisf2): Make use of fpscr visible.
2276         (floatsisf2_i4): New insn.
2277         (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
2278         (ieee_ccmpeqsf_t): Likewise.
2279         (fix_truncsfsi2): Emit different code for SH4.
2280         (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
2281         (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
2282         (negsf2, sqrtsf2, abssf2): Now expanders.
2283         (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
2284         (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
2285         (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
2286         (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
2287         (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
2288         (fix_truncdfsi2_i4_2+1): New splitters.
2289         (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
2290         (extendsfdf2, truncdfsf2): New expanders.
2291         (truncdfsf2_i4): New insn.
2292         * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
2293         (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
2294         * float-sh.h: When testing for __SH3E__, also test for
2295         __SH4_SINGLE_ONLY__ .
2296         * va-sh.h (__va_freg): Define to float.
2297         (__va_greg, __fa_freg, __gnuc_va_list, va_start):
2298         Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
2299         (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
2300         (__PASS_AS_FLOAT): Use different definition for __SH4__ and
2301          __SH4_SINGLE__.
2302         (TARGET_SH4_P): Define.
2303         (va_arg): Use it.
2304
2305         * sh.md (movdf_k, movsf_i): Tweak the condition so that
2306         init_expr_once is satisfied about the existence of load / store insns.
2307
2308         * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
2309         change m constraint in source operand to mr / mf .
2310
2311         * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
2312
2313         * (__VA_REEF): Define.
2314         (__va_arg_sh1): Use it.
2315
2316         * va-sh.h (va_start, va_arg, va_copy): Add parenteses.
2317
2318 Sun Nov 22 21:34:02 1998  Jeffrey A Law  (law@cygnus.com)
2319
2320         * i386/dgux.c (struct option): Add new "description field".
2321         * m88k/m88k.c (struct option): Likewise.
2322
2323 Sun Nov 22 16:07:57 PST 1998 Jeff Law  (law@cygnus.com)
2324
2325         * version.c: Bump for snapshot.
2326
2327 Sun Nov 22 13:40:02 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
2328
2329         * regmove.c (regmove_profitable_p): Use return value of find_matches
2330         properly.
2331
2332 Sun Nov 22 02:47:37 PST 1998 Jeff Law  (law@cygnus.com)
2333
2334         * version.c: Bump for snapshot.
2335
2336 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
2337
2338         * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
2339         without reload having been called earlier.
2340
2341         * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
2342         addressing modes.
2343         (v850_reorg): Similarly.
2344
2345         * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
2346
2347 Sat Nov 21 02:18:38 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2348
2349         * loop.c (move_movables): Start of libcall might be new loop start.
2350
2351 Fri Nov 20 12:14:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2352
2353         * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
2354
2355 Fri Nov 20 08:34:00 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2356
2357         * function.c (nonlocal_goto_handler_slots): Renamed from
2358         nonlocal_goto_handler_slot; now an EXPR_LIST chain.
2359         (push_function_context_to): Adjust for this change.
2360         (pop_function_context_from): Likewise.
2361         (init_function_start): Likewise.
2362         (expand_function_end): Likewise.
2363         * function.h (struct function): Likewise.
2364         * calls.c (expand_call): Likewise.
2365         * explow.c (allocate_dynamic_stack_space): Likewise.
2366         * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
2367         * stmt.c (declare_nonlocal_label): Make a new handler slot for each
2368         label.
2369         (expand_goto): When doing a nonlocal goto, find corresponding handler
2370         slot for it.  Don't put the label address in the static chain register.
2371         (expand_end_bindings): Break out nonlocal goto handling code into
2372         three new functions.
2373         (expand_nl_handler_label, expand_nl_goto_receiver,
2374         expand_nl_goto_receivers): New static functions, broken out of
2375         expand_end_bindings and adapted to create one handler per nonlocal
2376         label.
2377         * function.c (delete_handlers): Delete insn if it references any of
2378         the nonlocal goto handler slots.
2379         * i960.md (nonlocal_goto): Comment out code that modifies
2380         static_chain_rtx.
2381         * sparc.md (nonlocal_goto): Likewise.
2382         (goto_handler_and_restore_v9): Comment out.
2383         (goto_handler_and_restore_v9_sp64): Comment out.
2384
2385 Thu Nov 19 23:44:38 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2386
2387         * expr.c (STACK_BYTES): Delete unused macro.
2388         * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
2389         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
2390         (expand_call): Likewise.
2391         (emit_library_call): Likewise.
2392         (emit_library_call_value): Likewise.
2393         * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
2394         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
2395         * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
2396         (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
2397         (allocate_dynamic_stack_space): Likewise.
2398         * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
2399         (STACK_BOUNDARY): Update description to reflect the new situation.
2400
2401 Thu Nov 19 22:20:51 1998  Jeffrey A Law  (law@cygnus.com)
2402
2403         * reorg.c (relax_delay_slots): When optimizing for code size, if a
2404         return with a filled delay slot is followed by a return with an
2405         unfilled delay slot, delete the first return and reemit the insn
2406         that was previously in its delay slot.
2407
2408         * i860.c (single_insn_src_p): Add missing parens.
2409         * ginclude/math-3300.h: Likewise.
2410
2411 Thu Nov 19 20:55:59 1998  H.J. Lu  (hjl@gnu.org)
2412
2413         * regclass.c (init_reg_sets_1): Add prototype.
2414         (init_reg_modes): Likewise.
2415
2416 1998-11-19 Zack Weinberg  <zack@rabi.phys.columbia.edu>
2417
2418         * c-common.c: Change warning messages to say `comparison is
2419         always true' or `comparison is always false' instead of the
2420         confusing `is always 0', `is always 1'.
2421
2422 Thu Nov 19 19:05:49 1998  Per Bothner  <bothner@cygnus.com>
2423
2424         * print-tree.c (print_node):  After printing BLOCK or BIND_EXPR,
2425         break instead of return (which loses closing '>').
2426
2427 Thu Nov 19 19:34:13 1998  Jeffrey A Law  (law@cygnus.com)
2428
2429         * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
2430         standard 387 constants.
2431
2432         * i386.md (jump): Explicitly set "memory" attribute.
2433         (indirect_jump, prologue_set_stack_ptr): Likewise.
2434         (prologue_get_pc_and_set_got, pop): Likewise.
2435         (allocate_stack_worder, blockage, return_internal): Likewise.
2436         (return_pop_internal, nop): Likewise.
2437         (epilogue_set_stack_ptr, leave): Likewise.
2438
2439 Thu Nov 19 15:42:54 1998  Nick Clifton  <nickc@cygnus.com>
2440
2441         * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
2442
2443 Thu Nov 19 23:20:59 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2444
2445         * reload1.c (reload_reg_free_for_value_p):
2446         Early auto_inc reloads don't conflict with outputs.
2447
2448 Thu Nov 19 12:58:55 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2449
2450         * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
2451         Instead call AC_HEADER_SYS_WAIT.
2452
2453         * collect2.c: Don't provide defaults for sys/wait.h macros.
2454         * gcc.c: Likewise.
2455         * protoize.c: Likewise.  Also, don't include sys/wait.h.
2456
2457         * system.h: Include sys/wait.h and provide macro defaults.
2458
2459 1998-11-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2460
2461         * Makefile.in (mandir): Set to @mandir@.
2462         (man1dir): New variable to hold the former value of $(mandir).
2463         Replace all uses of $(mandir) by $(man1dir).
2464
2465 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
2466
2467         * reload.c (find_reloads_address_part): If have a CONST_INT, create
2468         a new one before passing it to force_const_mem.
2469
2470         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
2471         find_reloads_address call.
2472
2473 Wed Nov 18 22:13:00 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2474
2475         * expr.c (store_expr): Don't generate load-store pair
2476         if TEMP is identical (according to ==) with TARGET.
2477
2478 Tue Nov 17 22:25:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2479
2480         * reload1.c (reload_reg_free_for_value_p): When considered reload
2481         has an output, matching inputs are not sufficient to avoid conflict.
2482
2483 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
2484
2485         * hash.h (hash_table_key): New type.
2486         (hash_entry): Change `string' field to generic `key'.
2487         (hash_table): Add `comp' and `hash' functions.
2488         (hash_table_init): Take them as input.
2489         (hash_table_init_n): Likewise.
2490         (hash_lookup): Modify for generic keys.
2491         (hash_newfunc): Likewise.
2492         (hash_traverse): Likewise.
2493         (string_hash): New function.
2494         (string_compare): Likewise.
2495         (string_copy): Likewise.
2496         * hash.c (hash_table_init_n): Modify for generic keys.
2497         (hash_table_init): Likewise.
2498         (hash_lookup): Likewise.
2499         (hash_newfunc): Likewise.
2500         (hash_traverse): Likewise.
2501         (string_hash): Split out from hash_lookup.
2502         (string_compare): New function.
2503         (string_copy): Split out from hash_lookup.
2504         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
2505         tables.
2506         (symbol_hash_lookup): Likewise.
2507         (file_hash_newfunc): Likewise.
2508         (file_hash_lookup): Likewise.
2509         (demangled_hash_newfunc): Likewise.
2510         (demangled_hash_lookup): Likewise.
2511         (tlink_int): Likewise.
2512         (read_repo_file): Likewise.
2513         (recompile_files): Likewise.
2514         (demangle_new_symbols): Likewise.
2515         (scan_linker_output): Likewise.
2516         
2517 Tue Nov 17 17:13:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2518
2519         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
2520
2521 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2522
2523         * rs6000.c (output_mi_thunk): Improve test for local branch.
2524
2525 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2526
2527         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
2528
2529 Mon Nov 16 21:02:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2530
2531         * reload1.c (reload_reg_free_before_p): Delete.
2532         Changed all callers to use reload_reg_free_for_value_p instead.
2533         (reload_reg_free_for_value_p): Handle more reload types.
2534         A RELOAD_FOR_INPUT doesn't conflict with its
2535         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
2536         Add special case for OUT == const0_rtx.
2537         Added ignore_address_reloads argument.  Changed all callers.
2538
2539 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
2540
2541         * toplev.c (compile_file): Don't pedwarn about undefined static
2542         functions just because we passed -Wunused.
2543
2544 Mon Nov 16 04:41:41 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2545
2546         * function.c (purge_addressof_1): Unshare rtl created by
2547         store_bit_field.
2548
2549 Mon Nov 16 04:23:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2550
2551         * regmove.c (regmove_optimize): Don't do anything but
2552         optimize_reg_copy[123] when flag_regmove is not set.
2553
2554 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
2555
2556         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
2557         value in paradoxical SImode result, rather than truncating midpoint.
2558
2559 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
2560
2561         * alpha.c (reg_not_elim_operand): New.
2562         * alpha.h (PREDICATE_CODES): Add it.
2563         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
2564         for the multiplicand.
2565
2566 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2567
2568         * rs6000.md (movsf): Remove explicit secondary-reload-like
2569         functionality.  Only truncate SFmode store if in FPR.
2570         (movsf splitters): Combine const_double splitters.
2571         (movsf_hardfloat): Add GPR support.
2572
2573 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
2574
2575         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
2576         deprecate -mlive-g0 and -mbroken-saverestore.
2577         * t-splet (MULTILIB_OPTIONS): Likewise.
2578         
2579         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
2580         in a leaf function.  Clarify total_size/extra_size relationship.
2581
2582 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
2583
2584         * i386/cygwin32.asm: Delete.
2585         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
2586         * i386/cygwin32.h: Delete.
2587         * i386/cygwin.h: New file, renamed from cygwin32.h.
2588         * i386/t-cygwin32: Delete.
2589         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
2590         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
2591         * i386/x-cygwin32: Delete.
2592         * i386/x-cygwin: New file, renamed from x-cygwin32.
2593         * i386/xm-cygwin32: Delete.
2594         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
2595         renamed cygwin_ funcs for path translations.
2596         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
2597         * i386/winnt.c: Remove "32" from comment about cygwin.
2598         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
2599         * rs6000/cygwin32.h: Delete.
2600         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
2601         -D__CYGWIN__ to CPP_PREDEFINES.
2602         * rs6000/x-cygwin32: Delete.
2603         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
2604         * rs6000/xm-cygwin32: Delete.
2605         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
2606
2607         * configure.in: Check for cygwin* instead of cygwin32.  Account
2608         for the rename of cygwin-related config files to lose the "32"s.
2609         * configure: Regenerate.
2610
2611         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
2612         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
2613
2614 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
2615
2616         * Makefile.in (JAVAGC): New macro.
2617         * configure: Rebuilt.
2618         * configure.in: Recognize --enable-java-gc argument.  Subst
2619         `JAVAGC' variable.
2620
2621 Thu Nov 12 03:32:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2622
2623         Handle equivalences that have been obscured by gcse:
2624
2625         * reload1.c (reload): Handle equivalences set up in multiple places.
2626         * local-alloc.c (reg_equiv_init_insns): New variable.
2627         (no_equiv): New function.
2628         (update_equiv_regs): Handle equivalences set up in multiple places.
2629         Don't ignore an insn just because its destination is likely to be
2630         spilled.
2631
2632 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
2633
2634         * except.c (expand_eh_return): Readd force_operand call lost in
2635         Sept 15 change.
2636
2637 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2638
2639         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
2640
2641 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2642
2643         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
2644
2645 Mon Nov  9 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2646
2647         * regmove.c (regmove_optimize): Fix error in last change.
2648
2649 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
2650
2651         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
2652         offset in the .mask pseudo to compensate for frame pointer adjustments.
2653         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
2654         word swap arguments moved to/from FP registers.
2655         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
2656         
2657 Mon Nov 9 09:47:06 PST 1998 Jeff Law  (law@cygnus.com)
2658
2659         * version.c: Bump for snapshot.
2660
2661 Mon Nov 9 02:14:14 PST 1998 Jeff Law  (law@cygnus.com)
2662
2663         * version.c: Bump for snapshot.
2664
2665 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
2666
2667         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
2668         times, then it can not be completely replaced.
2669
2670 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
2671
2672         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
2673
2674 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2675
2676         * gansidecl.h: Prepend a "G" to the macro wrapping this file
2677         (to distinguish it from the macro wrapping ansidecl.h.)
2678         Include libiberty's ansidecl.h.  Remove all redundant definitions.
2679         Define the PROTO() style macros in terms of the PARAMS() ones.
2680
2681         
2682         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
2683         __STDC__, when deciding whether to use ANSI variable args.
2684         (emit_library_call_value): Likewise.
2685
2686         * cccp.c (error): Likewise.
2687         (warning): Likewise.
2688         (error_with_line): Likewise.
2689         (warning_with_line): Likewise.
2690         (pedwarn): Likewise.
2691         (pedwarn_with_line): Likewise.
2692         (pedwarn_with_file_and_line): Likewise.
2693         (fatal): Likewise.
2694
2695         * cexp.y (error): Likewise.
2696         (pedwarn): Likewise.
2697         (warning): Likewise.
2698
2699         * collect2.c (fatal_perror): Likewise.
2700         (fatal): Likewise.
2701         (error): Likewise.
2702
2703         * combine.c (gen_rtx_combine): Likewise.
2704
2705         * cpperror.c (cpp_message): Likewise.
2706         (cpp_fatal): Likewise.
2707
2708         * cpplib.c (cpp_error): Likewise.
2709         (cpp_warning): Likewise.
2710         (cpp_pedwarn): Likewise.
2711         (cpp_error_with_line): Likewise.
2712         (cpp_warning_with_line): Likewise.
2713         (cpp_pedwarn_with_line): Likewise.
2714         (cpp_pedwarn_with_file_and_line): Likewise.
2715
2716         * cpplib.h: Don't define PARAMS() macro.
2717
2718         * demangle.h: Likewise.
2719
2720         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
2721         when deciding whether to use ANSI variable args.
2722
2723         * emit-rtl.c (gen_rtx): Likewise.
2724         (gen_rtvec): Likewise.
2725
2726         * final.c (asm_fprintf): Likewise.
2727
2728         * fix-header.c (cpp_message): Likewise.
2729         (fatal): Likewise.
2730         (cpp_fatal): Likewise.
2731
2732         * gcc.c (concat): Likewise.
2733         (fatal): Likewise.
2734         (error): Likewise.
2735
2736         * genattr.c (fatal): Likewise.
2737
2738         * genattrtab.c (attr_rtx): Likewise.
2739         (attr_printf): Likewise.
2740         (fatal): Likewise.
2741
2742         * gencodes.c (fatal): Likewise.
2743
2744         * genconfig.c (fatal): Likewise.
2745
2746         * genemit.c (fatal): Likewise.
2747
2748         * genextract.c (fatal): Likewise.
2749
2750         * genflags.c (fatal): Likewise.
2751
2752         * genopinit.c (fatal): Likewise.
2753
2754         * genoutput.c (fatal): Likewise.
2755         (error): Likewise.
2756
2757         * genpeep.c (fatal): Likewise.
2758
2759         * genrecog.c (fatal): Likewise.
2760
2761         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
2762         deciding whether to declare `tree_node' and `rtx_def'.
2763
2764         * hash.h: Don't define stuff we get from gansidecl.h.
2765
2766         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
2767         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
2768         whether to use ANSI variable args.
2769         (error): Likewise.
2770
2771         * prefix.c (concat): Likewise.
2772
2773         * scan.h: Likewise.
2774
2775         * system.h: Likewise.
2776
2777         * toplev.c (error_with_file_and_line): Likewise.
2778         (error_with_decl): Likewise.
2779         (error_for_asm): Likewise.
2780         (error): Likewise.
2781         (fatal): Likewise.
2782         (warning_with_file_and_line): Likewise.
2783         (warning_with_decl): Likewise.
2784         (warning_for_asm): Likewise.
2785         (warning): Likewise.
2786         (pedwarn): Likewise.
2787         (pedwarn_with_decl): Likewise.
2788         (pedwarn_with_file_and_line): Likewise.
2789         (sorry): Likewise.
2790         (really_sorry): Likewise.
2791
2792         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
2793         whether to declare `tree_node' and `rtx_def'.
2794
2795         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
2796         deciding whether to use ANSI variable args.
2797         (build_nt): Likewise.
2798         (build_parse_node): Likewise.
2799
2800 Sun Nov 8 13:10:55 PST 1998 Jeff Law  (law@cygnus.com)
2801
2802         * version.c: Bump for snapshot.
2803
2804 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2805
2806         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
2807
2808 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2809
2810         * collect2.c (main, case 'b'): Use else if.
2811
2812 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2813
2814         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
2815         Arrange to include gansidecl.h in {ht}config.h & tm.h just
2816         before the config/ directory headers.
2817         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
2818         gansidecl.h in the list of dependencies.
2819
2820         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
2821         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
2822         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
2823         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
2824         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
2825         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
2826         Likewise.
2827
2828         * cccp.c: Don't include gansidecl.h.
2829         * cexp.y: Likewise.
2830         * collect2.c: Likewise.
2831         * config/c4x/c4x.c: Likewise.
2832         * config/v850/v850.h: Likewise.
2833         * cppalloc.c: Likewise.
2834         * cpperror.c: Likewise.
2835         * cppexp.c: Likewise.
2836         * cppfiles.c: Likewise.
2837         * cpphash.c: Likewise.
2838         * cpplib.c: Likewise.
2839         * cppmain.c: Likewise.
2840         * cppulp.c: Likewise.
2841         * demangle.h: Likewise.
2842         * doprint.c: Likewise.
2843         * dyn-string.c: Likewise.
2844         * eh-common.h: Likewise.
2845         * fix-header.c: Likewise.
2846         * frame.c: Likewise.
2847         * gcc.c: Likewise.
2848         * gcov.c: Likewise.
2849         * gen-protos.c: Likewise.
2850         * gencheck.c: Likewise.
2851         * halfpic.h: Likewise.
2852         * hash.c: Likewise.
2853         * machmode.h: Likewise.
2854         * mbchar.c: Likewise.
2855         * prefix.c: Likewise.
2856         * protoize.c: Likewise.
2857         * recog.h: Likewise.
2858         * rtl.h: Likewise.
2859         * scan-decls.c: Likewise.
2860         * tree.h: Likewise.
2861         * varray.h: Likewise.
2862         
2863 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
2864
2865         * i386.md (call_value_pop): If we're not popping anything,
2866         defer to call_value.
2867         (call_pop): Likewise defer to call.
2868
2869 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
2870
2871         * function.c (purge_addressof): Clear purge_addressof_replacements
2872         only after processing the whole function.
2873
2874 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
2875
2876         * reload1.c (reload): If we can not perform a particular elimination
2877         when we thought we could earlier, then we must always iterate through
2878         the loop at least one more time.
2879
2880 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
2881
2882         * alpha.c (add_operand): Simplify the CONST_INT match.
2883         (sext_add_operand): Correct typo in comparison by using
2884         CONST_OK_FOR_LETTER_P.
2885         * alpha.md (s?addq): Use sext_add_operand to allow the negative
2886         constant alternatives to be generated.
2887         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
2888         small constants, since the hw instructions do.
2889
2890 Fri Nov  6 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2891
2892         * reload1.c (emit_reload_insns):  When rewriting the SET_DEST of a
2893         previous insn to store directly into our reload register, make sure
2894         that if the source of the previous insn is a reload register, its
2895         spill_reg_store and spill_reg_stored_to values are cleared.
2896
2897 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2898
2899         * rs6000.md (floatunssidf2_internal splitter): Use base register
2900         operand, not hard-coded SP.
2901
2902 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2903
2904         * jump.c (calculate_can_reach_end): Fix thinko.
2905
2906 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
2907
2908         * reorg.c (fill_simple_delay_slots): Fix typo.
2909
2910         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
2911
2912 Fri Nov  6 00:10:00 1998  Jan Hubicka (hubicka@freesoft.cz)
2913
2914         * i386.md (extendsidi2): Use # in the output template.
2915         (extendsidi splitters): New splitters.
2916
2917 Thu Nov  5 11:13:27 1998  Nick Clifton  <nickc@cygnus.com>
2918
2919         * configure.in: Use unknown-elf.h as tm_file for arm-elf
2920         configuarions.
2921         * configure: Regenerate.
2922
2923 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2924
2925         * jump.c (init_label_info, delete_barrier_successors,
2926         mark_all_labels, delete_unreferenced_labels,
2927         delete_noop_moves, calculate_can_reach_end): New functions broken
2928         out of jump_optimize.
2929         (jump_optimize): Use them.
2930
2931 Thu Nov  5 07:57:45 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
2932
2933         * except.c (expand_fixup_region_end): Make sure outer context labels
2934         are not issued in an inner context during cleanups.
2935
2936 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
2937
2938         * alpha.md (addsi3, subsi3): No new temporaries once cse is
2939         no longer expected.
2940
2941 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
2942
2943         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
2944         to expose this midpoint to CSE.
2945
2946 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2947
2948         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
2949
2950 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2951
2952         * configure.in: Bring over gcc2 change of Nov 19 1997.
2953
2954 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
2955
2956         * toplev.c (output_lang_identify): Make definition dependent on
2957         ASM_IDENTIFY_LANGUAGE.
2958
2959         * print-rtl.c (spaces): Make static.
2960
2961 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
2962
2963         * extend.texi: Clarify proper uses for register clobbers in asms.
2964
2965 Wed Nov  4 22:16:36 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2966
2967         * recog.h (enum op_type): Define.
2968         (constrain_operands): Adjust prototype.
2969         (recog_op_type): Declare new variable.
2970         * recog.c (recog_op_type): New variable.
2971         (insn_invalid_p): Allow modifying an asm statement after reload.
2972         (extract_insn): Set up recog_op_type.
2973         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
2974         Don't compute operand types, use recog_op_type.
2975         Use the information computed by extract_insn instead of the previous
2976         method of finding it by insn code number.
2977         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
2978         * reorg.c (fill_slots_from_thread): Likewise.
2979         * reload1.c (reload_as_needed): Likewise.
2980         (gen_reload): Likewise.
2981         (inc_for_reload): Likewise.
2982         (reload_cse_simplify_operands): Likewise.
2983         Use the information computed by extract_insn instead of the previous
2984         method of finding it by insn code number.
2985         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
2986         insn_extract.
2987         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
2988         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
2989         Use the information computed by extract_insn instead of the previous
2990         method of finding it by insn code number.
2991         * regmove.c (find_matches): Likewise.  Change meaning of the return
2992         value to be nonzero if the optimization can be performed, zero if
2993         not.  All callers changed.
2994         Shorten some variable names to fix formatting problems.
2995         (regmove_optimize): Shorten some variable names to fix formatting
2996         problems.
2997         Use the information computed by extract_insn instead of the previous
2998         method of finding it by insn code number.
2999         * regclass.c (scan_one_insn): Likewise.
3000         (record_reg_classes): Don't compute operand types, use recog_op_type.
3001         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
3002         recog_constraints instead.
3003
3004 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
3005
3006         * rtl.h (flow2_completed): Declare.
3007         * flow.c (flow2_completed): Definition.
3008         * toplev.c (rest_of_compilation): Set and clear flow2_completed
3009         as necessary.
3010
3011 Wed Nov  4 19:15:37 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
3012
3013         * Makefile.in (libcpp.a): Ranlib libcpp.a
3014
3015         * cppulp.c (user_label_prefix): Initialize.
3016         
3017 Wed Nov  4 19:07:08 1998   John Wehle  (john@feith.com)
3018
3019         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
3020         at a RETURN if current_function_sp_is_unchanging is set.
3021
3022 Wed Nov  4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
3023
3024         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
3025
3026 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
3027
3028         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
3029         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
3030         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
3031         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
3032         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
3033         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
3034         to __CYGWIN32__.
3035         (LIB_SPEC): Handle -mno-cyginw option.
3036         (LINK_SPEC): Handle -mdll.
3037
3038 Wed Nov  4 22:56:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3039
3040         * reload.c (find_reloads): Fix test for usage by other reload
3041         to handle secondary reloads properly.
3042
3043 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3044
3045         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
3046         intermediate structure which has exactly the members provided by
3047         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
3048         static intermediate structure.
3049         
3050         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
3051         from the intermediate structure.  Do the same analogous fix in
3052         the case where ELIMINABLE_REGS is not defined.
3053
3054 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
3055
3056         * pa.h (SELECT_SECTION): Fix thinko.
3057
3058 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
3059
3060         * dwarf2out.c (output_call_frame_info): Comments on last change.
3061
3062 Tue Nov  3 07:51:43 1998  Richard Earnshaw (rearnsha@arm.com)
3063
3064         * arm.c (add_constant): When taking the address of an item in the
3065         pool, get the mode of the item addressed.
3066
3067         * arm.c (final_prescan_insn case INSN): If an insn doesn't 
3068         contain a SET or a PARALLEL, don't consider it for conditional
3069         execution.
3070
3071         Restore ABI compatibility for NetBSD.
3072         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
3073         arm.h
3074         (RETURN_IN_MEMORY): Likewise.
3075
3076 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
3077
3078         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
3079         (m32r_output_block_move): Rewrite bytes < 4 handling.
3080
3081 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3082
3083         * configure.in: Call AC_FUNC_VFORK.
3084
3085         * collect2.c: Define VFORK_STRING as a printable string for
3086         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
3087         defined, include vfork.h.  If VMS is defined, define vfork()
3088         appropriately.  Remove vfork check on USG, we're using autoconf.
3089         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
3090         checking locally what string to pass.
3091         (scan_prog_file): Likewise.
3092         (scan_libraries): Likewise.
3093
3094         * gcc.c: Remove vfork check on USG, we're using autoconf.
3095         Besides, no calls to vfork/fork occur in this file.
3096
3097         * protoize.c: Likewise.
3098
3099 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3100
3101         * configure.in (DEFAULT_LINKER): renamed from LD
3102         (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
3103         (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
3104         * configure: rebuilt
3105
3106 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3107
3108         * BUGS: fix the regexp for `more' to find the appropriate node.
3109         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
3110
3111         * BUGS: added link to the WWW FAQ
3112
3113 Sun Nov 1 18:27:15 PST 1998 Jeff Law  (law@cygnus.com)
3114
3115         * version.c: Bump for snapshot.
3116
3117 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
3118
3119         * From Christian Gafton:
3120         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
3121         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
3122         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
3123
3124 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
3125
3126         * c-common.c (c_get_alias_set): Allow all type-punning through
3127         unions.  Don't get confused about the type of a bit-field, despite
3128         the antics of build_modify_expr.
3129
3130 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley <jpr@jpr.com>
3131
3132         * fixinc.sco: Paramaterize #include_next values.
3133         * fixinc/fixinc.sco: Likewise.
3134
3135 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
3136
3137         * toplev.c (rest_of_compilation): No longer set reload_completed.
3138         * reload1.c (reload): Set it here.  Perform instruction splitting
3139         after reload has completed if we will be running the scheduler
3140         again.
3141
3142 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
3143
3144         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
3145         EH region if exceptions are enabled and we're performing cross
3146         jump optimizations.
3147         (find_cross_jump): Exit loop if the insns are in different EH regions.
3148
3149 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
3150
3151         * dwarf2out.c (output_call_frame_info): Use
3152         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
3153
3154 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3155
3156         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
3157         * c-common.c (check_format_info): Don't check for the 'x'
3158         format character twice, instead check for 'x' and 'X'
3159
3160 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
3161
3162         * configure.in (assembler features): Also make gas is configured if
3163         we find it in the souce tree.
3164
3165 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
3166
3167         * i386.c (i386_comp_type_attributes): Compare whether the 
3168         attributes are defined, not their tree nodes.
3169
3170 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3171
3172         * configure.in (gxx_include_dir): bitten by autoconf quoting
3173         characters :-(
3174         * configure: rebuilt
3175
3176 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3177
3178         * configure.in: Ignore non-absolute value in $AS.
3179
3180 Fri Oct 30 00:54:25 1998  Peter Jakubek <pjak@snafu.de>
3181
3182         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
3183
3184 Fri Oct 30 00:42:34 1998  Mark Elbrecht <snowball3@usa.net>
3185
3186         * configure.in (msdosdjgpp): Set exeext and target_alias.
3187
3188 Thu Oct 29 23:55:43 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3189
3190         * flow.c (XNMALLOC): New macro.
3191         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
3192         static variables.
3193         (add_edge, add_edge_to_label): New static functions.
3194         (free_bb_memory): New function.
3195         (flow_delete_insn): Delete function.
3196         (basic_block_drops_in): Delete variable.
3197         (find_basic_blocks): Allocate and initialize basic_block_head,
3198         basic_block_succ.  Don't allocate basic_block_drops_in.
3199         Call free_bb_memory at the beginning.
3200         (find_basic_blocks_1): Don't do multiple passes.
3201         Delete code to compute basic_block_drops_in.
3202         After calling make_edges, mark blocks reached by current block live.
3203         Update test for unreachable live blocks.
3204         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
3205         changed.
3206         Simplify to call add_edge_to_label when a LABEL_REF is found.
3207         (make_edges): Simplify to call add_edge_to_label instead of
3208         mark_label_ref most of the time.
3209         Compute here whether control drops into the next block.
3210         (delete_unreachable_blocks): Return void.  All callers changed.
3211         Delete unreachable blocks in reverse order.
3212         After deleting all unreachable blocks, renumber the remaining ones
3213         and update n_basic_blocks.
3214         (delete_block): Speed up deletion a bit.
3215         Don't set basic_block_drops_in for deleted blocks.
3216         (free_basic_block_vars): Don't free basic_block_drops_in.
3217         (life_analysis_1): Update to use new edge representation.
3218         (dump_flow_info): Delete code to print basic block info; call
3219         dump_bb_data instead.
3220         (compute_preds_succs): Delete code to recompute basic_block_drops_in
3221         and uid_block_number.
3222         Simply copy the previously computed cfg.
3223         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
3224         Print register lifetime information if LIVE_INFO is nonzero.
3225         * basic-block.h (dump_bb_data): Adjust prototype.
3226         * gcse.c (gcse_main): Update call to dump_bb_data.
3227         * rtl.h (free_bb_memory): Declare.
3228         * toplev.c (rest_of_compilation): Call free_bb_memory.
3229
3230         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
3231         (update_eliminable_offsets): Don't compute it.
3232         (set_initial_elim_offsets): Don't initialize it.
3233         Break out some code into set_initial_label_offsets so the rest of
3234         this function can be called from reload_as_needed.
3235         Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
3236         ELIMINABLE_REGS isn't.
3237         (set_initial_label_offsets): New function, broken out of
3238         set_initial_elim_offsets.
3239         (set_offsets_for_label): New function, broken out of set_label_offsets
3240         and reload_as_needed.
3241         (reload): Call the two new functions.
3242         (reload_as_needed): Call set_initial_elim_offsets instead of
3243         duplicating the code.  Likewise for set_offsets_for_label.
3244
3245         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
3246         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
3247         any hard reg, reg_reloaded_dead contains valid data.
3248
3249 Thu Oct 29 22:30:54 1998  Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
3250
3251         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
3252         "stdcall" and "cdecl" attributes.
3253
3254 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
3255
3256         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
3257         handle deleted no-op moves of hard registers.
3258         * haifa-sched.c (update_flow_info): Likewise.
3259
3260 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
3261
3262         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
3263         of the sequences to reload the HILO register which do not actually
3264         reference HILO.
3265
3266 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
3267
3268         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
3269
3270 Thu Oct 29 14:10:22 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
3271
3272         * except.c (emit_eh_context): Make the EH context register stay alive
3273         at -O0 so stupid.c doesn't get confused.
3274
3275 1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3276
3277         * emit-rtl.c (try_split): Do not try to split a BARRIER.
3278
3279 Thu Oct 29 01:33:54 1998  Jan Hubicka <hubicka@freesoft.cz>
3280                           Jeffrey A Law  (law@cygnus.com)
3281
3282         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
3283         (zero_extendsidi2): Use # in output template and handle completely by
3284         splits.
3285         (zero_extend splitters): New define_splits.
3286         (ashiftrt_32): New pattern.
3287
3288 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
3289
3290         * tree.c (append_random_chars): New fn.
3291         (get_file_function_name_long): Use it.
3292
3293 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
3294
3295         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
3296         (LIBCPP_OBJS): New.  Add cppulp.o.
3297         (cppmain, fix-header): Depend on and use libcpp.a.
3298         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
3299         of the individual object files.
3300         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
3301         last.
3302
3303         * cccp.c (user_label_prefix): New.
3304         (main): Set it off -f*leading-underscore.
3305         (special_symbol): Use it.
3306         * cpplib.c (special_symbol): Likewise.
3307         (cpp_handle_option): Handle -f*leading-underscore.
3308         * cppulp.c: New file.
3309
3310         * output.h (user_label_prefix): Declare it.
3311         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
3312         * toplev.c (f_options, main): Handle -f*leading-underscore.
3313
3314         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
3315         referencing USER_LABEL_PREFIX directly.
3316         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
3317         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
3318         * final.c (asm_fprintf): Use user_label_prefix instead.
3319         * arm/thumb.c (thumb_print_operand): Likewise.
3320
3321         * gcc.c (default_compilers): Pass -f*leading-underscore on to
3322         cpp wherever appropriate.
3323
3324 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
3325
3326         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
3327         specific compiler switches.
3328
3329 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
3330
3331         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
3332         of rtl.h.
3333
3334 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3335
3336         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
3337         structure which has exactly the members provided by EXTRA_SPECS.
3338         Xmalloc() the real `extra_specs', and initialize it from this
3339         intermediate structure.
3340
3341         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
3342
3343         * mips.h  (EXTRA_SPECS): Likewise.
3344
3345         * sparc.h (EXTRA_SPECS): Likewise.
3346
3347 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3348     
3349         * function.c (purge_addressof_1): Instead of aborting when a
3350         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
3351         work just put the ADDRESSOF on stack.  Otherwise remember all such
3352         successfull replacements, so that exactly the same replacements
3353         can be made on the REG_NOTEs.  Remove the special case for CALL
3354         insns again.
3355         (purge_addressof_replacements): New variable.
3356         (purge_addressof): Clear it at end.
3357
3358 1998-10-28 16:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3359
3360          * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
3361            (lang_init): Call check_newline always.
3362          * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
3363            cpp_start_read, set yy_cur and yy_lim to read from
3364            parse_in.token_buffer, so that we'll see the first #line
3365            directive.
3366          * cpplib.c (cpp_start_read): finclude the main input file
3367            before processing -include/-imacros.  Process -imacros and
3368            -include separately, and handle -include by stacking a
3369            buffer for the file in question as if it'd been #included.
3370          * toplev.c (documented_lang_options) Recognize -H when
3371            USE_CPPLIB is on.
3372
3373 1998-10-28 16:09 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3374
3375          * cpplib.c: Merge do_once into do_pragma.  Break file handling
3376            code out of do_include.
3377            Move append_include_chain, deps_output,
3378            file_cleanup, redundant_include_p, import_hash,
3379            lookup_import, add_import, read_filename_string, read_name_map,
3380            open_include_file, finclude, safe_read to cppfiles.c.
3381            Move prototypes for deps_output, append_include_chain,
3382            finclude to cpplib.h.  Move definition of struct
3383            file_name_list there also.
3384
3385          * cppfiles.c: New file.  Contains all the above functions
3386            broken out of cpplib.c; also hack_vms_include_specification
3387            from cccp.c and find_include_file, a new function broken out of
3388            do_include.
3389
3390          * Makefile.in (cppmain): Depend on cppfiles.o.
3391            (fix-header): Likewise.
3392            (cppfiles.o): New target.
3393          * configure.in (--enable-c-cpplib): Add cppfiles.o to
3394            extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
3395
3396 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
3397
3398         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
3399         if pending_types is non-zero.
3400         (dwarfout_finish): Verify pending_types is zero before finishing.
3401
3402 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
3403
3404         * expr.c (convert_move): Use shifts to perform the move if a
3405         suitable extend pattern cannot be found.  Code written by
3406         Richard Henderson <rth@cygnus.com>.
3407
3408 Wed Oct 28 03:59:29 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3409
3410         * regclass.c (renumber, regno_allocated): New static variables, moved
3411         out of allocate_reg_info.
3412         (allocate_reg_info): Move these two variables outside the function.
3413         Move code to free memory into new function free_reg_info.
3414         (free_reg_info): New function, broken out of allocate_reg_info.
3415         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
3416         * rtl.h (allocate_reg_info): Don't declare.
3417         (free_reg_info): Declare.
3418
3419         * final.c (cleanup_subreg_operands):  ASM_INPUTs need no treatment.
3420
3421 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
3422
3423         * toplev.c (compile_file): Temporarily revert last change.
3424
3425 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
3426
3427         * c-typeck.c (convert_for_assignment): Parenthesize.
3428
3429 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3430
3431         * reload1.c (delete_output_reload): Avoid ambigous else.
3432
3433 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
3434
3435         * toplev.c (compile_file): Call allocate_reg_info to free register
3436         table memory.
3437         * rtl.h (allocate_reg_info): Declare.
3438
3439         * PROJECTS: Remove entry for local spilling.
3440
3441         * final.c (cleanup_subreg_operands): New function.
3442         (final_scan_insn): Use it.
3443         (alter_subreg): Clear the "used" field when we turn a SUBREG into
3444         a REG.
3445         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
3446         operands when reload has finished.
3447         * reload.h (cleanup_subreg_operands): Declare..
3448         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
3449         reload.  Handled in reload itself.
3450
3451 Tue Oct 27 23:32:34 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3452
3453         * reload1.c (verify_initial_offsets): New function.
3454         (reload): Call it after reload_as_needed.  Also verify that the frame
3455         size stays constant during reload_as_needed.
3456         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
3457
3458         * reload.h (struct insn_chain): Add need_operand_change element.
3459         * reload1.c (new_insn_chain): Clear it.
3460         (calculate_needs_all_insns): Set it; don't overload need_reload.
3461         (reload_as_needed): Use it.
3462
3463         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
3464         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
3465         and reload_address_index_reg_class.
3466         (find_reloads_address_1): Likewise.
3467         * reload.h (reload_address_base_reg_class,
3468         reload_address_index_reg_class): Don't declare.
3469         * reload1.c (reg_old_renumber, pseudo_previous_regs,
3470         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
3471         (used_spill_regs): Now static.
3472         (reload_address_base_reg_class, reload_address_index_reg_class,
3473         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
3474         basic_block_needs, max_needs, group_size, group_mode, max_groups,
3475         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
3476         forbidden_regs):
3477         Deleted variables.
3478         (init_reload): Delete code to compute base/index reg classes.
3479         (reload): Delete variable J.
3480         Delete code to manage basic_block_needs.
3481         Don't compute regs_explicitly_used.
3482         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
3483         pseudo_previous_regs.
3484         Initialize bad_spill_regs_global.
3485         Don't call order_regs_for_reload here.
3486         Don't initialize spill_reg_order and n_spills.
3487         Don't forbid explicitly used regs to be used for spill regs.
3488         Change main loop to infinite loop, with explicit break statements.
3489         Make SOMETHING_CHANGED variable local to that loop.
3490         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
3491         max_groups_insn, max_nongroups_insn, group_size, group_mode.
3492         Make sure spilled_speudos is cleared before calling spill_hard_reg or
3493         new_spill_reg.
3494         Don't call dump_needs.
3495         Delete code to reset potential_reload_regs.
3496         Delete code to terminate loop conditional on the global needs variables
3497         showing no further needs.
3498         (calculate_needs_all_insns): Return void.  All callers changed.
3499         Initialize somehing_needs_elimination here, not in reload.
3500         Delete avoid_return_reg kludge.
3501         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
3502         All callers changed.
3503         Initialize the group_mode and group_size elements of the arg CHAIN.
3504         Delete code to manage basic_block_needs.
3505         Operate on elements of CHAIN instead of global variables.
3506         Delete avoid_return_reg kludge.
3507         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
3508         All callers changed.
3509         Operate on elements of CHAIN instead of global variables.
3510         Delete special SMALL_REGISTER_CLASSES code.
3511         Delete spill_failure code; now in new_spill_reg.
3512         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
3513         All callers changed.
3514         Operate on elements of CHAIN instead of global variables.
3515         (maybe_mark_pseudo_spilled): New static function.
3516         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
3517         All callers changed.
3518         Operate on elements of CHAIN instead of global variables.
3519         Call order_regs_for_reload here, not in reload.
3520         Initialize spill_reg_order and n_spills.
3521         Simplify test whether an asm insn is involved.
3522         Delete spill_failure code; now in new_spill_reg.
3523         Call maybe_mark_pseudo_spilled for everything marked as live in
3524         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
3525         used_spill_regs.
3526         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
3527         compiler from optimizing this function (now unused) away.
3528         Operate on elements of CHAIN instead of global variables.
3529         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
3530         changed.
3531         Operate on elements of CHAIN instead of global variables.
3532         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
3533         take CHAIN arg.  All callers changed.
3534         Operate on elements of CHAIN instead of global variables.
3535         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
3536         CHAIN, NONGROUP args.  Return void.  All callers changed.
3537         Verify caller isn't trying to spill a pseudo.
3538         Simplify test for illegal reg, just use bad_spill_regs.
3539         Generate better error messages.
3540         Operate on elements of CHAIN instead of global variables.
3541         Mark spilled register in CHAIN's used_spill_regs element.
3542         Don't call spill_hard_reg.
3543         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
3544         Mark spilled hard regs in bad_spill_regs_global.
3545         Mark affected pseudos in spilled_pseudos, but don't spill them.
3546         (ior_hard_reg_set): New static function.
3547         (finish_spills): Return int.  All callers changed.
3548         Compute spill_reg_order, n_spills and spill_regs here.  Also update
3549         regs_ever_live for regs used as spills.
3550         For every pseudo in spilled_pseudos, spill it and mark the previous
3551         hard reg it had in pseudo_previous_regs.  Compute which hard regs
3552         arseudo): New static function.
3553         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
3554         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
3555         hard registers explicitly used across the current insn into the set.
3556         Compute hard_reg_n_uses taking only pseudos live across this insn
3557         into account.
3558         Tweak sorting of potential_reload_regs.
3559         (compare_spill_regs): Delete function.
3560         (reload_as_needed): Don't sort the spill_regs array, it's computed
3561         in proper order in finish_spills.
3562         Delete avoid_return_reg kludge.
3563         Delete code to manage basic_block_needs.
3564         (allocate_reload_reg): Minor speed/readability tweaks.
3565         Operate on elements of CHAIN instead of global variables.
3566         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
3567         Delete avoid_return_reg kludge.
3568         Initialize reload_reg_used from CHAIN's used_spill_regs element.
3569         Delete unused label FAIL.
3570         (reload_combine): Replce reload_address_index_reg_class with
3571         INDEX_REGS.
3572         Don't use used_spill_regs to determine information about lifetime of
3573         hard regs.
3574
3575 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
3576         
3577         * toplev.c (display_help): Ignore empty target specific
3578         options, and if -W is also specified on the command line then
3579         display undocumented options.
3580
3581         * config/arm/arm.c: Updated with changes in devo sources.
3582         * config/arm/arm.h: Updated with changes in devo sources.
3583         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
3584         * config/arm/lib1thumb.asm: Add ELF support.
3585
3586 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3587
3588         * collect2.c (aix64_flag): New variable.
3589         (main, case 'b'): Parse it.
3590         (GCC_CHECK_HDR): object magic number must match mode.
3591         (scan_prog_file): Only check for shared object if valid header.
3592         Print debugging if header/mode mismatch.
3593
3594 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
3595
3596         Added support for arm-elf-linux configuration, submitted by Philip
3597         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
3598         code developed by Catherine Moore <clm@cygnus.com>.  The following
3599         files are affected: 
3600
3601         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
3602         targets. 
3603
3604         * configure: Regenerated.
3605         
3606         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
3607         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
3608         definitions conditional on their not having been already defined.
3609
3610         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
3611         and .type directives, and add "(PLT)" qualification to function
3612         calls.
3613
3614         * config/arm/linux.h: Deleted.  This file is now superceeded by
3615         either linux-elf.h or linux-aout.h.
3616
3617         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
3618         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
3619         support).
3620         Move definitions from old linux.h file here.
3621         
3622         * config/arm/elf.h: New file.  Generic ARM/ELF support.
3623         
3624         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
3625         
3626         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
3627         
3628         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
3629         using the 26bit APCS.
3630         
3631         * config/arm/unknown-elf.h: New file.  Support for OS'es other
3632         than Linux with ELF.
3633
3634         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
3635         builds.
3636         
3637         * config/arm/coff.h: Include aout.h for basic assembler macros.
3638         Add support for -mstructure_size_boundary=<n> command line option.
3639         
3640         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
3641         command line option.  Make macro definitions conditional on their
3642         not having been already defined. 
3643
3644         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
3645         command line option.
3646
3647         
3648 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
3649
3650         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
3651         has been changed to not include a newline. Use this macro instead.
3652         (output_enumeral_list, const_value_attribute, name_attribute,
3653         comp_dir_attribute, prototyped_attribute, producer_attribute,
3654         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
3655         dwarfout_file_scope_decl, generate_new_sfname_entry,
3656         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
3657         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
3658
3659 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
3660
3661         * combine.c (subst): Process the inputs to a parallel asm_operands
3662         only once.
3663
3664 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
3665
3666         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
3667
3668 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
3669
3670         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
3671
3672 Mon Oct 26 00:36:58 PST 1998 Jeff Law  (law@cygnus.com)
3673
3674         * version.c: Bump for snapshot.
3675
3676 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
3677
3678         * stmt.c (expand_fixup): Set fixup->before_jump to a
3679         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
3680
3681 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3682
3683         * Makefile.in (recog.o): Depend on toplev.h.
3684         (insn-emit.o): Depend on recog.h.
3685         (insn-peep.o): Depend on recog.h and insn-config.h.
3686
3687         * combine.c (simplify_set): Remove unused variable `scratches'.
3688
3689         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
3690         and `idx' in macro conditional controlling their use.
3691
3692         * genemit.c (main): Make the generated output file include
3693         recog.h.  Don't have it declare `insn_operand_constraint', since
3694         we get it from recog.h.
3695
3696         * genpeep.c (main): Make the generated output file include
3697         insn-config.h and recog.h.
3698
3699         * recog.c: Include toplev.h.
3700         (extract_insn): Remove unused variable `p'.
3701
3702         * regclass.c (fix_register): Add missing braces around initializer
3703         for `what_option'.
3704         (allocate_reg_info): Move variable `i' into the scope where it is
3705         used.  Change its type to `size_t'.
3706
3707 Sun Oct 25 13:10:15 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3708
3709         * reload.c (push_reload): When merging reloads, make sure
3710         that reload_in_reg and reload_in are from the same reload in
3711         all cases.
3712
3713 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
3714
3715         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
3716         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
3717
3718 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3719
3720         * loop.c (loop_has_tablejump): New variable.
3721         (prescan_loop): Scan for it.
3722         (insert_bct): Replace explicit scan with use of it.
3723         * regclass.c (regclass): Restore loop variable j.
3724         (record_reg_classes): Deterine op_types modifiers and initialize
3725         classes[i] before matching constraints.  Handle matching
3726         constraints 5-9.
3727         
3728 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
3729
3730         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
3731         subreg support.
3732
3733 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3734
3735         * mips.h (EXTRA_SPECS): Add missing initializers.
3736
3737 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3738
3739         * sparc.h (EXTRA_SPECS): Add missing initializers.
3740         (sparc_defer_case_vector): Provide a prototype.
3741
3742         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
3743         comparing it to the result of a pointer subtraction.
3744
3745 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3746
3747         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
3748         the argument to (unsigned char).
3749
3750         * alpha.h (EXTRA_SPECS): Add missing initializers.
3751         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
3752         format specifier.
3753
3754 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
3755
3756         * flow.c (life_analysis_1): Enable "rescan" code after reload.
3757         (propagate_block): Delete dead code after reload.
3758
3759         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
3760         back Oct 15, 1998 change.  
3761         * haifa-sched.c (update_flow_info): Likewise.
3762         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
3763
3764         * mn10200.md (truncated shift): Accept constant inputs too.
3765
3766 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
3767
3768         * machmode.h (mode_mask_array): No longer const.
3769         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
3770
3771 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
3772
3773         * frame.c: Somewhat explain `FDE'.
3774         Suggested by Brendan Kehoe
3775
3776 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
3777
3778         * expr.c (pending_chain): Move up.
3779         (save_expr_status): Do save pending_chain.
3780         (restore_expr_status): And restore it.
3781         * function.h (struct function): Add pending_chain.
3782
3783 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3784
3785         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
3786         did not match the code.
3787
3788 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3789
3790         * regclass.c (regclass): Break out some code into new function
3791         scan_one_insn, and into regclass_init.
3792         (init_cost): New static variable, moved out of regclass.
3793         (regclass_init): Initialize it here, not in .
3794         (scan_one_insn): New static function, broken out of regclass.
3795         * recog.c (apply_change_group): Break out some code into new
3796         function insn_invalid_p.
3797         (insn_invalid_p): New static fn, broken out of apply_change_group.
3798
3799 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
3800
3801         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
3802         reg_reloaded_contents matches incremented pseudo.
3803
3804         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
3805
3806 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3807
3808         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
3809         addressing modes with side effects.  These are currently
3810         placeholders for the C4x target.
3811
3812 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3813
3814         * loop.c (express_from): Make sure that when generating a PLUS of
3815         a PLUS, any constant expression appears on the outermost PLUS.
3816
3817 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
3818
3819         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
3820         works if "$(srcdir)" != ".".
3821
3822 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
3823
3824         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
3825         existing SUBREG if we can, otherwise abort.
3826
3827 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
3828
3829         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
3830         `restrict' is applied to a non-pointer variable.
3831
3832 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
3833
3834         * invoke.texi: Document -flang-isoc9x.
3835
3836         * Makefile.in (OBJS): Add splay-tree.o.
3837         (c-common.o): Depend on rtl.h.
3838         (splay-tree.o): List dependencies and provide build rule.
3839         
3840         * rtl.h (record_alias_subset): New function.
3841         * alias.c: Include splay-tree.h.
3842         (alias_set_entry): New type.
3843         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
3844         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
3845         (mems_in_disjoin_alias_sets_p): New function.
3846         (alias_set_compare): Likewise.
3847         (insert_subset_children): Likewise.
3848         (get_alias_set_entry): Likewise.
3849
3850         * tree.h (TYPE_RESTRICT): New macro.
3851         (TYPE_UNQUALIFIED): New manifest constant.
3852         (TYPE_QUAL_CONST): Likewise
3853         (TYPE_QUAL_VOLATILE): Likewise.
3854         (TYPE_QUAL_RESTRICT): Likewise.
3855         (tree_type): Add restrict_flag.  Reduce count of free bits.
3856         (DECL_POINTER_ALIAS_SET): New macro.
3857         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
3858         (tree_decl): Add pointer_alias_set.
3859         (build_qualified_type): New function.
3860         (build_type_variant): Define in terms of build_qualified_type.
3861         * tree.c (set_type_quals): New function.
3862         (make_node): Initializae DECL_POINTER_ALIAS_SET.
3863         (build_type_attribute_variant): Use build_qualified_type and
3864         set_type_quals.
3865         (build_type_variant): Rename, and modify, to become...
3866         (build_qualified_type): New function.
3867         (build_complex_type): Use set_type_quals.
3868
3869         * c-tree.h (C_TYPE_OBJECT_P): New macro.
3870         (C_TYPE_FUNCTION_P): Likewise.
3871         (C_TYPE_INCOMPLETE_P): Likewise.
3872         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
3873         (c_apply_type_quals_to_decl): New function.
3874         (c_build_qualified_type): New function.
3875         (c_build_type_variant): Define in terms of c_build_qualified_type.
3876         (flag_isoc9x): Declare.
3877         * c-typeck.c (qualify_type): Use c_build_qualified_type.
3878         (common_type): Change to use TYPE_QUALS.
3879         (comptypes): Likewise.
3880         (convert_for_assignment): Likewise.
3881         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
3882         * c-decl.c (flag_isoc9x): Define.
3883         (c_decode_option): Handle -flang-isoc9x.
3884         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
3885         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
3886         * c-lex.c (init_lex): Deal with restrict.
3887         (init_lex): Don't treat restrict as a reserved word in
3888         -traditional mode, or without -flang-isoc9x.
3889         * c-lex.h (rid): Add RID_RESTRICT.
3890         * c-parse.gperf (restrict, __restrict, __restrict__): Make
3891         equivalent to RID_RESTRICT.
3892         * c-parse.in (TYPE_QUAL): Update comment.
3893         * c-common.c: Include rtl.h.
3894         (c_find_base_decl): New function.
3895         (c_build_type_variant): Rename, and modify, to become ...
3896         (c_build_qualified_type): New function.
3897         (c_apply_type_quals_to_decl): Likewise.
3898         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
3899         a particular alias set for the reference.
3900         * toplev.c (documented_lang_options): Add -flang-isoc9x.
3901
3902 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
3903
3904         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
3905         command line switches.
3906
3907 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
3908
3909         * reload.c (loc_mentioned_in_p): Add missing braces to bind
3910         else to correct if.
3911
3912 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
3913
3914         * gcc.c (option_map): Added --classpath and --CLASSPATH.
3915
3916 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
3917
3918         * regclass.c (fix_register): Add error message.
3919         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
3920           new error message.
3921
3922 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3923
3924         * c-decl.c (warn_missing_noreturn): New global variable.
3925         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
3926         (finish_function): Implement missing noreturn warning.
3927
3928         * c-tree.h (warn_missing_noreturn): Declare extern.
3929
3930         * invoke.texi: Document new flags.
3931
3932         * toplev.c (documented_lang_options): Add description.
3933
3934 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3935
3936         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
3937         loop optimization stable for the C4x.
3938         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
3939         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
3940         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
3941         loop optimization).
3942         (c4x_address_conflict): Be more paranoid when packing a volatile
3943         memref in a parallel load/store.
3944
3945 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3946
3947         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
3948         repeat_block_filler): Deleted.
3949         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
3950         Condition code not set if destination register from 'c' class.
3951         (*subbqi3_carry_clobber): Fix typo.
3952
3953 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3954
3955         * reorg.c (steal_delay_list_from_target) Check for insns that
3956         modify the condition codes and effect the direction of the jump
3957         in the sequence.
3958
3959 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
3960
3961         * function.c (purge_addressof_1): Replace call to
3962         emit_insns_before() with emit_insn_before().
3963
3964 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
3965
3966         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
3967
3968 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
3969
3970         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
3971
3972 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
3973
3974         * gcse.c (compute_hash_table): Correctly identify hard regs which are
3975         clobbered across calls.
3976
3977         * loop.c (scan_loop): Be more selective about what invariants are
3978         moved out of a loop.
3979
3980 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
3981
3982         * version.c: Bump for snapshot.
3983
3984 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
3985
3986         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
3987         static eh_context structure.
3988
3989 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
3990
3991         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
3992         callers changed.
3993         (try_combine): Don't update max_scratch.
3994         * flow.c (max_scratch, num_scratch): Delete variables.
3995         (life_analysis_1): Don't initialize max_scratch.
3996         (propagate_block): Don't update max_scratch.
3997         (mark_set_1): Don't increment num_scratch.
3998         * regs.h (max_scratch): Delete declaration.
3999
4000 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
4001
4002         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
4003         is nonzero.  This is temporary!
4004
4005         * sched.c (update_flow_info): Handle death notes made invalid by
4006         instruction splitting.  Partially reverts Oct 15, 1998 patch.
4007         * haifa-sched.c (update_flow_info): Likewise.
4008
4009 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
4010
4011         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
4012         if it has a nonzero DECL_INITIAL.
4013
4014 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4015
4016         * Makefile.in (flow.o): Depend on recog.h.
4017
4018         * cpplib.h (directive_table): Add missing initializiers.
4019         (finclude): Change type of variable `bsize' to size_t.
4020         
4021         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
4022
4023         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
4024
4025         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
4026         `int' when comparing against one.
4027         (cpp_file_line_for_message): Mark parameter `pfile' with
4028         ATTRIBUTE_UNUSED.
4029         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
4030
4031         * flow.c: Include recog.h.
4032         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
4033
4034         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
4035         `f' with ATTRIBUTE_UNUSED.
4036         (reposition_prologue_and_epilogue_notes): Likewise.
4037
4038         * genopinit.c (gen_insn): Cast argument of ctype functions to
4039         `unsigned char'.
4040
4041         * haifa-sched.c: Include recog.h.
4042         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
4043         comparing against one.
4044
4045         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
4046
4047         * mips-tfile.c (parse_end): Cast the argument of ctype function to
4048         `unsigned char'.
4049         (parse_ent): Likewise.
4050         (parse_input): Likewise.
4051
4052         * optabs.c (init_libfuncs): Likewise.
4053
4054         * protoize.c (find_rightmost_formals_list): Likewise.
4055
4056         * recog.h (const_double_operand): Fix typo in prototype.
4057
4058         * tlink.c (scan_linker_output): Cast the argument of ctype
4059         function to `unsigned char'.
4060
4061         * toplev.c (check_lang_option): Cast the result of `strlen' to
4062         `int' when comparing against one.
4063
4064 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
4065
4066         * gcse.c (dump_cuid_table): Correct typo.
4067
4068 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
4069
4070         * toplev.c (display_help): Prepend '-m' to target specific
4071         options. 
4072         (check_lang_option): Ignore text after end of first word of a
4073         language specific option.
4074
4075 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
4076
4077         * reload1.c (reg_used_by_pseudo): New static variable.
4078         (choose_reload_regs): Initialize it.
4079         Use it instead of testing spill_reg_order to determine whether a
4080         pseudo is live in a hard register across the current insn.
4081         Fix a typo in a reference to reload_reg_rtx.
4082
4083         * flow.c (propagate_block): Replace code that computes and uses
4084         regs_sometimes_live with simpler code that just walks the set of
4085         currently live registers.
4086
4087         * Makefile.in (insn-extract.o): Fix dependencies.
4088         * genextract.c (main): Generate includes for insn-config.h and
4089         recog.h.
4090         Delete generation of declarations which are now in recog.h.
4091         * genrecog.c (main): Delete generation of definitions which are
4092         now in recog.c.
4093         * local-alloc.c (block_alloc): Use extract_insn and the variables
4094         it sets up instead of looking up values by insn_code.
4095         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
4096         recog_dup_num): Define here instead of generating the definition in
4097         genrecog.c.
4098         (recog_n_operands, recog_n_dups, recog_n_alternatives,
4099         recog_operand_mode, recog_constraints, recog_operand_address_p):
4100         New variables.
4101         (extract_insn): New function.
4102         * recog.h (extract_insn): Declare function.
4103         (which_alternative, recog_n_operands, recog_n_dups,
4104         recog_n_alternatives, recog_operand_mode, recog_constraints,
4105         recog_operand_address_p): Declare variables.
4106         * regclass.c (n_occurrences): New static function.
4107         * reload.c (n_occurrences): Delete function.
4108         (find_reloads): Use extract_insn.
4109         * reload.h (n_occurrences): Delete declaration.
4110
4111 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
4112
4113         * reload1.c (reload_as_needed): Fix test for when to call
4114         update_eliminable_offsets.
4115
4116 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4117
4118         Fix consistency problems with reg_equiv_{mem,address};
4119         Improve reload inheritance;
4120
4121         * reload.c (reload_out_reg): New variable.
4122         (loc_mentioned_in_p, remove_address_replacements): New functions.
4123         (remove_replacements): Deleted.
4124         (push_reload): Set reload_out_reg[i].
4125         When merging, also set reload_{in,out}_reg[i], and remove
4126         duplicate address reloads.
4127         (combine_reloads): Copy reload_out_reg[i].
4128         (find_reloads): Do make_memloc substitution also when
4129         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
4130         are both nonzero.
4131         Include *recog_operand_loc in commutativity operand changes.
4132         Generate optional output reloads.
4133         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
4134         processing operands.  Call make_memloc in reg_equiv_address code.
4135         Set *recog_operand_loc only after processing operands, and only
4136         if replace is true.  Return a value.
4137         When changing address reload types for operands that didn't get
4138         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
4139         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
4140         Don't emit USEs for pseudo SUBREGs when not replacing.
4141         (find_reloads_address): Do make_memloc substitution also when
4142         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
4143         are both nonzero.
4144         (find_reloads_toplev): Likewise.
4145         Call make_memloc in reg_equiv_address code.
4146         (debug_reload_to_stream): Add code to output reload_out_reg.
4147         (make_memloc): Delete local variable i, ifdefed out code, and
4148         references to memlocs and n_memlocs.
4149         (memlocs, n_memlocs): Delete.
4150         (push_secondary_reload): Clear reload_out_reg.
4151         (find_reloads_address_1): Provide memrefloc argument to all calls
4152         to find_reloads_address.
4153         In AUTO_INC code, handle non-directly addressable equivalences properly.
4154         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
4155         (find_reloads): Add return type.
4156         (remove_address_replacements, deallocate_reload_reg): Declare.
4157         * reload1.c (num_not_at_initial_offset): No longer static.
4158         (delete_address_reloads, delete_address_reloads_1): Likewise.
4159         (deallocate_reload_reg): New function.
4160         (spill_reg_stored_to): New array.
4161         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
4162         (eliminate_regs_in_insn): Move assignments of previous_offset and
4163         max_offset fields, and recalculation of num_not_at_initial_offset
4164         into new static function:
4165         (update_eliminable_offsets) .
4166         (reload_as_needed): Call update_eliminable_offsetss after calling
4167         find_reloads.
4168         Call forget_old_reloads_1 with contents of reloaded auto_inc
4169         expressions if the actual addressing can't be changed to match the
4170         auto_inc.
4171         (choose_reload_regs): For inheritance, replace
4172         reload_reg_free_before_p test with reload_reg_used_at_all test, and
4173         remove stand-alone reload_reg_used_at_all test.
4174         Use reload_out_reg to determine which reload regs have output reloads.
4175         Treat reload_override_in more similar to inherited reloads.
4176         Handle (subreg (reg... for inheritance.
4177         For flag_expensive_optimizations, add an extra pass to remove
4178         unnecessary reloads from known working inheritance.
4179         Delete obsolete code for pseudos replaced with MEMs.
4180         Handle inheritance from auto_inc expressions.
4181         (emit_reload_insns): If reload_in is a MEM, set OLD to 
4182         reload_in_reg[j].
4183         Don't reload directly from oldequiv; if it's a pseudo with a
4184         stack slot, use reload_in[j].
4185         Check that reload_in_reg[j] is a MEM before replacing reload_in
4186         from reg_reloaded_contents.
4187         Include non-spill registers in reload inheritance processing.
4188         Also try to use reload_out_reg to set spill_reg_store /
4189         reg_last_reload_reg.
4190         In code to set new_spill_reg_store, use single_set to find out if
4191         there is a single set.
4192         Add code that allows to delete optional output reloads.
4193         Add code to allow deletion of output reloads that use no spill reg.
4194         At the end, set reload_override_in to oldequiv.
4195         Also call delete_output_reload if reload_out_reg is equal to old
4196         in oldequiv code.
4197         Add code to call delete_output_reload for stores with no matching load.
4198         Set / use spill_reg_stored_to.
4199         Handle case where secondary output reload uses a temporary, but
4200         actual store isn't found.
4201         When looking for a store of a value not loaded in order to call
4202         delete_output_reload, count_occurences should return 0 for no
4203         loads; but discount inherited input reloadill_reg_stored_to.
4204         Do checks for extra uses of REG.  Changed all
4205         callers.
4206         Use delete_address_reloads.
4207         (reload): Take return value of find_reloads into account.
4208         If a no-op set needs more than one reload, delete it.
4209         (reload_reg_free_before_p): RELOAD_FOR_INPUT
4210         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
4211         for the same operand.
4212         (clear_reload_reg_in_use): Check for other reloads that keep a
4213         register in use.
4214         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
4215         RELOAD_FOR_OPADDR_ADDR.
4216         Take into account when an address address reload is only needed
4217         for the address reload we are considering.
4218         (count_occurrences): Use rtx_equal_p for MEMs.
4219         (inc_for_reload): Return instruction that stores into RELOADREG.
4220         New argument two, IN, and rtx.  Changed all callers.
4221         (calculate_needs_all_insns, reload_as_needed):
4222         Don't clear after_call for a CLOBBER.
4223         Keep track of how many hard registers need to be copied from
4224         after_call, and don't clear after_call before we have seen
4225         that much copies, or we see a different instruction.
4226
4227 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
4228
4229         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
4230         after reload has completed.
4231
4232 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
4233
4234         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
4235         a macro name and the next token with a single blank if that whitespace
4236         is in a macro buffer and the next token is not '('.
4237
4238 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
4239
4240         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
4241         (rescan): Ditto.
4242         (skip_if_group): Ditto.
4243         (skip_to_end_of_comment): Ditto.
4244         (macarg1): Ditto.
4245         (discard_comments): Ditto.
4246         (change_newlines): Ditto.
4247
4248 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
4249
4250         * c-lex.c (yylex): Fix unaligned access of wchar_t.
4251
4252 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
4253
4254         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
4255         (TARGET_OPTIONS): Add --help documentation.
4256
4257 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4258
4259         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
4260
4261 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
4262         
4263         * fixinc/* Moved in from ../contrib directory in preparation
4264         for integrating it into the normal build process.  In particular,
4265         fixinc/Makefile.in must be config-ed into the build directory
4266         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
4267         ./configure.in will be "in the mail" momentarily.
4268
4269 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
4270
4271         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
4272         accidently walk into the free list.  Comment how that can happen.
4273         (invalidate): Fix indentation.
4274
4275 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4276                          Jeffrey A Law  (law@cygnus.com)
4277
4278         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
4279         reload.  Never perform rescans of the insn chain after reload.
4280         (propagate_block): Do not delete insn or create new autoinc addressing
4281         modes after reload.
4282
4283         * jump.c (jump_optimize): Unconditionally use the code that was
4284         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
4285         * reload1.c (reload): When reloading is finished, delete all
4286         REG_DEAD and REG_UNUSED notes.
4287         (emit_reload_insns): Delete all code that was conditional on
4288         PRESERVE_DEATH_INFO_REGNO_P.
4289         (no_longer_dead_regs): Delete variable.
4290         (reload_cse_delete_death_notes): Delete function.
4291         (reload_cse_no_longer_dead): Delete function.
4292         (reload_cse_regs_1): Delete all code to handle deletion of death
4293         notes.
4294         (reload_cse_noop_set_p): Likewise.
4295         (reload_cse_simplify_set): Likewise.
4296         (reload_cse_simplify_operands): Likewise.
4297         (reload_cse_move2add): Likewise.
4298         * reorg.c (used_spill_regs): Delete declaration.
4299         (max_label_num_after_reload): Delete declaration.
4300         (find_dead_or_set_registers): Don't assume that spill regs are
4301         dead at a CODE_LABEL.
4302         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
4303         even after reload.
4304         * sched.c (sched_analyze_insn): Likewise.
4305         (update_flow_info): Likewise.
4306         * haifa-sched.c (sched_analyze_insn): Likewise.
4307         (update_flow_info): Likewise.
4308         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
4309         * toplev.c (max_label_num_after_reload): Delete variable.
4310         (rest_of_compilation): Don't set max_label_num_after_reload.
4311         Call life_analysis after reload_cse_regs if optimizing.
4312         * config/gmicro/gmicro.h: Delete comment referring to
4313         PRESERVE_DEATH_INFO_REGNO_P.
4314         * config/i386/i386.h: Likewise.
4315         * config/m88k/m88k.h: Likewise.
4316         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
4317         * config/sh/sh.h: Likewise.
4318
4319 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4320
4321         * loop.c (strength_reduce): Restore marking bct_p as
4322         ATTRIBUTE_UNUSED.
4323         * rs6000.c (optimization_options): Change #ifdef HAIFA to
4324         HAVE_decrement_and_branch_on_count.
4325         (small_data_operand): Remove TARGET_ELF condition for marking
4326         parameters ATTRIBUTE_UNUSED.
4327         
4328 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
4329
4330         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
4331         (SELECT_SECTION): Resync with svr4.h.
4332
4333 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4334
4335         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
4336         ATTRIBUTE_UNUSED.
4337
4338 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
4339
4340         * c-pragma.c (handle_pragma_token): Test for null tree before
4341         dereferencing TREE_CODE.
4342
4343 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4344
4345         * config/c4x/c4x.c: Convert to use GEN_INT.
4346         (c4x_parallel_process): Rework to handle new repeat loop structure.
4347
4348         * config/c4x/c4x.md: Convert to use GEN_INT. 
4349         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
4350         (decrement_and_branch_on_count): Likewise.
4351
4352         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
4353         loop.c has the desired functionality.
4354         (rc_reg_operand): New prototype.
4355
4356         * config/c4x/t-c4x: Can now build all front ends.
4357
4358 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
4359
4360         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
4361
4362 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
4363
4364         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
4365         * config/t-rtems: Do not install assert.h -- use newlib's.
4366
4367 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4368
4369         * combine.c (combine_instructions): When finished, call init_recog.
4370         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
4371
4372 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
4373
4374         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
4375
4376 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4377
4378         * cppalloc.c (memory_full): Mark function prototype with
4379         ATTRIBUTE_NORETURN.
4380
4381         * demangle.h (collect_exit): Likewise.
4382
4383         * fix-header.c (v_fatal, fatal): Likewise.
4384
4385         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
4386         Likewise.
4387
4388         * gcov.c (print_usage): Likewise.
4389
4390         * genattr.c (fatal, fancy_abort): Likewise.
4391
4392         * genattrtab.c (fatal, fancy_abort): Likewise.
4393
4394         * gencodes.c (fatal, fancy_abort): Likewise.
4395
4396         * genconfig.c (fatal, fancy_abort): Likewise.
4397
4398         * genemit.c (fatal, fancy_abort): Likewise.
4399
4400         * genextract.c (fatal, fancy_abort): Likewise.
4401
4402         * genflags.c (fatal, fancy_abort): Likewise.
4403
4404         * genopinit.c (fatal, fancy_abort): Likewise.
4405
4406         * genoutput.c (fatal, fancy_abort): Likewise.
4407
4408         * genpeep.c (fatal, fancy_abort): Likewise.
4409
4410         * genrecog.c (fatal, fancy_abort): Likewise.
4411
4412         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
4413         __sjpopnthrow, __throw): Likewise.
4414
4415         * objc/objc-act.c (objc_fatal): Likewise.
4416
4417         * protoize.c (usage, aux_info_corrupted,
4418         declare_source_confusing): Likewise.
4419
4420         * rtl.c (dump_and_abort): Likewise.
4421
4422         * rtl.h (sets_cc0_p): Likewise.
4423
4424         * toplev.c (float_signal, pipe_closed): Likewise.
4425         
4426 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4427
4428         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
4429         when generating the decision tree for the general case.
4430
4431         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
4432         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
4433
4434 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4435
4436         * Makefile.in (sched.o): Depend on recog.h.
4437
4438         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
4439         (unsigned) when comparing against one.
4440         (find_base_value): Likewise.
4441         (record_base_value): Cast variable `regno' to (unsigned) when
4442         comparing against one.  Cast the result of REGNO() macro to
4443         (unsigned) when comparing against one.
4444         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
4445         unsigned.
4446         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
4447         variable where an unsigned index is needed.
4448
4449         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
4450         before comparing against one.
4451
4452         * collect2.c: Add prototypes for functions `error', `fatal' and
4453         `fatal_perror'.  Make these functions take variable arguments
4454         instead of faking it with a fixed number of args.
4455         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
4456         char).
4457
4458         * combine.c (can_combine_p): Mark parameter `pred' with
4459         ATTRIBUTE_UNUSED.
4460         (find_split_point): Cast variable `src' to (unsigned
4461         HOST_WIDE_INT) when comparing against one.
4462         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
4463         (simplify_logical): Likewise.
4464         (force_to_mode): Cast result of INTVAL() macro to (unsigned
4465         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
4466         HOST_WIDE_INT) in shift.
4467         (simplify_and_const_int): Cast result of INTVAL() macro to
4468         `unsigned HOST_WIDE_INT' when comparing against one.
4469         (merge_outer_ops): Cast variable const0 to `unsigned
4470         HOST_WIDE_INT' when comparing against the result of
4471         GET_MODE_MASK() macro.
4472         (simplify_comparison): Likewise for variable `c0'.  Cast variable
4473         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
4474         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
4475         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
4476         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
4477         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
4478         comparing against one.
4479         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
4480
4481         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
4482         macro to `unsigned HOST_WIDE_INT' when comparing against one.
4483         (output_block_move): Cast `sizeof' expression to (int) when
4484         comparing against one.
4485         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
4486         against one.
4487         (save_restore_insns): Cast `base_offset' to `long' to match format
4488         specifier in fprintf.
4489
4490         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
4491         to `enum machine_mode'.
4492
4493         * flow.c (life_analysis_1): Remove unused variable `insn'.
4494
4495         * gcc.c (translate_options): Move variables `j' and `k' into the
4496         scope in which they are used.  Change their types to `size_t'.
4497         (set_spec): Cast the argument of ctype macro to `unsigned char'.
4498         (read_specs): Likewise.
4499         (process_command): Cast `sizeof' to (int) when comparing against one.
4500         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
4501         (handle_braces): Cast both sides of `==' expression to `long' to
4502         ensure sign matching.
4503         (main): Cast variable `i' to `int' when comparing against one.
4504
4505         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
4506         int to size_t.  Cast variable `i' to size_t when comparing against
4507         one.
4508
4509         * genattrtab.c (convert_set_attr_alternative): Remove unused
4510         parameter `insn_code'.  All callers changed.
4511         (convert_set_attr): Likewise.
4512
4513         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
4514         size_t when comparing against one.  Likewise for variable `len'.
4515
4516         * global.c (global_alloc): Cast variable `max_regno' to size_t
4517         when comparing against one.  Likewise for variable `max_allocno'.
4518
4519         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
4520
4521         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
4522         `set' with ATTRIBUTE_UNUSED.
4523         (find_free_reg): Cast `sizeof' expression to (int) when comparing
4524         against one.
4525
4526         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
4527         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
4528         (get_condition): Cast variable `const_val' to `unsigned
4529         HOST_WIDE_INT' when comparing against one.  Cast unsigned
4530         expression to HOST_WIDE_INT when comparing against one.
4531         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
4532         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
4533         `unsigned' when comparing against one.
4534
4535         * protoize.c (is_id_char): Change type of parameter `ch' to
4536         unsigned char.
4537         (munge_compile_params): Cast argument of ctype macro to (const
4538         unsigned char).
4539         (process_aux_info_file): Cast variable `aux_info_size' to int when
4540         comparing against one.
4541         (forward_to_next_token_char): Cast argument of ctype macro to
4542         `const unsigned char'.
4543         (edit_formals_lists): Likewise.
4544         (find_rightmost_formals_list): Likewise.
4545         (add_local_decl): Likewise.
4546         (add_global_decls): Likewise.
4547         (edit_fn_definition): Likewise.
4548         (do_cleaning): Likewise.
4549         (scan_for_missed_items): Likewise.
4550         (edit_file): Cast variable `orig_size' to (int) when comparing
4551         against one.
4552         (main): Cast argument of ctype macro to `const unsigned char'.
4553
4554         * recog.c (const_int_operand): Mark parameter `mode' with
4555         ATTRIBUTE_UNUSED.
4556
4557         * regclass.c (record_reg_classes): Change type of variable `c' to
4558         `unsigned char'.  Cast `char' array index to `unsigned char'.
4559
4560         * reload.c (push_secondary_reload): Cast argument to
4561         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
4562
4563         * reload1.c (calculate_needs): Cast `char' array index to
4564         `unsigned char'.
4565         (set_label_offsets): Change type of variable `i' to unsigned int.
4566         Cast result of XVECLEN() macro to unsigned when comparing against
4567         one.
4568         (mark_not_eliminable): Change type of variable `i' to unsigned.
4569         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
4570         when comparing against one.
4571         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
4572         comparing against one.
4573         (choose_reload_regs): Hide unused label `fail'.
4574         (reload_cse_simplify_operands): Cast `char' array index to
4575         `unsigned char'.
4576         (reload_combine_note_store): Mark parameter `set' with
4577         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
4578         against one.
4579         (reload_cse_move2add): Remove unused variable `src2'.
4580
4581         * sched.c: Include recog.h.
4582         (sched_note_set): Remove unused parameter `b'.  All callers
4583         changed.
4584         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
4585         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
4586         when comparing against one.
4587
4588         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
4589         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
4590         comparing against one.
4591
4592         * unroll.c (precondition_loop_p): Remove unused parameter
4593         `loop_end'.  All callers changed.
4594
4595 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4596
4597         * reload1.c (maybe_fix_stack_asms): New static function.
4598         (reload): Call it.
4599
4600         * reload.h (compute_use_by_pseudos): Declare.
4601
4602         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
4603         (something_needs_reloads): Delete variable.
4604         (finish_spills): New function.
4605         (compute_use_by_pseudos): New function.
4606
4607         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
4608         Use the reload_insn_chain instead of walking the rtl directly.
4609
4610         (reload): Allocate and free spilled_pseudos.
4611         Ensure that all calls of spill_hard_reg are followed by a call to
4612         finish_spills.
4613         Use the insns_need_reload list instead of something_needs_reloads
4614         to find out if reload_as_needed must be called.
4615         Clear unused_insn_chains at the end.
4616
4617         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
4618         changed.
4619         Delete code to keep track of current basic block.
4620         Walk reload_insn_chain instead of the rtl structure.  Build the
4621         insns_need_reload chain.
4622         Remember which insns need reloading/elimination by setting the
4623         appropriate fields in struct insn_chain, not by putting modes on the
4624         insn.
4625
4626         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
4627         arg INSN.  All callers changed.
4628         Delete declaration of struct needs.
4629         Don't set something_needs_reloads.
4630         Record insn needs in the CHAIN argument.
4631
4632         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
4633
4634         (reload_as_needed): Lose FIRST arg.  All callers changed.
4635         Walk the reload_insn_chain instead of the rtx structure.
4636         Delete code to keep track of current basic block.
4637         Rename one of the NEXT variables to OLD_NEXT.
4638
4639         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
4640         callers changed.
4641         (choose_reload_regs): Likewise.
4642
4643         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
4644         callers changed.
4645         
4646         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
4647         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
4648         (hard_regs_live, hard_regs_need_restore): Delete variables.
4649         (n_regs_saved): Now static.
4650         (referenced_regs, this_insn_sets): New variables.
4651
4652         (setup_save_areas): Restructure the code a bit.
4653
4654         (restore_referenced_regs): Delete function.
4655         (mark_referenced_regs): New function, similar to the old
4656         restore_referenced_regs, but mark registers in referenced_regs.
4657
4658         (clear_reg_live): Delete function.
4659         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
4660         Only mark registers in this_insn_sets.
4661
4662         (save_call_clobbered_regs): Rework this function to walk the
4663         reload_insn_chain instead of using the list of instructions directly.
4664         Delete code to keep track of register lives, compute live regs on the
4665         fly from information in the chain.
4666         Instead of calling restore_referenced_regs, use mark_referenced_regs,
4667         then walk the set it computes and call insert_restore as appropriate.
4668
4669         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
4670         callers changed.
4671         Restructure the code a bit.  Test hard_regs_saved instead of
4672         hard_regs_need_restore.
4673         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
4674         args.  All callers changed.
4675         Restructure the code a bit.  Use TO_SAVE to determine which regs to
4676         save instead of more complicated test.
4677         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
4678         callers changed.
4679         Create a new insn_chain structure for the new insn and place it
4680         into the chain.
4681
4682         * rtl.texi: Update documentation to reflect that reload no longer
4683         puts modes on the insns.
4684
4685 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4686
4687         * function.c (purge_addressof_1): Force the first argument of a
4688         CALL insn to memory.
4689
4690 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
4691
4692         * rtl.h: Delete duplicate prototypes.  Add some missing
4693         prototypes.
4694         * rtlanal.c: (for_each_rtx): Formatting tweak.
4695
4696 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4697
4698         * real.c (emdnorm and etoasc): Disable round to even for c4x target
4699         to be compatible with TI compiler.
4700
4701         * Makefile.in (USER_H): Add va-c4x.h to definition.
4702
4703 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
4704
4705         * function.c (purge_addressof_1): Fix typo in inequality: do
4706         bitfield optimization for equal mode sizes.
4707         * expmed.c (store_bit_field): Don't take subregs of subregs in
4708         the movstrict case.  Tidy a potential problem in the multi-word case.
4709         (extract_bit_field): Likewise.
4710
4711 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4712
4713         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
4714         function.
4715         Compute max_uid_for_flow by calling get_max_uid after the scan.
4716         (find_basic_blocks_1): Don't emit NOPs here.
4717
4718 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
4719
4720         * alias.c (base_alias_check): Accept new args for the modes of the
4721         two references.  Use them to determine if an AND can overlap.  Update
4722         all callers.
4723         (memrefs_conflict_p): Assume sizes are aligned, and uses them
4724         to determine if an AND can overlap.
4725
4726 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
4727
4728         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
4729         check.  Add comment to document problems with TARGET_SUN_FPA version
4730         of this macro.
4731         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
4732
4733 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4734
4735         * Makefile.in (gencheck.o): Depend on gansidecl.h.
4736
4737         * c-common.c (print_char_table): Add missing initializers.
4738         (scan_char_table): Likewise.
4739         (time_char_table): Likewise.
4740
4741         * c-decl.c (c_decode_option): Mark parameter `argc' with
4742         ATTRIBUTE_UNUSED.
4743         (declare_parm_level): Mark parameter `definition_flag' with
4744         ATTRIBUTE_UNUSED.
4745
4746         * c-lex.c (readescape): Use `(unsigned)1' in shift.
4747         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
4748         against one.
4749
4750         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
4751         callers changed.
4752         (emit_call_1): Mark parameters `fndecl' and `funtype' with
4753         ATTRIBUTE_UNUSED.
4754         (expand_call): Cast result of MIN() to (unsigned int) when
4755         comparing against an unsigned value.
4756
4757         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
4758         callers changed.
4759         (make_definition): Remove unused parameter `op'.  All callers
4760         changed.
4761         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
4762         comparing against the result of pointer arithmetic.
4763
4764         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
4765         when comparing against one.
4766
4767         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
4768         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
4769         one.
4770         (output_die): Move variable `i' into the scope in which it is
4771         used.  Change its type to `unsigned'.
4772         (output_die): Cast the result of `strlen' to (int) when passing it
4773         to ASM_OUTPUT_ASCII().
4774         (output_pubnames): Likewise.
4775         (output_line_info): Likewise.
4776
4777         * emit-rtl.c (global_rtl): Add missing initializers.
4778
4779         * explow.c (promote_mode): Mark parameter `for_call' with
4780         ATTRIBUTE_UNUSED.
4781
4782         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
4783         `unsigned HOST_WIDE_INT' when comparing against one.
4784         (synth_mult): Change type of variable `cost' to int.
4785         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
4786
4787         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
4788         when comparing against one.
4789         (get_inner_reference): Change variable `alignment' to unsigned.
4790         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
4791         int) when comparing against one.
4792         (expand_builtin_setjmp): Change type of variable `i' to size_t.
4793
4794         * fold-const.c (div_and_round_double): Cast BASE to
4795         (HOST_WIDE_INT) when comparing against one.
4796
4797         * gencheck.c: Include gansidecl.h.
4798         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
4799
4800         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
4801         `tcode' with ATTRIBUTE_UNUSED.
4802
4803         * real.c (edivm): Cast constant value to (unsigned long) in
4804         expression compared against an unsigned value.
4805
4806         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
4807         comparing against one.
4808         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
4809         when comparing against one.
4810
4811         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
4812         (unsigned int) when comparing against one.  Likewise for
4813         GET_MODE_BITSIZE.
4814         (smallest_mode_for_size): Likewise.
4815         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
4816         (restore_storage_status): Likewise.
4817         
4818         * toplev.c (debug_args): Add missing initializer.
4819         (f_options): Spelling correction.  Add missing initializers.
4820         (documented_lang_options): Likewise.
4821         (debug_end_source_file): Mark parameter `lineno' with
4822         ATTRIBUTE_UNUSED.
4823
4824         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
4825         `decl' and `type' with ATTRIBUTE_UNUSED.
4826
4827         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
4828         when comparing against one.
4829         (assemble_variable): Mark parameter `top_level' with
4830         ATTRIBUTE_UNUSED.
4831         (assemble_external_libcall): Mark parameter `fun' with
4832         ATTRIBUTE_UNUSED.
4833         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
4834         ATTRIBUTE_UNUSED.
4835
4836 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
4837
4838         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
4839         Replace use of r5 with use of r19.
4840
4841         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
4842
4843         * config/v850/v850.c (compute_register_save_size): Allow for the
4844         fact that helper functions save all registers, not just those used
4845         by the function.
4846         
4847         Replace constant 31 with macro LINK_POINTER_REGNUM.
4848
4849         * config/v850/v850.md: Use 'indirect_operand' rather than
4850         'memory_operand' for bit test/set/clear patterns.
4851
4852 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
4853
4854         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
4855         * varasm.c (assemble_start_function et al): Don't call
4856         ASM_GLOBALIZE_LABEL for weak symbols.
4857
4858 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
4859
4860         * cse.c (equiv_constant): Check for NULL return from
4861         gen_lowpart_if_possible().
4862
4863 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
4864
4865         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
4866
4867         * collect2.c (main): Pass -EL/-EB through to the compiler.
4868
4869 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4870         
4871         * expr.c (push_block): Handle targets where the stack grows
4872         to higher addresses, but args grow to lower addresses and
4873         ACCUMULATE_OUTGOING_ARGS is not defined.
4874
4875 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
4876
4877         * config/v850/v850.c (print_operand):  Extend meaning
4878         of 'c' operands to support .vtinherit.
4879
4880 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4881
4882         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
4883         Added ATTRIBUTE_UNUSED to unused function arguments.
4884         (rc_reg_operand): New predicate.
4885         (c4x_rptb_insert): New function.
4886         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
4887         (c4x_optimization_options): New function.
4888
4889         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
4890          (decrement_and_branch_on_count): New pattern.
4891          (rptb_top): Modified pattern to work with BCT optimization.
4892         
4893         * config/c4x/c4x.h (RC_REG): New register class.
4894         (rc_reg_operand): Define prototype.
4895         (IS_RC_REG): New macro.
4896         (IS_RC_OR_PSEUDO_REG): New macro.
4897         (IS_RC_OR_PSEUDO_REGNO): New macro.
4898         (OPTIMIZATION_OPTIONS): Define.
4899
4900 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
4901
4902         * collect2.c (extract_init_priority): No priority is 65535.
4903
4904 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
4905         
4906         * Makefile.in (build_tooldir): new variable, same as old
4907         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
4908         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
4909         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
4910         
4911         * configure.in (gxx_include_dir): set default based on unlibsubdir
4912         * Makefile.in (tooldir): ditto
4913         (cccp.o, cpplib.o): use unlibsubdir implicitly through
4914         gxx_include_dir, includedir and tooldir
4915         (protoize.o, unprotoize.o): ditto
4916         
4917 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
4918
4919         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
4920
4921         * config/arm/thumb.c (thumb_override_options): Add warning about
4922         PIC code not being supported just yet.
4923
4924 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
4925
4926         * flow.c: Update comment.
4927         (notice_stack_pointer_modification): New static function.
4928         (record_volatile_insns): Use it.
4929         (mark_regs_live_at_end): Mark the stack pointer as alive
4930         at the end of the function if current_function_sp_is_unchanging
4931         is set.
4932         (life_analysis_1): Set current_function_sp_is_unchanging.
4933         * function.c: Define it.
4934         (init_function_start): Initialize it.
4935         * output.h: Declare it.
4936         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
4937         the stack pointer as alive at the end of the function if
4938         current_function_sp_is_unchanging is set.
4939         * i386.c (ix86_epilogue): Optimize the restoring
4940         of the stack pointer.
4941
4942 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
4943
4944         * version.c: Bump for snapshot.
4945
4946 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
4947
4948         * c-pragma.c (handle_pragma_token): If passed a token instead
4949         of a tree, use that as the pack value.
4950
4951 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
4952
4953         * flow.c (find_basic_blocks_1): Fix prototype.
4954
4955 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
4956
4957         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
4958         (struct tree_decl): New fields no_check_memory_usage.
4959         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
4960         (init_attributes): Register it as a new attribute.
4961         (decl_attributes): Set flags on functions given that attribute.
4962         * c-decl.c (duplicate_decls): Merge new attribute.
4963         * expr.h (current_function_check_memory_usage): Declare new var.
4964         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
4965         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
4966         current_function_check_memory_usage.
4967         * function.h: Add field to struct function.
4968         * function.c (current_function_check_memory_usage): Define it.
4969         (push_function_context_to, pop_function_context_from): Save and
4970         restore it.
4971         (expand_function_start): Set it, based on global flag and function
4972         attribute.
4973
4974         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
4975         check non-automatic variables, to permit detection of writes to
4976         read-only locations in embedded systems without memory management.
4977         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
4978         when emitting chkr_set_right_libfunc call, even if the argument is
4979         BLKmode or variable-sized; don't abort.
4980
4981         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
4982         symbols in Pmode, not VOIDmode.
4983
4984 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4985
4986         * cppexp.c: When forcing unsigned comparisons, cast both sides
4987         of the operation.
4988
4989         * cpphash.h: Move static declaration of hashtab[]...
4990         * cpphash.c: ...here.
4991
4992         * cpplib.c: Cast difference of two pointers to size_t before
4993         comparing it to size_t.  Cast signed to unsigned
4994         before comparing to size_t. (FIXME: struct argdata should use
4995         unsigned buffer sizes.)
4996         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
4997         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
4998         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
4999         size_t before comparison.
5000
5001 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
5002
5003         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
5004         (find_basic_blocks_1): Similarly.
5005         * output.h (find_basic_blocks): Fix prototype.
5006         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
5007         find_basic_blocks anymore.
5008
5009 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
5010
5011         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
5012         (sbitmap_free, sbitmap_vector_free): New macros.
5013         * output.h (rtl_dump_file): Declare.
5014
5015 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
5016
5017         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
5018
5019 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5020
5021         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
5022         (DFtype): Likewise.
5023         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
5024         (divide): Remove unused variable `tmp'.
5025         (si_to_float): Cast numeric constant to (SItype) before comparing
5026         it against one.
5027
5028 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
5029
5030         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
5031         * gcc.c (add_preprocessor_option): Correct typo when allocating
5032         memory, sizeof() argument had one too many `*'.
5033         (add_assembler_option): Likewise.
5034         (add_linker_option): Likewise.
5035         * gcov.c (output_data): Likewise.
5036         * local-alloc.c (memref_used_between_p): Likewise.
5037         (update_equiv_regs): Likewise.
5038         * loop.c (strength_reduce): Likewise.
5039         * reg-stack.c (record_asm_reg_life): Likewise.
5040         (subst_asm_stack_reg): Likewise.
5041         * reorg.c (dbr_schedule): Likewise.
5042
5043 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5044
5045         * flow.c (life_analysis_1): Break out some functions.
5046         (find_basic_blocks_1): Likewise.  Also move some variables out and
5047         make them static.
5048         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
5049         new static var nonlocal_label_list with it.
5050         (active_eh_region, nested_eh_region, label_value_list,
5051         nonlocal_label_list): New static variables.
5052         (make_edges, delete_unreachable_blocks, delete_block): New static
5053         functions, broken out of find_basic_blocks_1.
5054         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
5055         noop_move_p): New static functions, broken out of life_analysis_1.
5056
5057 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
5058
5059         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
5060         Take extra care for op0 now possibly being a subreg.
5061         (extract_bit_field): Likewise.
5062         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
5063         the reg to memory if there is no equal sized integral mode.
5064         * stor-layout.c (int_mode_for_mode): New function.
5065         * machmode.h: Prototype it.
5066
5067 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
5068
5069         * global.c (build_insn_chain): Verify no real insns exist past the
5070         end of the last basic block, then exit the loop.
5071
5072 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5073
5074         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
5075
5076 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
5077
5078         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
5079
5080 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5081
5082         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
5083
5084 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
5085
5086         * flow.c (find_basic_blocks): Correctly determine when a call
5087         is within an exception region.
5088
5089 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
5090
5091         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
5092
5093         * cpplib.h: Protect from multiple inclusions.
5094         * cpplib.c: Fix minor formatting problems.
5095
5096         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
5097
5098         * jump.c (jump_optimize): Revert accidental patch.
5099
5100         * Makefile.in (cpplib.o): Use unlibsubdir.
5101
5102 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
5103
5104         * loop.c (get_condition): Allow combine when either compare is
5105         VOIDmode.
5106
5107 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
5108
5109         * version.c: Bump for snapshot.
5110
5111 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
5112
5113         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
5114         (init_lex): Initialize ridpointers[RID_BYREF].
5115         * c-lex.h (enum rid): Add RID_BYREF.
5116         * c-parse.gperf: Add RID_BYREF as a type qualifier.
5117         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
5118         (encode_type_qualifiers): Similarly
5119         * c-gperf.h: Rebuilt.
5120
5121 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
5122
5123         * c-common.c (type_for_mode): Only return TItype nodes when
5124         HOST_BITS_PER_WIDE_INT is >= 64 bits.
5125         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
5126         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
5127         (init_decl_processing): Only create TItype nodes when
5128         HOST_BITS_PER_WIDE_INT is >= 64 bits.
5129         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
5130         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
5131
5132 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5133
5134         * stmt.c (n_occurrences): New static function.
5135         (expand_asm_operands): Verify that all constrains match in the
5136         number of alternatives.
5137         Verify that '+' or '=' are at the beginning of an output constraint.
5138         Don't allow '&' for input operands.
5139         Verify that '%' isn't written for the last operand.
5140         * reload.c (find_reloads): Abort if an asm is found with invalid
5141         constraints; all possible problems ought to be checked for earlier.
5142
5143 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5144
5145         * flags.h (flag_branch_on_count_reg): Always declare 
5146         * toplev.c (flag_branch_on_count_reg): Likewise.
5147         * toplev.c: Fix typos.
5148
5149         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
5150         (toc4x): Similarly.
5151
5152 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
5153
5154         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
5155         max_uids_for_flow.
5156         (find_basic_blocks_1): Add a nop to the end of a basic block when
5157         a trailing call insn does not have abnormal control flow.
5158         * gcse.c (pre_transpout): New variable.
5159         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
5160         (compute_pre_transpout): Calculate it.
5161         (compute_pre_ppinout): Use it to eliminate impossible placements
5162         due to abnormal control flow through calls.
5163         (compute_pre_data): Call compute_pre_transpout.
5164
5165 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5166
5167         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
5168
5169 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
5170
5171         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
5172         and matching define_insns): Tack on a `use' of the table label, so
5173         flow analysis will recognize a tablejump.
5174
5175 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
5176
5177         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
5178         always end basic blocks for abnormal edge reasons.
5179
5180 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
5181
5182         * config/i386/i386.h: Remove definition of
5183         HANDLE_PRAGMA_PACK_PUSH_POP.
5184         
5185         * config/i386/go32.h: Add definition of
5186         HANDLE_PRAGMA_PACK_PUSH_POP.
5187         
5188         * config/i386/win32.h: Add definition of
5189         HANDLE_PRAGMA_PACK_PUSH_POP.
5190         
5191         * config/i386/cygwin32.h: Add definition of
5192         HANDLE_PRAGMA_PACK_PUSH_POP.
5193
5194         * c-pragma.c (insert_pack_attributes): Do not insert
5195         attributes unless #pragma pack(push,<n>) is in effect.
5196
5197 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
5198
5199         * expr.c (emit_group_store): Handle a PARALLEL destination.
5200
5201 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
5202
5203         * gcse.c (pre_insert_insn): When a call ends a bb, insert
5204         the new insns before the argument regs are loaded.
5205
5206 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5207
5208         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
5209         (c-parse.gperf): Update comments describing invocation flags.
5210         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
5211
5212 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
5213
5214         * reload1.c (reload): Call free before clobbering the memory
5215         locations or constants pointers.
5216
5217 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5218
5219         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
5220         for efficiency by checking whether we need to modify the current
5221         stack permission at all.
5222         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
5223         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
5224         __enable_execute_stack libcall here too if
5225         TRANSFER_FROM_TRAMPOLINE is defined.
5226         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
5227         IN_LIBGCC2.
5228
5229 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
5230
5231         * Makefile.in (DRIVER_DEFINES): Remove last change.
5232         
5233 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5234
5235         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
5236         insns we're going to copy.
5237         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
5238
5239         * loop.c (count_one_set): Add prototype.
5240
5241         * caller-save.c (restore_referenced_regs): Lose mode argument.
5242         (insert_save): Lose mode argument.
5243         (insert_restore): Lose mode argument.
5244         (insert_one_insn): Lose mode argument.
5245         (save_call_clobbered_regs): Lose mode argument.
5246         (setup_save_areas): Take no argument and return void.  All callers
5247         changed.
5248         Don't verify validity of memory addresses.
5249         * reload.h (setup_save_ares): Adjust prototype.
5250         (save_call_clobbered_regs): Likewise.
5251         * reload1.c (delete_caller_save_insns): New function.
5252         (caller_save_spill_class): Delete variable.
5253         (caller_save_group_size): Delete variable.
5254         (reload): Call setup_save_areas and save_call_clobbered_regs
5255         in the main loop, before calling calculate_needs_all_insns.
5256         Don't call save_call_clobbered_regs after the loop.
5257         Call delete_caller_save_insns at the end of an iteration if
5258         something changed.
5259         Delete code to manage caller_save_spill_class.
5260         Emit the final note before setting reload_first_uid.
5261         Simplify test that determines whether reload_as_needed gets run.
5262         (calculate_needs): Delete code to manage caller_save_spill_class.
5263
5264 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
5265
5266         * collect2.c (main): Initialize ld_file_name.
5267
5268 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
5269  
5270         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
5271         check for flag_function_sections.
5272
5273 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5274
5275         * cse.c (insert_regs): Fix bug in Sep 24 change.
5276
5277 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5278
5279         * flags.h (flag_dump_unnumbered): Declare.
5280         * toplev.c (flag_dump_unnumbered): Don't declare.
5281         * print-rtl.c (flags.h): Include.
5282         (print_rtl_single): Add return value.
5283         * rtl.h (print_rtl_single): Update declaration.
5284         * flow.c (flag_dump_unnumbered): Don't declare.
5285         (print_rtl_with_bb): Use return value of print_rtl_single.
5286
5287 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5288
5289         * loop.c (count_one_set): New static function, broken out of
5290         count_loop_regs_set
5291         (count_loop_regs_set): Call it.
5292         * global.c (mark_reg_store): Handle clobbers here by not calling
5293         set_preference.
5294         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
5295         is in fact a clobber.
5296         * integrate.c (process_reg_param): New function, broken out of
5297         expand_inline_function.
5298         (expand_inline_function): Call it.
5299
5300
5301         * i386.md (addsidi3_1): Delete unused variable temp.
5302         (addsidi3_2): Likewise.
5303         (clstrstrsi): Delete unused variable addr1.
5304
5305         * rtl.h: Don't declare any functions also declared in recog.h.
5306
5307         * Makefile.in (stupid.o): Update dependencies.
5308         (global.o): Likewise.
5309
5310         * global.c: Include reload.h
5311         (reg_becomes_live): New function.
5312         (reg_dies): New function.
5313         (build_insn_chain): New function.
5314         (global_alloc): Call build_insn_chain before calling reload.
5315
5316         * reload.h (struct needs): New structure definition.
5317         (struct insn_chain): Likewise.
5318         (reload_insn_chain): Declare variable.
5319         (new_insn_chain): Declare function.
5320
5321
5322         * reload1.c (reload_startobj): New variable.
5323         (reload_insn_chain): New variable.
5324         (unused_insn_chains): New variable.
5325         (new_insn_chain): New function.
5326         (init_reload): Initialize reload_startobj, not reload_firstobj.
5327         (reload): Initialize reload_firstobj.
5328         Before returning, free everything on the reload_obstack.
5329
5330         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
5331         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
5332         current_chain): New variables.
5333         (reg_where_born): Delete variable.
5334         (REG_WHERE_BORN): New macro.
5335         (find_clobbered_regs): New function.
5336         (stupid_life_analysis): Don't allocate/free reg_where_born.
5337         Allocate and free reg_where_born_exact, reg_where_born_clobber,
5338         reg_where_dead_chain.
5339         Use REG_WHERE_BORN instead of reg_where_born.
5340         While processing the insns, build the reload_insn_chain with
5341         information about register lifetimes.
5342         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
5343         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
5344         changed.
5345         Compute and information about birth and death of pseudo registers in
5346         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
5347         Delete code to set elements of reg_where_born.  
5348
5349 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5350
5351         * tree.def (GOTO_EXPR): Modified documentation.
5352         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
5353         goto.
5354
5355 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5356
5357         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
5358         loop_final_value, loop_comparison_code): No longer static.
5359         (unroll_loop): Delete loop_start_value update.
5360         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
5361         loop_final_value, loop_comparison_code): Extern.
5362         (loop_start_value): Delete extern.
5363         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
5364         loop_comparison_value, loop_comparison_code): Delete.
5365         (loop_optimize): Remove initialization for deleted variables.
5366         (strength_reduce): Delete analyze_loop_iterations call.  Only call
5367         insert_bct if flag_branch_count_on_reg set.
5368         (analyze_loop_iterations): Delete.
5369         (insert_bct): Remove iteration count calculation.  Move checks for
5370         viable BCT optimization to here.  Obtain iteration count from
5371         loop_iterations and correct for unrolling.  Check for enough
5372         iteration to be beneficial.  Comment out runtime iteration count
5373         case.
5374         (insert_bct): Print iteration count in dump file.  Remove
5375         loop_var_mode and use word_mode directly.
5376
5377         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
5378         * rs6000.c (rs6000_override_options): Use it.
5379         (optimization_options): Enable use of flag_branch_on_count_reg.
5380         * rs6000.md (define_function_unit): Describe 604e.
5381
5382 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5383
5384         * loop.c (move_movables): Corrected threshold calculation for
5385         moved_once registers.
5386
5387 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5388
5389         * loop.c (combine_givs_p): Fix test for identical givs.
5390
5391 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
5392
5393         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
5394         call abort if the function is already defined.
5395
5396 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
5397
5398         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
5399         truncation is not a no-op.
5400
5401 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
5402
5403         * version.c: Bump for snapshot.
5404
5405 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
5406
5407         * version.c: Bump for snapshot.
5408
5409 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
5410
5411         * expmed.c (expand_divmod): Don't widen for computing remainder
5412         if we seem to have a divmod pattern for needed mode.
5413
5414 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
5415
5416         * cpplib.c (macroexpand): Correct off-by-one error in handling
5417         of escapes.
5418
5419 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
5420
5421         * combine.c (expand_field_assignment): Don't do bitwise operations
5422         on MODE_FLOAT; pun to MODE_INT if possible.
5423
5424 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
5425                           scott snyder  <snyder@d0sgif.fnal.gov>
5426
5427         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
5428         linker.  Recognize mangled names in quotes.
5429
5430 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
5431
5432         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
5433         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
5434         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
5435         (lshrsi3_extend, lshrsi3_extend2): Ditto.
5436
5437 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5438
5439         * function.c (purge_addressof_1): If trying to take a sub-word
5440         integral piece of a floating point mode, put it on the stack.
5441
5442 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
5443
5444         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
5445
5446 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
5447
5448         * PROJECTS: Remove template friends.
5449
5450         * collect2.c (sort_ids): Remove unused variable.
5451
5452         * tm.texi (MATH_LIBRARY): Document.
5453         (NEED_MATH_LIBRARY): Remove.
5454
5455         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
5456         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
5457
5458 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
5459
5460         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
5461         last_end to 0x7fffffff.
5462
5463 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5464
5465         * function.c (purge_addressof_1): Do not perform endianness
5466         corrections on bitpos, who we call will do it for us.
5467
5468 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
5469
5470         * h8300.c (WORD_REG_USED): Fix typo.
5471         (initial_offset): Use WORD_REG_USED.
5472
5473         * h8300.c (handle_pragma): Fix typo.
5474
5475 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5476
5477         * caller-save.c (insert_save_restore): Break this function up
5478         into new functions insert_restore, insert_save and insert_one_insn.
5479         All callers changed.
5480         (insert_restore): New function, mostly broken out of
5481         insert_save_restore.
5482         (insert_save): Likewise.
5483         (insert_one_insn): Likewise.
5484         (restore_referenced_regs): New argument BLOCK.  All callers changed.
5485         (save_call_clobbered_regs): Don't keep track of basic block boundaries
5486         in this function, do it in insert_one_insn instead.
5487
5488         * reload1.c (reload): Break out some more pieces into separate
5489         functions.
5490         (dump_needs): New function, broken out of reload.
5491         (set_initial_elim_offsets): Likewise.
5492         (init_elim_table): Likewise.
5493         (update_eliminables): Likewise.
5494
5495         * global.c (global_alloc): Delete code to manage the scratch_list.
5496         * local-alloc.c (qty_scratch_rtx): Delete.
5497         (scratch_block): Delete.
5498         (scratch_list): Delete.
5499         (scratch_list_length): Delete.
5500         (scratch_index): Delete.
5501         (alloc_qty_for_scratch): Delete.
5502         (local-alloc): Update initialization of max_qty.
5503         Delete code to manage the scratch list.
5504         Delete code to allocate/initialize qty_scratch_rtx.
5505         (block_alloc): Don't allocate quantities for scratches.
5506         Delete code to manage the scratch list.
5507         * regs.h (scratch_list): Delete declaration.
5508         (scratch_block): Delete declaration.
5509         (scratch_list_length): Delete declaration.
5510         * reload1.c (reload): Delete code to manage the scratch list.
5511         (spill_hard_reg): Likewise.
5512         (mark_scratch_live): Delete.
5513
5514         * recog.c (alter_subreg): Delete declaration.
5515
5516 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
5517
5518         * Makefile.in (cccp.o): Fix typo in last patch.
5519
5520 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5521
5522         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
5523         * config/sh/lib1funcs.asm (___set_fpscr): Add.
5524
5525 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
5526
5527         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
5528         NULL_RTX as an argument.
5529
5530         * Makefile.in (unlibsubdir): Define.
5531         (DRIVER_DEFINES): Use unlibsubdir.
5532         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
5533         (stmp-fixinc): Similarly.
5534
5535 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5536
5537         * regmove.c (regmove_optimize): Add variable old_max_uid.
5538         At the end of the function, update basic_block_end.
5539
5540 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5541
5542         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
5543         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
5544         arbitrary constant.
5545
5546 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
5547
5548         * config/arm/arm.c: Improve interworking support.
5549
5550 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5551
5552         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
5553         copied from reload_out[r] .
5554
5555 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
5556
5557         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
5558         with more than three size ranges.
5559
5560         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
5561
5562         * rtl.c (mode_name): Add a null string at the end of the array.
5563         (mode_wider_mode): Change type to unsigned char.
5564         (mode_mask_array): New variable.
5565         (init_rtl): Update for mode_wider_mode type change.
5566
5567         * rtl.h (mode_wider_mode): Change type to unsigned char.
5568         (mode_mask_array): Declare.
5569         (GET_MODE_MASK): Use mode_mask_array.
5570
5571 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
5572
5573         * calls.c (expand_call) : Encapsulate code into 
5574         copy_blkmode_from_reg.
5575         * expr.c (copy_blkmode_from_reg): New function.
5576         * expr.h (copy_blkmode_from_reg): New function.
5577         * integrate.c (function_cannot_inline_p): We can inline
5578         these now.
5579         (expand_inline_function): Use copy_blkmode_from_reg
5580         if needed.  Avoid creating BLKmode REGs.
5581         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
5582         object.
5583
5584 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
5585
5586         * config/v850/v850.c: Add function prototypes.
5587         Add support for v850 special data areas.
5588
5589         * config/v850/v850.h: Add support for v850 special data areas.
5590         
5591         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
5592         HANDLE_PRAGMA_PACK_PUSH_POP.
5593         (push_alignment): New function: Cache an alignment requested
5594         by a #pragma pack(push,<n>).
5595         (pop_alignment): New function: Pop an alignment from the
5596         alignment stack.
5597         (insert_pack_attributes): New function: Generate __packed__
5598         and __aligned__ attributes for new decls whilst a #pragma pack
5599         is in effect. 
5600         (add_weak): New function: Cache a #pragma weak directive.
5601         (handle_pragma_token): Document calling conventions.  Add
5602         support for #pragma pack(push,<n>) and #pragma pack (pop).
5603
5604         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
5605         are defined enable HANDLE_PRAGMA_PACK.
5606         Move 'struct weak_syms' here (from varasm.c).
5607         Add pragma states for push and pop pragmas.
5608
5609         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
5610         if it is defined.
5611
5612         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
5613         HANDLE_GENERIC_PRAGMAS.
5614         
5615         * varasm.c: Move definition of 'struct weak_syms' into
5616         c-pragma.h. 
5617         (handle_pragma_weak): Deleted.
5618
5619         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5620
5621         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5622
5623         * c-decl.c (start_function): Add invocation of
5624         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
5625
5626         * tm.texi: Remove description of non-existant macro
5627         SET_DEFAULT_SECTION_NAME.
5628         
5629         (HANDLE_SYSV_PRAGMA): Document.
5630         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
5631
5632 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
5633
5634         * config.sub: Recognize i[34567]86-pc-udk as new target.
5635         * configure.in: Likewise.
5636         * config/i386/t-udk: New file.
5637         * config/i386/udk.h: New file.
5638
5639 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
5640
5641         * reorg.c (check_annul_list_true_false): Remove unused variables.
5642         (steal_delay_list_from_target): Add missing "used_annul" variable.
5643         (try_merge_delay_insns): Close out half formed comment.
5644
5645 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
5646
5647         * cpplib.c (macroexpand): If arg->raw_before or
5648         arg->raw_after, remove any no-reexpansion escape at the
5649         beginning of the pasted token.  Correct handling of whitespace
5650         markers and no-reexpand markers at the end if arg->raw_after.
5651
5652         * toplev.c (documented_lang_options): Recognize -include,
5653         -imacros, -iwithprefix, -iwithprefixbefore.
5654         * cpplib.c (cpp_start_read): Process -imacros and -include
5655         switches at the same time and in command-line order, after
5656         initializing the dependency-output code.  Emit properly nested
5657         #line directives for them.  Emit a #line for the main file
5658         before processing these switches, and don't do it again
5659         afterward.
5660
5661 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
5662
5663         * function.c (purge_addressof_1): Use bitfield manipulation
5664         routines to handle mem mode < reg mode.
5665
5666 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
5667
5668         * reorg.c (try_merge_delay_insns): Account for resources referenced
5669         in each instruction in INSN's delay list before trying to eliminate
5670         useless instructions.  Similarly when looking at a trial insn's delay
5671         slots.
5672
5673         * reorg.c (check_annul_list_true_false): New function.
5674         (steal_delay_list_from_{target,fallthrough}): Call it and also
5675         refine tests for when we may annul if already filled a slot.
5676         (fill_slots_from_thread): Likewise.
5677         (delete_from_delay_slot): Return newly-created thread.
5678         (try_merge_delay_isns): Use its new return value.
5679
5680 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
5681
5682         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
5683         used to compute a giv or as some other non-counting use.
5684
5685 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5686
5687         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
5688         * local-alloc.c (find_free_reg): Use it.
5689         * global.c (find_reg): Likewise.
5690         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
5691
5692         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5693         * caller-save.c (init_caller_save): Use it.
5694         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
5695
5696 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
5697
5698         * configure.in: Add --enable-cpplib option which uses cpplib
5699         for cpp, but doesn't link cpplib into cc1.  Make help text
5700         capitalization consistent.
5701         * configure: Rebuilt.
5702
5703 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
5704
5705         * function.c (gen_mem_addressof): If the address REG is
5706         REG_USERVAR_P make the new REG be so also.
5707         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
5708         in an attempt to clarify slightly.
5709
5710 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
5711
5712         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
5713         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
5714
5715 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
5716
5717         * toplev.c:  Fix last patch.
5718
5719 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
5720
5721         * loop.c (get_condition): Fix typo in May 9 change.
5722
5723 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
5724
5725         * invoke.texi (-fexceptions): Merge 2 different descriptions.
5726
5727 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5728
5729         * toplev.c (documented_lang_options): Spelling corrections.
5730
5731 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
5732
5733         * configure.in: new flags --with-ld and --with-as, equivalent
5734         to setting LD and AS environment variables.  Test whether
5735         specified arguments are GNU commands, and report them with
5736         checking messages.  Use the specified AS for configure
5737         tests too.
5738         * configure: ditto
5739         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
5740         * config.in: ditto
5741         * gcc.c (find_a_file): when looking for `as' and `ld', return
5742         the DEFAULT program if it exists
5743         * collect2.c (main): use DEFAULT_LINKER if it exists
5744
5745         * gcc.c (find_a_file): the test for existence of a full
5746         pathname was reversed
5747
5748 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
5749
5750         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
5751         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
5752
5753 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
5754
5755         * tree.h (TYPE_BINFO): Document.
5756
5757 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
5758
5759         * i386-coff.h (dbxcoff.h): Added.
5760
5761 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
5762
5763         * toplev.c:  fix bad patch around flag_data_sections.
5764
5765 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
5766
5767         * reload1.c (reload): Use reload_address_index_reg_class and 
5768         reload_address_base_reg_class when setting
5769         caller_save_spill_class.  (Patch generated by Jim Wilson:
5770         wilson@cygnus.com).
5771
5772 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
5773
5774         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
5775         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
5776         * expr.c (store_field): Add alias_set parameter.  Set the
5777         MEM_ALIAS_SET accordingly, if the target is a MEM.
5778         (expand_assignment): Use it.
5779         (store_constructor_field): Pass 0.
5780         (expand_expr): Likewise.
5781
5782 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
5783  
5784         * flags.h:  Add flag_data_sections.
5785         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
5786         (compile_file):  Error if flag_data_sections not supported.
5787         * varasm.c (assemble_variable):  Handle flag_data_sections.
5788         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
5789         * config/mips/elf.h:  Likewise.
5790         * config/mips/elf64.h:  Likewise.
5791         * invoke.texi:  Describe -fdata-sections.
5792  
5793 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
5794
5795         * invoke.texi (-ffloat-store): Clarify that this option
5796         does not affect intermediate results -- only variables.
5797
5798 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
5799
5800         * cpp.texi: Update for Fortran usage from Craig.
5801
5802 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5803
5804         * rs6000.c (function_arg_boundary): Revert accidental change on
5805         September 18.
5806
5807 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
5808
5809         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
5810         (output_mi_thunk): Declare.
5811
5812         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
5813         (output_function_profiler): Use r12 for temp, instead of r11 so
5814         that we preserve the static chain register.
5815         
5816 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
5817
5818         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
5819
5820 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5821
5822         * sh.c (gen_shl_sext): Fix case 5.
5823
5824 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5825
5826         * reload1.c (reload_combine): Re-add line that got accidentally lost.
5827
5828 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5829
5830         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
5831         accessing variables until they are initialized via va_arg().
5832
5833 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5834
5835         * reload1.c (reload_combine): Initialize set before using.
5836
5837 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
5838
5839         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
5840         won't be emitting.
5841
5842 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
5843
5844         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
5845         operand3 with mask before using it.  Patch provided by Jim Wilson.
5846
5847 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
5848
5849         * config/sparc/sparc.c (function_value): Perform the equivalent of
5850         PROMOTE_MODE for ARCH64.
5851         (eligible_for_epilogue_delay): Allow DImode operations in delay
5852         slot of a return for ARCH64.
5853
5854 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5855
5856         * sh.md (sqrtsf2): Fix mode of sqrt.
5857
5858 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5859
5860         * reload1.c (choose_reload_regs): Also try inheritance when
5861         reload_in is a stack slot of a pseudo, even if we already got a
5862         reload reg.
5863
5864 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5865
5866         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
5867         (reload_cse_regs): New function body: call reload_cse_regs_1,
5868         reload_combine, reload_cse_move2add.
5869         When doing expensive_optimizations, call reload_cse_regs_1 a
5870         second time after reload_cse_move2add.
5871         (reload_combine, reload_combine_note_store): New functions.
5872         (reload_combine_note_use): New function.
5873         (reload_cse_move2add, move2add_note_store): New functions.
5874
5875 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5876
5877         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
5878         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
5879
5880         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
5881         more than 3 such reloads.
5882
5883         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
5884         RELOAD_FOR_X_ADDR_ADDR reload.
5885
5886 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5887
5888         * expr.c (store_constructor): When initializing a field that is smaller
5889         than a word, at the start of a word, try to widen it to a full word.
5890
5891         * cse.c (cse_insn): When we are about to change a register,
5892         remove any invalid references to it.
5893
5894         (remove_invalid_subreg_refs): New function.
5895         (mention_regs): Special treatment for SUBREGs.
5896         (insert_regs): Don't strip SUBREG for call to mention_regs.
5897         Check if reg_tick needs to be bumped up before that call.
5898         (lookup_as_function): Try to match known word_mode constants when
5899         looking for a norrower constant.
5900         (canon_hash): Special treatment for SUBREGs.
5901
5902 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5903
5904         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
5905         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
5906         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
5907         and offsets in actual stack trampoline code so they match the
5908         commentary and actually work.
5909
5910 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
5911
5912         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
5913         tmake_file.
5914         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
5915         tmake_file.  Set extra_parts to needed crt objects.
5916         * configure: Rebuilt.
5917         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
5918         (TARGET_DEFAULT): Set if default is v9 or ultra.
5919         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
5920         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
5921         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
5922         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
5923         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
5924         (TARGET_VERSION): Define.
5925         (MULTILIB_DEFAULT): Define.
5926         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
5927         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
5928         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
5929         appropriately.
5930         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
5931         * config/sparc/sparc.c (sparc_override_options): If arch and
5932         pointer size disagree, emit diagnostic and fix it up.  If
5933         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
5934         V8PLUS in 64-bit mode.
5935         * config/sparc/t-linux64: New file.
5936         * config/sparc/t-sol2-64: New file.
5937         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
5938         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
5939         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
5940         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
5941         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
5942         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
5943         Define.
5944         (STARTFILE_SPEC): Set approriately based upon those.
5945         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
5946         disposition of DEFAULT_ARCH32_P.
5947         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
5948         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
5949         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
5950         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
5951         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
5952         arch64/v9.
5953         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
5954         
5955 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
5956
5957         * rtl.h (init_virtual_regs): New function.
5958         * emit-rtl.c (init_virtual_regs): Define.
5959         (insn_emit): Use it.
5960         * integrate.c (save_for_inline_copying): Likewise.
5961
5962 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
5963
5964         * config/arm/thumb.h: The following patches were made by Jim Wilson:
5965         (enum reg_class): Add NONARG_LO_REGS support.
5966         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
5967         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
5968         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
5969         completes.  Re-enable HImode REG+OFFSET addresses.
5970         (LEGITIMIZE_RELOAD_ADDRESS): Define.
5971
5972         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
5973
5974 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
5975
5976         * alpha.c (get_aligned_mem): Revert Sep 20 change.
5977         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
5978         (alpha_align_insns): Properly calculate initial offset wrt max_align.
5979
5980 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
5981
5982         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
5983         jumps as a single entity, taking into account the size of the
5984         table.
5985
5986 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5987
5988         * tree.def (SWITCH_EXPR): New tree node definition.
5989
5990 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
5991
5992         * version.c: Bump for snapshot.
5993
5994 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
5995
5996         * version.c: Bump for snapshot.
5997
5998 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
5999
6000         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
6001         NetBSD.
6002
6003 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
6004
6005         * Revert this patch.
6006         * reload.c (find_reloads): Do not replace a pseudo with
6007         (MEM (reg_equiv_addr)) in the initializing insn for the
6008         pseudo.
6009
6010 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
6011
6012         * final.c (final_scan_insn): Disable tracking CC across branches.
6013
6014 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
6015
6016         * expr.h (eh_rtime_match_libfunc): New extern declaration.
6017         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
6018         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
6019         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
6020         NULL. Only include <stdio.h> if inhibit_libc is not defined.
6021
6022 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
6023
6024         * toplev.c (rest_of_compilation): Skip compiling anything with
6025         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
6026
6027 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
6028
6029         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
6030         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
6031         use in_libcall_block.
6032         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
6033         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
6034         to INSN.
6035
6036 Mon Sep 21 14:02:23 1998
6037
6038         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
6039         typo in no-fancy-math-387 description.
6040
6041 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
6042
6043         * version.c: Bump for snapshot.
6044
6045 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
6046
6047         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
6048
6049 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
6050
6051         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
6052         documented in install.texi.
6053         (TARGET_OPTIONS) Likewise.
6054
6055 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
6056
6057         * version.c: Bump for snapshot.
6058
6059 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
6060
6061         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
6062         * cccp.c (main): Likewise.
6063
6064         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
6065         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
6066         macro-use bugs.
6067
6068 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
6069
6070         * Makefile.in (LIBS):  Link in libiberty.a.
6071         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
6072
6073 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
6074
6075         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
6076         it to update bb boundaries.  Update caller.
6077         * function.c (reposition_prologue_and_epilogue_notes): Update
6078         bb boundaries wrt the moved note.
6079
6080 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
6081         
6082         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
6083         problems.
6084         * configure: Regenerate.
6085
6086 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
6087
6088         * alpha.c (alpha_sr_alias_set): New variable.
6089         (override_options): Set it.
6090         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
6091         (mode_mask_operand): Fix signed-unsigned comparision warning.
6092         (alpha_expand_block_move): Likewise.
6093         (print_operand): Likewise.
6094         (get_aligned_mem): Use change_address.
6095         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
6096         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
6097         (alphaev4_next_nop, alphaev5_next_nop): New functions.
6098         (alpha_align_insns): Remade from old alphaev5_align_insns
6099         to handle multiple processors.
6100         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
6101         * output.h (label_to_alignment): Prototype.
6102
6103         * tree.c (new_alias_set): New function.
6104         * tree.h (new_alias_set): Declare it.
6105         * c-common.c (c_get_alias_set): Use it.
6106
6107 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
6108
6109         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
6110         to an ABS expr, convert an unsigned input to signed.
6111         
6112 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
6113
6114         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
6115
6116 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6117
6118         * configure.in: Add support for c4x targets.
6119         * configure: Rebuilt.
6120
6121 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
6122
6123         * combine.c (distribute_notes): If an insn is a cc0 user, only
6124         delete it if we can also delete the cc0 setter.
6125
6126 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
6127
6128         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
6129         (invert_truthvalue): Enable truthvalue inversion for
6130         floating-point operands if -ffast-math.
6131
6132 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
6133                          
6134         * configure.in: Disable collect2 for nextstep.  Instead use
6135         crtbegin/crtend.
6136         * configure: Rebuilt.
6137         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
6138         (ENDFILE_SPEC): Define.
6139         (OBJECT_FORMAT_MACHO): Define.
6140         (EH_FRAME_SECTION_ASM_OP): Define.
6141         * crtstuff.c: Handle MACHO.
6142
6143 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
6144
6145         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
6146
6147 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
6148
6149         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
6150         (_fpadd_parts): Get sign right for 0.
6151
6152 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6153
6154         * ginclude/varargs.h: Add support for C4x target.
6155         * ginclude/stdargs.h: Likewise.
6156
6157 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
6158
6159         * alpha.c (alpha_return_addr): SET should be VOIDmode.
6160         (alpha_emit_set_long_const): Rewrite to be callable from reload
6161         and 32-bit hosts.
6162         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
6163         * alpha.md (movdi): Likewise.
6164
6165 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
6166
6167         * arm.c (add_constant): New parameter address_only, change caller.
6168         Set it non-zero if taking the address of an item in the pool.
6169         (arm_reorg): Handle cases where we need the address of an item in
6170         the pool.
6171
6172         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
6173         a memory address.
6174         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
6175         memory addresses that are not in standard canonical form.
6176
6177 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
6178
6179         * README.C4X: New file with information about the c4x ports.
6180         * ginclude/va-c4x.h: New file for c4x varargs support.
6181         * config/c4x: New directory with c4x port files.
6182
6183 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
6184
6185         * reload.c (find_reloads): Do not replace a pseudo with 
6186         (MEM (reg_equiv_addr)) in the initializing insn for the
6187         pseudo.
6188
6189 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6190
6191         * toplev.c (rest_of_compilation): Set bct_p on second call to
6192         loop_optimize.
6193         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
6194         bct_p.
6195         (strength_reduce): Only call analyze_loop_iterations and
6196         insert_bct if bct_p set.
6197         (check_dbra_loop): Fix typo.
6198         (insert_bct): Use word_mode instead of SImode.
6199         (instrument_loop_bct): Likewise.  Do not delete iteration count
6200         condition code generation insn.  Initialize iteration count before
6201         loop start.
6202         * rtl.h (loop_optimize): Update prototype.
6203
6204         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
6205         not doubleword aligned.
6206
6207         * rs6000.c (optimization_options): New function.
6208         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
6209         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
6210         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
6211         first; cr1 can be used for FP record condition insns.
6212
6213 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
6214
6215         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
6216         PREDICATE_CODES.
6217
6218         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
6219         patterns.
6220
6221         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
6222         operators.
6223         (block_move_call): New function: Call a library routine to copy a
6224         block of memory.
6225         (m32r_expand_block_move): New function: Expand a "movstrsi"
6226         pattern into a sequence of insns.
6227         (m32r_output_block_move): New function: Expand a
6228         "movstrsi_internal" pattern into a sequence of assembler opcodes.
6229         (m32r_block_immediate_operand): New function: Return true if the
6230         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
6231         
6232 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
6233
6234         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
6235         re-align some code.
6236         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
6237
6238 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6239
6240         * regmove.c (copy_src_to_dest): Check that modes match.
6241
6242 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
6243
6244         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
6245
6246 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
6247
6248         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
6249         narrower than FLOAT_REGS.
6250
6251 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6252
6253         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
6254         * cccp.c: ditto
6255         * Makefile.in (old_gxx_include_dir): removed
6256
6257 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
6258
6259         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
6260         new specification.
6261
6262         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
6263         (sh_handle_pragma): Change function arguments to match new
6264         specification for HANDLE_PRAGMA. 
6265
6266 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6267
6268         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
6269         `unsigned char'.
6270         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
6271         When generating output, initialize missing struct member to zero.
6272
6273 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6274
6275         * regmove.c (copy_src_to_dest): Don't copy if that requires
6276         (a) new register(s).
6277
6278 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6279
6280         * global.c (reg_allocno): Now static.
6281         * reload1.c (reg_allocno): Delete declaration.
6282         (order_regs_for_reload): Take no arguments.  Don't treat regs
6283         allocated by global differently than those allocated by local-alloc.
6284
6285 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
6286
6287         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
6288         condition, fix format strings.
6289         (output_function_epilogue): Likewise.
6290
6291         * m68k/m68k.c: Don't include <stdlib.h> directly.
6292
6293 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
6294
6295         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
6296         mem_first_set, mem_last_set; because 0 can be a CUID.
6297         (oprs_unchanged_p): Use new definition.
6298         (record_last_reg_set_info): Likewise.
6299         (record_last_mem_set_info): Likewise.
6300         (compute_hash_table): Likewise.
6301
6302 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
6303
6304         * rs6000.c (output_epilogue): Handle Chill.
6305
6306         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
6307         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
6308
6309         * combine.c (make_extraction): If no mode is specified for
6310         an operand of insv, extv, or extzv, default it to word_mode.
6311         (simplify_comparison): Similarly.
6312         * expmed.c (store_bit_field): Similarly.
6313         (extract_bit_field): Similarly.
6314         * function.c (fixup_var_regs_1): Similarly.
6315         * recog.c (validate_replace_rtx_1): Similarly.
6316         * mips.md (extv, extzv, insv expanders): Default modes for most
6317         operands.  Handle TARGET_64BIT.
6318         (movdi_uld, movdi_usd): New patterns.
6319
6320         * pa.c (emit_move_sequence): Do not replace a pseudo with its
6321         equivalent memory location unless we have been provided a scratch
6322         register.  Similarly do not call find_replacement unless a
6323         scratch register has been provided.
6324
6325 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6326
6327         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
6328         return FLOAT_REGS.
6329
6330 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
6331
6332         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
6333         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
6334         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
6335         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
6336         * c-decl.c (init_decl_processing): Update accordingly.
6337         * expr.c (expand_builtin): Likewise.
6338
6339         * rtl.h (global_rtl): Add cfa entry.
6340         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
6341         (LAST_VIRTUAL_REGISTER): Update.
6342         * emit-rtl.c (global_rtl): Add cfa entry.
6343         (init_emit): Initialize it.
6344         * function.c (cfa_offset): New.
6345         (instantiate_virtual_regs): Initialize it.
6346         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
6347         (expand_function_end): Call expand_eh_return.
6348         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
6349
6350         * except.c (current_function_eh_stub_label): Kill.
6351         (current_function_eh_old_stub_label): Likwise; update all references.
6352         (expand_builtin_set_return_addr_reg): Kill.
6353         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
6354         (expand_builtin_set_eh_regs): Kill.
6355         (eh_regs): Produce a third reg for the actual handler address.
6356         (eh_return_context, eh_return_stack_adjust): New.
6357         (eh_return_handler, eh_return_stub_label): New.
6358         (init_eh_for_function): Initialize them.
6359         (expand_builtin_eh_return, expand_eh_return): New.
6360         * except.h: Update prototypes.
6361         * flow.c (find_basic_blocks_1): Update references to the stub label.
6362         * function.h (struct function): Kill stub label elements.
6363
6364         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
6365         register number is one that would be in the previous window.
6366         Provide a dummy definition for non-windowed targets.
6367         (get_reg_addr): New function.
6368         (get_reg, put_reg, copy_reg): Use it.
6369         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
6370         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
6371
6372         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
6373         (alpha_init_expanders): Initialize it.
6374         (alpha_expand_epilogue): Use it.
6375         * alpha.h: Declare it.
6376         * alpha.md (eh_epilogue): New.
6377
6378         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
6379         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
6380
6381 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
6382
6383         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
6384         flag bit mask.
6385
6386 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
6387
6388         * except.h (struct eh_entry): Add false_label field.
6389         (end_catch_handler): Add prototype.
6390         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
6391         (start_catch_handler): When using old style exceptions, issue
6392         runtime typematch code before continuing with the handler.
6393         (end_catch_handler): New function, generates label after handler
6394         if needed by older style exceptions.
6395         (expand_start_all_catch): No need to check for new style exceptions.
6396         (output_exception_table_entry): Only output the first handler label
6397         for old style exceptions.
6398         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
6399         mechanism into one function, if a runtime matcher is provided.
6400
6401 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
6402
6403         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
6404
6405 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
6406
6407         * integrate.c (copy_decl_list): Fix typo.
6408
6409 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6410
6411         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
6412         attribute.
6413
6414 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
6415
6416         * version.c: Bump for snapshot.
6417
6418 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
6419
6420         * version.c: Bump for snapshot.
6421
6422 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
6423
6424         * version.c: Bump for snapshot.
6425
6426 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6427
6428         * invoke.texi (C Dialect Options): Put back missing @end itemize.
6429
6430 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6431
6432         * configure.in: remove usage of `!' to negate the result of a
6433         command; some common shells do not support it
6434
6435 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6436
6437         * configure.in: in sparc9-sol2 config, use 'if test' not
6438         brackets.
6439         * configure: Rebuilt.
6440
6441         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
6442         CM_MEDANY.
6443         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
6444         (CPP_CPU_DEFAULT_SPEC): Likewise.
6445         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
6446         for arch64 libfuncs.
6447         
6448         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
6449         for operand zero.
6450
6451 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6452
6453         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
6454
6455         * collect2.c: Don't declare `sys_siglist' here.
6456         (my_strsignal): Prototype and define new function.  Use it in
6457         place of `sys_siglist' hacks.
6458
6459         * mips_tfile.c:  Likewise.
6460
6461         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
6462         (GCC_NEED_DECLARATIONS): Likewise.
6463
6464         * system.h (strsignal): Prototype it, if necessary.
6465         (sys_siglist): Declare it, if necessary.
6466
6467 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6468
6469         * loop.c (move_movables): While removing insn sequences, preserve
6470         the next pointer of the most recently deleted insn when we skip
6471         over a NOTE.
6472
6473 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
6474
6475         * objc/config-lang.in: Do not output the name of the selected
6476         thread file when building the front-end.  The Makefile for the
6477         runtime library will do this.
6478
6479         * objc/Make-lang.in: Do not build the runtime library or install
6480         the Objective C header files.  The Makefile for the runtime
6481         library will do this.
6482
6483         * objc/Makefile.in (all.indirect): Only build the front-end.
6484         (compiler): Rename to `frontend'.
6485         (obj-runtime): Remove target.
6486         (copy-headers): Likewise.
6487         (clean): No need to remove `libobjc.a' any longer.
6488
6489 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
6490
6491         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
6492         supported with -mcpu=xxx.
6493
6494 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6495
6496         * flow.c (mark_set_1): Recognize multi-register structure return
6497         values in CALL insns.
6498         (mark_used_regs): Likewise.
6499         (count_reg_sets_1): Likewise.
6500         (count_reg_references): Likewise.
6501         * rtlanal.c (note_stores): Likewise.
6502         (reg_overlap_mentioned_p): Likewise.
6503         * haifa-sched.c (check_live_1): Likewise.
6504         (update_live_1): Likewise.
6505         (sched_analyze_1): Likewise.
6506         (sched_note_set): Likewise.
6507         (birthing_insn_p): Likewise.
6508         (attach_deaths): Likewise.
6509
6510         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
6511
6512
6513 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
6514
6515         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
6516
6517 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6518
6519         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
6520
6521 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
6522
6523         * configure.in: Add check for GAS subsection -1 support.
6524         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
6525         * configure config.in: Rebuilt.
6526         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
6527         SImode is subsection -1 works, else use DImode.
6528         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
6529         subsection -1 works.
6530         * config/sparc/sparc.c (sparc_output_addr_vec,
6531         sparc_output_addr_diff_vec): Use them if defined.
6532
6533 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
6534
6535         * tree.h (DECL_ORIGIN): New macro.
6536         * integrate.c (copy_and_set_decl_abstract_origin): New function.
6537         (copy_decl_list): Use it.
6538         (integrate_parm_decls): Likewise.
6539         (integrate_decl_tree): Likewise.
6540         * dwarf2out.c (decl_ultimate_origin): Simplify.
6541         * dwarfout.c (decl_ultimate_origin): Likewise.
6542         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
6543         (pushdecl): Likewise.
6544
6545 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
6546
6547         * config/rs6000/rs6000.c (output_epilog): Add Java support.
6548
6549 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
6550
6551         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
6552
6553 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
6554
6555         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
6556         empty or has a single entry.
6557
6558         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
6559         before calling reg_to_stack.
6560
6561 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
6562
6563         * alpha.c (alphaev5_insn_pipe): Abort on default case.
6564         (alphaev5_next_group): Swallow CLOBBERs and USEs.
6565
6566         * c-tree.h (warn_long_long): Declare it.
6567
6568 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
6569
6570         * emit-rtl.c (gen_lowpart_common): Disable optimization of
6571         initialized float-int union if the value is a NaN.
6572
6573 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
6574
6575         * c-lex.c (real_yylex): Don't warn about long long constants if 
6576         we're allowing long long
6577
6578 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6579
6580         * except.h (current_function_eh_stub_label): Declare.
6581         (current_function_eh_old_stub_label): Declare.
6582         * function.h (struct function): New members eh_stub_label and
6583         eh_old_stub_label.
6584         * except.c (current_function_eh_stub_label): New variable.
6585         (current_function_eh_old_stub_label): New variable.
6586         (init_eh_for_function): Clear them.
6587         (save_eh_status): Save them.
6588         (restore_eh_status): Restore them.
6589         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
6590         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
6591         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
6592         make an edge from the block that contains it to the block starting
6593         with the label if this label is one of the eh stub labels.
6594         If eh stub labels exist, show they are reachable from the last block
6595         in the function.
6596
6597         * reload1.c (reload): Break out several subroutines and make some
6598         variables global.
6599         (calculate_needs_all_insns): New function, broken out of reload.
6600         (calculate_needs): Likewise.
6601         (find_reload_regs): Likewise.
6602         (find_group): Likewise.
6603         (find_tworeg_group): Likewise.
6604         (something_needs_reloads): New global variable, formerly in reload.
6605         (something_needs_elimination): Likewise.
6606         (caller_save_spill_class): Likewise.
6607         (caller_save_group_size): Likewise.
6608         (max_needs): Likewise.
6609         (group_size): Likewise.
6610         (max_groups): Likewise.
6611         (max_nongroups): Likewise.
6612         (group_mode): Likewise.
6613         (max_needs_insn): Likewise.
6614         (max_groups_insn): Likewise.
6615         (max_nongroups_insn): Likewise.
6616         (failure): Likewise.
6617
6618         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
6619
6620 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
6621
6622         * loop.c (load_mems): Copy rtx for output mem.
6623
6624 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
6625
6626         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
6627         mips1 or mips2 either.
6628
6629 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
6630
6631         * pa.c (pa_reorg): New marking scheme for jumps inside switch
6632         tables.
6633         (pa_adjust_insn_length): Update to work with new marking scheme
6634         for jumps inside switch tables. 
6635         * pa.md (switch_jump): Remove pattern.
6636         (jump): Handle jumps inside jump tables.
6637
6638         * Makefile.in (profile.o): Depend on insn-config.h
6639
6640 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
6641
6642         * iris6.h (DWARF2_UNWIND_INFO): Undef.
6643
6644 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6645
6646         Add preliminary native sparcv9 Solaris support.
6647         * configure.in: Recognize sparv9-*-solaris2*
6648         * configure: rebuilt
6649         * config.sub: Recognize sparcv9 just like sparc64.
6650         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
6651         config/sparc/sol2-cn.asm: Macroize so it can be shared between
6652         32-bit and 64-bit Solaris systems.
6653         * config/sparc/t-sol2: Assemble those with cpp.
6654         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
6655         (*TF*_LIBCALL): If ARCH64 use V9 names.
6656         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
6657
6658 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
6659
6660         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
6661         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
6662         not doing pic.
6663         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
6664         Pmode.
6665         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
6666         to Pmode if CASE_VECTOR_MODE is something else.
6667
6668 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
6669
6670         * prefix.c (update_path): Correctly handle cases where PATH is
6671         a substring of the builtin prefix, but specifies a different
6672         directory location.
6673
6674 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
6675
6676         * expr.c: Corrected comment about what MOVE_RATIO does.
6677         * config/alpha/alpha.h: Ditto.
6678         * config/1750a/1750a.h: Ditto.
6679         * config/clipper/clipper.h: Ditto.
6680         * config/i386/i386.h: Ditto.
6681
6682 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
6683
6684         * configure.in (m68k-next-nextstep3*): Use collect2.
6685         Similarly for x86 NeXT configurations.
6686         * configure: Rebuilt.
6687
6688 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
6689
6690         * configure.in: Don't assume srcdir is .../gcc
6691         * configure: Rebuilt.
6692
6693 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
6694
6695         * global.c: Update comments.
6696         (global_alloc): Assign allocation-numbers
6697         even for registers allocated by local_alloc in case
6698         they are later spilled and retry_global_alloc is called.
6699         (mark_reg_store, mark_reg_clobber,
6700         mark_reg_conflicts, mark_reg_death): Always record a
6701         conflict with a pseudo register even if it has been
6702         assigned to a hard register.
6703         (dump_conflicts): Don't list pseudo registers already assigned to
6704         a hard register as needing to be allocated, but do list their
6705         conflicts.
6706         * local-alloc.c: Update comment.
6707
6708 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
6709
6710         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
6711         * configure: Rebuilt.
6712
6713 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
6714
6715         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
6716         missing 'c'.
6717         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
6718         for all targets that set -msoft-float.
6719
6720 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6721
6722         * toplev.c (print_switch_values): Make static to match prototype.
6723
6724 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
6725
6726         * configure.in: If we are unable to find the "gnatbind" program,
6727         then do not configure the ada subdir.
6728         * configure: Rebuilt.
6729
6730 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
6731
6732         * version.c: Bump for snapshot.
6733
6734 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
6735
6736         * version.c: Bump for snapshot.
6737
6738 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6739
6740         * Makefile.in (toplev.o): Depend on $(EXPR_H).
6741         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
6742
6743         * gansidecl.h: Define ATTRIBUTE_NORETURN.
6744
6745         * genattrtab.c: Have insn-attrtab.c include toplev.h.
6746
6747         * genextract.c: Have insn-extract.c include toplev.h.
6748
6749         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
6750
6751         * toplev.c: Include expr.h.
6752         (really_sorry, fancy_abort): Remove prototypes.
6753         (set_target_switch): Add argument in prototype.
6754         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
6755         (v_really_sorry): Likewise.
6756         (print_version, print_single_switch, print_switch_values): Make
6757         static and add prototype arguments.
6758         (decl_printable_name): Add prototype arguments.
6759         (lang_expand_expr_t): New typedef.
6760         (lang_expand_expr): Declare as a lang_expand_expr_t.
6761         (incomplete_decl_finalize_hook): Add prototype argument.
6762         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
6763         (botch): Likewise for variable `s'.
6764         (rest_of_type_compilation): Mark variables `type' and `toplev'
6765         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
6766         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
6767         (display_help): Make variable `i' an `unsigned long'.
6768         (main): Remove unused parameter `envp'.
6769         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
6770         Cast -1 when comparing it with a `size_t'.
6771
6772         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
6773         prototype with ATTRIBUTE_NORETURN.
6774         (fatal_insn_not_found, fatal_insn, really_sorry,
6775         push_float_handler, pop_float_handler): Add prototypes.
6776         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
6777         (do_abort, botch): Add prototypes.
6778         
6779 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
6780
6781         * final.c (final): If a label is reached only from a single jump,
6782         call NOTICE_UPDATE_CC on the jump and its predecessor before
6783         emitting the insn after the label.
6784         
6785         * i386.h: Add AMD K6 support.
6786         Change TARGET_* macros to use table lookup.
6787         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
6788         (ADJUST_COST): Change definition to call function in i386.c.
6789         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
6790         * i386.c: Add AMD K6 support.
6791         Add constants for feature tests used by TARGET_* macros.
6792         (split_di): If before reload, call gen_lowpart and gen_highpart.
6793         (x86_adjust_cost): New function.
6794         (put_jump_code): New function.
6795         (print_operand): New codes 'D' and 'd'.
6796         * i386.md: New insn types.  New insn attribute "memory".
6797         Redefine scheduling parameters to use new types and add AMD K6
6798         support.  Explicitly set type of most insns.
6799         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
6800         Pro and K6 prefer movl $1,reg to incl reg.
6801         (adddi3, subdi3): Set cc_status.
6802         (DImode shift patterns): Change label counters from HOST_WIDE_INT
6803         to int; x86 can't have more than 2^31 DImode shifts per file.
6804         (setcc): Combine all setcc patterns.  Allow writing memory.
6805         Combine all jump patterns using match_operator.
6806         (*bzero): Name pattern.  Emit mutliple stos instructions when that
6807         is faster than rep stos.
6808         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
6809         add define_split.
6810
6811 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
6812
6813         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
6814         linking.
6815
6816 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
6817
6818         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
6819         not whatever we're generating now.
6820
6821         * alpha.c (set_frame_related_p, FRP): New.
6822         (alpha_expand_prologue): Mark frame related insns.
6823         (alpha_expand_epilogue): Likewise, but with a null FRP.
6824         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
6825         * alpha.md (exception_receiver): New.
6826         * alpha/crtbegin.asm (.eh_frame): New beginning.
6827         (__do_frame_setup, __do_frame_takedown): New.
6828         * alpha/crtend.asm (.eh_frame): New ending.
6829         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
6830         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
6831         (ASM_FILE_START): Don't emit .file for dwarf2.
6832
6833         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
6834         * rtl.c (reg_note_name): Likewise.
6835         * rtl.texi (REG_NOTES): Likewise.
6836         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
6837         without an offset.
6838
6839 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
6840
6841         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
6842         * i386.md (movsf, movdf, movxf): Validate memory address returned
6843         from force_const_mem.  Kill useless REG_EQUAL setting code.
6844
6845 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
6846
6847         * m68k.md (zero_extendsidi2): Fix typo.
6848
6849 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
6850
6851         * configure.in: Removed references to the removed file
6852         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
6853         * arm*-*-netbsd* and ns32k-*-netbsd*.
6854         * config/i386/xm-netbsd.h: Removed unnecessary file.
6855         * config/m68k/xm-netbsd.h: Likewise.
6856         * config/sparc/xm-netbsd.h: Likewise.
6857         * config/mips/xm-netbsd.h: Likewise.
6858
6859 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
6860
6861         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
6862         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
6863
6864         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
6865         for exact section attributions.
6866
6867         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
6868         runtime.
6869         * i386/crtdll.h (CPP_PREDEFINES): Define.
6870
6871 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
6872
6873         * m68k.md (5200 movqi): Do not allow byte sized memory references
6874         using address regs.
6875         * m68k.c (output_move_qimode): Do not use byte sized operations on
6876         address registers.
6877
6878         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
6879         explicit rules for building.  Similarly for alloca, vfprintf,
6880         choose-temp and mkstemp, getopt, getopt1, and obstack.
6881         (INCLUDES): Add $(srcdir)/../include.
6882         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
6883         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
6884
6885 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
6886
6887         * gcc.c (do_spec_1): [case 'o'] Account for
6888         lang_specific_extra_outfiles.
6889         (main): Correctly clear all slots in outfiles for
6890         lang_specific_extra_outfiles.  Set input_file_number before
6891         calling lang_specific_pre_link.
6892
6893 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
6894
6895         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
6896
6897 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6898
6899         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
6900         cases, use xword.
6901         (sparc_output_deferred_case_vectors): If no work to do, return.
6902         Fix thinko in Sept 1 change.
6903
6904 1998-09-03  SL Baur  <steve@altair.xemacs.org>
6905
6906         * Makefile.in: add semicolon in BISON definition for portability.
6907
6908 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
6909
6910         * config/nextstep.c (handle_pragma): Correct name of third
6911         argument.
6912
6913 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
6914
6915         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
6916         * config/m32r/m32r.h: Make register 17 be fixed.
6917         * config/m32r/m32r.c: Use SImode for cc operations.
6918
6919 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
6920
6921         * invoke.texi (Warning Options): Add -Wnon-template-friend
6922         documentation.
6923
6924 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
6925
6926         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
6927
6928 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6929
6930         * rs6000.md (movsf): Disable explicit secondary-reload-like
6931         functionality if TARGET_POWERPC64.
6932         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
6933         functionality.
6934
6935 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
6936
6937         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
6938         and term.h from fixinc.wrap.
6939
6940 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6941
6942         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
6943         safe to include both string.h and strings.h together.
6944         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
6945         which headers to search for function declarations.  Continue to
6946         prefer string.h over strings.h when both are not acceptable.
6947
6948         * acconfig.h (STRING_WITH_STRINGS): Add stub.
6949
6950         * configure.in: Call GCC_HEADER_STRING.
6951
6952         * system.h: Test STRING_WITH_STRINGS when deciding which headers
6953         to include.  Continue to prefer string.h over strings.h when both
6954         are not acceptable.
6955
6956 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6957
6958         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
6959         not assume top 32-bits of symbolic addresses are zero if
6960         flag_pic.
6961
6962 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
6963
6964         * ginclude/va-alpha.h: Protect entire second portion of the
6965         file against double inclusion.
6966
6967 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
6968
6969         Added support for the Boehm's garbage collector.
6970         * configure.in: Handle --enable-objc-gc.
6971         * configure: Rebuilt.
6972         * Makefile.in (CHECK_TARGETS): Add check-objc.
6973         (check-objc): New rule.
6974         * objc/Make-lang.in: Build a different Objective-C library that
6975         runs with the Boehm's collector.
6976         * objc/encoding.c (objc_round_acc_size_for_types): New function.
6977         * objc/encoding.c: Correctly compute the size of compound types in
6978         the presence of bitfields. Skip the variable name of the type if
6979         any. Added support for long long.
6980         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
6981         (_F_GCINVISIBLE): New mask.
6982         * objc/gc.c: New file. Compute the type memory mask associated with
6983         a class based on the runtime information.
6984         * objc/misc.c: Added the hooks that use the Boehm's collector
6985         allocation functions.
6986         * objc/objc-act.c (build_class_template): Generate a new class
6987         member (gc_object_type) to hold the class' type memory mask.
6988         (build_shared_structure_initializer): Initialize the new member to
6989         NULL.
6990         (encode_complete_bitfield): New function. Generate the new
6991         encoding.
6992         (encode_field_decl): Generate the new encoding only for the GNU
6993         runtime.
6994         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
6995         long long types.
6996         (class_get_gc_object_type): New function to mark a pointer instance
6997         variable as a weak pointer.
6998         * objc/objc-features.texi: New file.
6999         * objc/objc.h (gc_object_type): New class member.
7000         * objc/objects.c (class_create_instance): Create a typed memory
7001         object when compiled with Boehm's collector support.
7002         * objc/sendmsg.c (__objc_init_install_dtable): Call
7003         __objc_send_initialize instead of setting the initialize flag.
7004         (__objc_send_initialize): Call __objc_generate_gc_type_description
7005         to generate the class type memory mask. Rewrite the code that
7006         sends the +initialize so that it is called only once (bug report
7007         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
7008         * testsuite/objc: New testsuite for Objective-C type encoding.
7009         * testsuite/lib/objc-torture.exp: New file.
7010         * testsuite/lib/objc.exp: New file.
7011
7012 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
7013
7014         * jump.c (jump_optimize): In if/then/else transformations, add
7015         another call to modified_between_p for the jump insn.
7016
7017 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
7018
7019         * fix-header.c (symlink): Treat like readlink.
7020
7021 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7022
7023         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
7024         as FT_float.
7025
7026 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
7027
7028         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
7029         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
7030         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
7031         
7032         * config/nextstep.c (handle_pragma): Take three arguments, as per
7033         the new HANDLE_PRAGMA macro specification.
7034         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
7035         per the new HANDLE_PRAGMA macro specification.
7036         * config/i960/i960.c (process_pragma): Take three arguments, as
7037         per the new HANDLE_PRAGMA macro specification.
7038
7039 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
7040
7041         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
7042         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
7043         if unknown pragmas are encountered.
7044         (handle_sysv_pragma): Interpret return code from
7045         handle_pragma_token ().  Return success/failure indication rather
7046         than next unprocessed character. 
7047         (pragma_getc): New function: retrieves characters from the
7048         input stream.  Defined when HANDLE_PRAGMA is enabled.
7049         (pragma_ungetc): New function: replaces characters back into the
7050         input stream.  Defined when HANDLE_PRAGMA is enabled.
7051         
7052         * c-pragma.c (handle_pragma_token): Return success/failure status
7053         of the parse.
7054         
7055         * c-pragma.h: Change prototype of handle_pragma_token().
7056
7057         * varasm.c: (handle_pragma_weak): Only create this function if
7058         HANDLE_PRAGMA_WEAK is defined.
7059
7060         * c-common,c (decl_attributes): If defined call the expression
7061         contained within the INSERT_ATTRIBUTES macro before adding
7062         attributes to a decl.
7063
7064         * tm.texi (HANDLE_PRAGMA): Document the new verion of
7065         HANDLE_PRAGMA, which takes three arguments.
7066         (INSERT_ATTRIBUTES): Document this new macro.  
7067
7068         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
7069         new INSERT_ATTRIBUTES macro.
7070
7071 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7072
7073         * config/sparc/sparc.md (movdf): Only generate special RTL for
7074         LABEL_REFs when PIC.
7075         (move_label_di): Remove
7076         (movdi_pic_label_ref, movdi_high_pic_label_ref,
7077         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
7078         references when PIC.
7079         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
7080         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
7081         output an .xword for all 64-bit cases.
7082         
7083 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7084
7085         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
7086         alignment, use FUNCTION_BOUNDARY instead.
7087         (sparc_output_deferred_case_vectors): Likewise.
7088
7089 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7090
7091         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
7092         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
7093
7094 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
7095
7096         * alpha/va_list.h: New file.
7097         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
7098
7099 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
7100
7101         * NEWS: Add SCO Openserver and Unixware 7 notes.
7102
7103         * NEWS: Fix typos.
7104
7105 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
7106
7107         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
7108         (record_constant_1): Handle RANGE_EXPR.
7109
7110 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
7111
7112         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
7113         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
7114         and NOTE_INSN_RANGE_END specially.
7115         (reemit_notes): Likewise.
7116
7117 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7118
7119         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
7120         (ultrasparc_sched_init): Remove unneeded &.
7121
7122 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7123
7124         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
7125         for m68020-60, to prevent the use of fintrz.
7126
7127 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
7128
7129         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
7130         even in stage1. 
7131         * Makefile.in: Likewise.
7132         * configure: Regenerated.
7133
7134 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
7135
7136         * configure.in (gxx_include_dir): Changed to
7137         '${prefix}/include/g++'-${libstdcxx_interface}.
7138         * configure: Rebuilt.
7139
7140 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
7141
7142         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
7143         consistent.
7144         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
7145         *sequences* *below* which scalar moves will be used.
7146
7147 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
7148
7149         * collect2.c (mktemp): Delete unused declaration.
7150
7151         * config/xm-netbsd.h: Remove unnecessary file.
7152         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
7153         file anymore, it is not needed.
7154
7155 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
7156
7157         * convert.c (convert_to_integer): Issue an error on conversions to
7158         incomplete types.
7159
7160 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
7161
7162         * Makefile.in: Add lang_tree_files and gencheck.h.
7163         * configure.in: Generate them.
7164         * gencheck.c: Include gencheck.h.
7165
7166 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7167
7168         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
7169         movdi_lo_sum_pic and movdi_high_pic and make visible.
7170         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
7171         emit these when Pmode is not SImode.
7172         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
7173
7174 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
7175
7176         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
7177         .linkonce directive after the first time.
7178
7179 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
7180
7181         * m68k.md (beq0_di): Generate correct (and more efficient) code when
7182         the clobbered operand overlaps with an input.
7183         (bne0_di): Similarly.
7184
7185         * Makefile.in (INSTALL): Remove "--no-header" argument.
7186
7187         * NEWS: Various updates.
7188
7189 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7190
7191         * config/sparc/sparc.c (arith_operand, const64_operand,
7192         const64_high_operand, arith_double_4096_operand): Mark mode as
7193         unused.
7194         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
7195         callers changed.
7196         (sparc_emit_set_const64): Remove unused variable i.
7197         (sparc_splitdi_legitimate): Likewise for addr_part.
7198         (ultra_code_from_mask): Likewise for mask.
7199         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
7200         reverse return values so it matches usage and comments.
7201         (ultra_flush_pipeline): Likewise.
7202         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
7203         this_type, and allow loads and stores of differing FP modes as
7204         they do not create a conflict.
7205         (ultra_find_type): Initialize fpmode to SFmode, fix
7206         parenthesization thinkos in large conditional.
7207         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
7208         Init free_slot_mask after ultra_cur_hist is reset, not before.
7209         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
7210         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
7211         use ultra_flush_pipeline instead, then re-init group pointer.
7212         Fix statement with no effect.  If no progress made in, and no
7213         instructions scheduled at all, advance to new pipeline cycle else
7214         we get into an endless loop.
7215         (ultrasparc_adjust_cost): Remove previous arg.
7216         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
7217         
7218 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
7219
7220         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
7221         code.  Use reg_overlap_mentioned_p to detect when source and
7222         destination overlap.
7223         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
7224
7225 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
7226
7227         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
7228         COMPARISON_VAL, into invariant_p.
7229
7230 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7231
7232         * regmove.c (regclass_compatible_p): New function.
7233         (regmove_optimize): Use it.
7234
7235         Use NREGS parameter insted of calling max_reg_num.
7236
7237         (fixup_match_1): Don't use code = MINUS when later tieing with
7238         a hard register is likely.
7239
7240 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7241
7242         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
7243         COMPARISON_VAL was normalized.
7244
7245 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
7246
7247         * loop.c (check_dbra_loop): The loop ending comparison value
7248         must be an invariant or we can not reverse the loop.
7249
7250         * loop.c (scan_loop): Count down from max_reg_num - 1 to
7251         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
7252         of the loop.
7253         (load_mems_and_recount_loop_regs_set): Likewise.
7254
7255         * i386.c (print_operand): Remove obsolete 'c' docs.
7256
7257 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
7258
7259         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
7260         * frame.c (init_object_mutex): New function.
7261         (init_object_mutex_once): Likewise.
7262         (find_fde): Call it.
7263         (__register_frame_info): Likewise.
7264         (__register_frame_info_table): Likewise.
7265         (__deregister_frame_info): Likewise.
7266
7267 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
7268
7269         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
7270
7271 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7272
7273         * loop.c (check_dbra_loop): Enable code for reversal
7274         of some loops without a known constant loop end.
7275
7276 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
7277
7278         * haifa-sched.c (last_clock_var): New.
7279         (schedule_block): Initialize it.
7280         (schedule_insn): Use it to fill insn modes with issue information.
7281
7282         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
7283         Tag trapb and next insn with TImode.
7284         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
7285         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
7286         Invoke alphaev5_align_insns as appropriate.
7287         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
7288         (MD_SCHED_VARIABLE_ISSUE): New.
7289         * alpha.md (attr type): Add multi.
7290         (define_asm_attributes): New.
7291         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
7292         (arg_home): Likewise.
7293         (fnop, unop, realign): New.
7294
7295 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
7296
7297         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
7298         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
7299
7300         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
7301         (rs6000-ibm-aix4.[12]*): Likewise.
7302         * configure: Regnerate.
7303
7304 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
7305
7306         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
7307         already contains the return address.
7308
7309 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
7310
7311         * calls.c (expand_call): Use bitfield instructions to extract/deposit
7312         word sized hunks when loading unaligned args into registers.
7313
7314         * haifa-sched.c (sched_analyze_insn): Only create scheduling
7315         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
7316
7317         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
7318
7319 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7320
7321         * loop.c (check_dbra_loop): Add some code that would allow reversal
7322         of some loops without a known constant loop end if it were enabled.
7323
7324 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
7325
7326         * mips.md (lshrsi3_internal2+2): Fix type-o.
7327
7328 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7329
7330         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
7331         correctly with regards to stdio.h.
7332         
7333         * calls.c: Remove stdarg.h/varargs.h.
7334         * cccp.c: Likewise.
7335         * cexp.y: Likewise.
7336         * combine.c: Likewise.
7337         * cpperror.c: Likewise.
7338         * cpplib.c: Likewise.
7339         * cpplib.h: Likewise.
7340         * doprint.c: Likewise.
7341         * emit-rtl.c: Likewise.
7342         * final.c: Likewise.
7343         * fix-header.c: Likewise.
7344         * gcc.c: Likewise.
7345         * genattr.c: Likewise.
7346         * genattrtab.c: Likewise.
7347         * gencodes.c: Likewise.
7348         * genconfig.c: Likewise.
7349         * genemit.c: Likewise.
7350         * genextract.c: Likewise.
7351         * genflags.c: Likewise.
7352         * genopinit.c: Likewise.
7353         * genoutput.c: Likewise.
7354         * genpeep.c: Likewise.
7355         * genrecog.c: Likewise.
7356         * mips-tfile.c: Likewise.
7357         * prefix.c: Likewise.
7358         * protoize.c: Likewise.
7359         * regmove.c: Likewise.
7360         * toplev.c: Likewise.
7361         * tree.c: Likewise.
7362
7363 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
7364
7365         * config/sparc/sparc.c (sparc_override_options): If not
7366         TARGET_FPU, turn off TARGET_VIS.
7367         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
7368         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
7369         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
7370         (movdi_insn_sp64): Add VIS fzero alternative.
7371         (clear_sf, clear_df): New VIS patterns.
7372         (movsf, movdf expanders): Allow fp_zero_operand flat out when
7373         TARGET_VIS.
7374         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
7375         
7376 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
7377
7378         * loop.c (n_times_set, n_times_used, may_not_optimize,
7379         reg_single_usage): Convert to varrays.  All uses changed.
7380         (insert_loop_mem): Return a value.
7381         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
7382         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
7383         necessary.
7384
7385 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
7386
7387         * From Alexandre:
7388         * configure.in: Do not set thread_file to "irix" since no such
7389         support exists yet.
7390
7391         * sparc.md (float abs/neg splits): Check reload_completed before
7392         calling alter_subreg.
7393
7394 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7395
7396         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
7397         function.
7398         * config/sparc/sparc.h: Declare it.
7399         * config/sparc/sparc.md (float abs/neg splits): Use it.
7400         (all other splits): Handle SUBREGs properly where necessary.
7401         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
7402
7403 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
7404
7405         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
7406         an insn on the unfilled_slots_list that has no delay slots.
7407         (fill_eager_delay_slots): Similarly.
7408
7409 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
7410
7411         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
7412         as an ordinary operand.
7413
7414 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
7415
7416         * tree.c (valid_machine_attribute): Don't apply attributes to both
7417         decl and type.
7418
7419 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
7420
7421         * reload.c (operands_match_p): Handle rtvecs.
7422
7423         * i386.c (legitimate_pic_address_disp_p): New.
7424         (legitimate_address_p): Use it.
7425         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
7426         Handle constant pool symbols just like statics.
7427         (emit_pic_move): Use Pmode not SImode for clarity.
7428         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
7429         [UNSPEC]: New, handling what we killed above.
7430         [PLUS]: Detect and abort on invalid symbol arithmetic.
7431         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
7432
7433 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
7434
7435         * alias.c: Include output.h.
7436         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
7437         different if we're in a varargs function.
7438         * Makefile.in (alias.o): Depend on output.h
7439         
7440 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7441
7442         * sh.h (GIV_SORT_CRITERION): Delete.
7443
7444 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
7445
7446         * regclass.c (regclass): Use xmalloc/free instead of alloca.
7447         * stupid.c (stupid_life_analysis): Ditto.
7448         * reload1.c (reload): Ditto.
7449
7450 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
7451
7452         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
7453         arith_double_4096_operand, arith_double_add_operand): New
7454         predicates.
7455         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
7456         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
7457         them to transform add/sub 4096 into add/sub -4096.
7458
7459 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7460
7461         * loop.c (scan_loop): Allocate some slop to handle pseudos
7462         generated by move_movables.
7463         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
7464         here too.
7465
7466 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
7467
7468         * tree.def (DECL_RESULT): Correct documentation.
7469
7470 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7471
7472         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
7473         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
7474         conflicts will all RELOAD_FOR_OUTPUT reloads.
7475
7476         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
7477         loads the function result, substitute with a USE.
7478
7479 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7480
7481         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
7482         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
7483         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
7484         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
7485         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
7486         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
7487         operand. 
7488         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
7489         'o' to 'm' for GPR variant constraints.
7490
7491 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
7492
7493         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
7494
7495         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
7496
7497         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
7498         when the source and destination overlap.
7499
7500         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
7501         clash with global type.
7502
7503 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
7504
7505         * fixinc.irix: Add curses.h handling from fixinc.wrap.
7506
7507         * c-common.c (combine_strings): Also set TREE_READONLY.
7508         Change warn_write_strings to flag_const_strings.
7509         * c-decl.c, c-tree.h: Likewise.
7510
7511 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7512
7513         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
7514         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
7515         sequence, use SET/IOR instead so CSE can see it.
7516         * config/sparc/sparc.md (movhi_const64_special,
7517         movsi_const64_special): New patterns necessitated by that change.
7518         (movhi_high): Remove.
7519         (movhi_lo_sum): Change to match an IOR.
7520         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
7521         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
7522         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
7523         (movdf splits): Allow when not V9 or when not ARCH64 and integer
7524         registers are involved.
7525         (snesi_zero_extend split): Remove reload_completed test.
7526         (unnamed plus and minus zero_extend sidi splits): Add it.
7527
7528 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
7529
7530         * extend.texi: Remove description of extension to explicit
7531         instantiation that is now endorsed by standard C++.
7532
7533 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7534
7535         * config/arc/arc.c (arc_initialize_pic): Remove.
7536         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
7537         nothing on any platform and is invoked by no-one, it does not even
7538         appear in the documentation.
7539         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
7540         * config/sparc/sparc.c (initialize_pic): Likewise.
7541         (find_addr_reg): Remove this as well, no longer referenced after
7542         my rewrite.
7543
7544 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
7545
7546         * recog.c (validate_replace_rtx_group): New function.
7547         * recog.h (validate_replace_rtx_group): Declare it.
7548         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
7549         the entire group of substitutions.
7550
7551 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
7552
7553         * loop.c (load_mems): Fix initializers.
7554
7555 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7556
7557         * config/sparc/sparc.md (TFmode splits): Handle destination
7558         registers being referenced in the address correctly.
7559
7560         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
7561         TREE_UNSIGNED, when bitsize of type's mode is larger than
7562         HOST_BITS_PER_WIDE_INT.
7563
7564 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
7565
7566         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
7567         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
7568         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
7569         macros.
7570         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
7571         EXIT_BLOCK_EXPR.
7572
7573 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
7574
7575         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
7576         * h8300.h (TINY_DATA_NAME_P): Likewise.
7577         (STRIP_NAME_ENCODING): Handle '&'.
7578
7579         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
7580         register (it could be accessed via an outer SUBREG).
7581         (REG_OK_FOR_BASE_P): Likewwise.
7582         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
7583
7584         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
7585         bogus rtl.
7586
7587         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
7588
7589 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7590
7591         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
7592         must be offsettable so the splits can be made.
7593
7594 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
7595
7596         * config/i386/winnt.c: Include system.h, not stdio.h to get
7597         sys/param.h pulled in before rtl.h in case the system defines MIN
7598         and MAX.
7599
7600 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7601
7602         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
7603
7604 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
7605
7606         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
7607         arrays of bits.
7608         * cpplib.c (cpp_define): Handle macros with parameters.
7609
7610 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7611
7612         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
7613         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
7614         and DImode 64-bit.  Use llong for minimal-toc SFmode and
7615         SYMBOL_REF / LABEL_REF 64-bit.
7616         (output_function_profiler): Use llong for profiler label and ld to
7617         load 64-bit label address.
7618
7619 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
7620
7621         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
7622         OFFSET addressing.
7623
7624 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
7625
7626         * version.c: Bump for snapshot.
7627
7628 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
7629
7630         * version.c: Bump for snapshot.
7631
7632 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
7633
7634         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
7635
7636 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
7637
7638         * tm.texi (Misc): Fix typo "teh".
7639
7640         * tm.texi (PIC): Fix typo "PPIC".
7641
7642         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
7643         effect when -O2 and higher.
7644         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
7645
7646 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
7647
7648         * regclass.c: Changed register set documentation to be consistent
7649         with GCC behaviour.
7650
7651         * final.c (final_start_function) Removed redundant test for
7652         call_fixed_regs.
7653
7654 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
7655
7656         * rtl.h (rtx_function): New type.
7657         (for_each_rtx): New function.
7658         * rtlanal.c (for_each_rtx): Define it.
7659         
7660         * recog.c (change_t): New type.
7661         (change_objects, change_old_codes, change_locs, change_olds):
7662         Replace with ...
7663         (changes): New variable.
7664         (validate_change): Dynamically allocate room for more changes, if
7665         necessary.  Uses changes array instead of change_objects, etc.
7666         (apply_change_group):  Use changes array instead of
7667         change_objects, etc.
7668         
7669         * loop.c (loop_mem_info): New type.
7670         (loop_mems): New variable.
7671         (loop_mems_idx): Likewise.
7672         (looop_mems_allocated): Likewise.
7673         (scan_loop): Remove nregs parameter.
7674         (next_insn_in_loop): New function.
7675         (load_mems_and_recount_loop_regs_set): Likewise.
7676         (load_mems): Likewise.
7677         (insert_loop_mem): Likewise.
7678         (replace_loop_mem): Likewise.
7679         (replace_label): Likewise.
7680         (INSN_IN_RANGE_P): New macro.
7681         (loop_optimize): Don't pass max_reg_num() to scan_loop.
7682         (scan_loop): Remove nregs parameter, compute it after any new
7683         registers are created by load_mems.  Use INSN_IN_RANGE_P and
7684         next_insn_in_loop rather than expanding them inline.  Call
7685         load_mems to load memory into pseudos, if appropriate.
7686         (prescan_loop): Figure out whether or not there are jumps from the
7687         loop to targets other than the label immediately following the
7688         loop.  Call insert_loop_mem to notice all the MEMs used in the
7689         loop, if it could be safe to pull MEMs into REGs for the duration
7690         of the loop.
7691         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
7692
7693 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
7694
7695         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
7696
7697 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7698
7699         * config/sparc/sparc.c (finalize_pic): Check for the correct
7700         nonlocal_goto_receiver UNSPEC number.
7701         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
7702         making note of this dependency existing in sparc.c
7703         (negtf2_notv9 split): Give NEG SFmode.
7704         (negsf2): Fix insn output string.
7705         
7706 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
7707
7708         * c-common.c (decl_attributes): Issue an error if the argument
7709         to alias is not a string.
7710
7711 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
7712
7713         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
7714         pending memory flush list.
7715
7716         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
7717         notes.
7718         (try_combine): Allow combining insns with REG_LIBCALL notes.
7719
7720         * expr.c (emit_block_move): Do not call memcpy as a libcall
7721         instead build up a CALL_EXPR and call it like any other
7722         function.
7723         (clear_storage): Similarly for memset.
7724
7725         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
7726         on notes.
7727
7728         * Makefile.in (cplus-dem.o): Provide explicit rules for building
7729         cplus-dem.o
7730
7731         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
7732         and REG_LIVE_LENGTH as successful substitutions are made.
7733
7734 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7735
7736         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
7737         statement after end of loop label.
7738
7739 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7740
7741         * config/sparc/sparc.c (ultra_types_avail): New variable.
7742         (ultra_build_types_avail): New function to record mask of insn
7743         types in ready list at this cycle.
7744         (ultrasparc_sched_reorder): Call it.
7745         (ultra_find_type): Use it to quicken the search.  Also simplif
7746         dependency check, don't use rtx_equal_p because we know exactly
7747         what we are looking for.
7748
7749 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
7750
7751         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
7752         for architecture v4.
7753
7754 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7755
7756         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
7757         gen_compare_reg.
7758         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
7759         movdf_const_intreg and helper splits): New patterns to move float
7760         constants into integer registers.
7761         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
7762         splits.
7763
7764 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
7765
7766         * From Graham
7767         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
7768         to itype.
7769         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
7770
7771         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
7772         a BASE_REGS register is needed as an intermediate when copying
7773         a symbolic value into any register class other than BASE_REGS.
7774
7775         * expr.c (move_by_pieces): No longer static.  Remove prototype.
7776         * rtl.h (move_by_pieces): Add extern prototype.
7777         * mips.c (expand_block_move): Handle aligned straight line copy by
7778         calling move_by_pieces.
7779
7780         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
7781         and VAR_DECLs.
7782
7783 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
7784
7785         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
7786         jumps out of the loop to be treated as part of the exit test.
7787
7788 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7789                           Jeff Law <law@cygnus.com>
7790
7791         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
7792         * cplus-dem.c: Delete.
7793
7794         * Makefile.in (fold-const.o): depend on $(RTL_H).
7795
7796         * fold-const.c: Include rtl.h to get the prototype for
7797         `set_identifier_local_value'.
7798
7799         * loop.c (express_from_1): Remove unused variable `tmp'.
7800         (combine_givs): cast the first argument of bzero to char *.
7801
7802         * toplev.c (display_help): Remove unused variable `looking_for_start'.
7803
7804         * c-decl.c (init_decl_processing): Remove unneeded &.
7805
7806         * alpha.h (alpha_initialize_trampoline): Provide prototype.
7807         
7808         * except.c (set_exception_lang_code, set_exception_version_code):
7809         Change parameter from `short' to `int' to avoid using a gcc
7810         extension.
7811
7812         * except.h (set_exception_lang_code, set_exception_version_code):
7813         Likewise for prototypes.
7814
7815         * flow.c (count_reg_references): Remove unused variables `regno'
7816         and `i'.
7817
7818         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
7819
7820         * prefix.c (translate_name): Cast the result of `alloca'.
7821
7822         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
7823
7824 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7825
7826         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
7827         Include "toplev.h".
7828         (valid_dbcc_comparison_p): Mark mode argument as unused.
7829         (symbolic_operand): Likewise.
7830         (legitimize_pic_address): Likewise.
7831         (const_uint32_operand): Likewise.
7832         (const_sint32_operand): Likewise.
7833         * sched.c [!INSN_SCHEDULING]: Define only dummy function
7834         schedule_insns and comment out rest of file.
7835
7836         * m68k.c (output_move_simode_const): Use subl to move a zero into an
7837         address register.
7838         (output_move_[hq]imode): Likewise.
7839
7840 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
7841
7842         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
7843         * invoke.texi: Corresponding changes.
7844
7845 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
7846
7847         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
7848
7849 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7850
7851         * config/sparc/sparc.c (ultra_code_from_mask,
7852         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
7853         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
7854         ultrasparc_sched_init, ultrasparc_variable_issue,
7855         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
7856         functions to describe UltraSPARC pipeline exactly to Haifa.
7857         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
7858         as there is nothing the scheduler can do about it.  Indicate that
7859         REG_DEP_OUTPUT's collide.  Fixup formatting.
7860         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
7861         divide costs on Ultra for DImode.
7862         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
7863         Define.
7864         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
7865         ieuN and add call_no_delay_slot to type list.
7866         (cti function unit): New unit for branches on UltraSPARC.
7867         (subx/addx insns): Set type to misc.
7868         (sidi zero/sign extension insns on arch64): Set type to shift.
7869         (sign_extendhidi2_insn): Set type to sload.
7870
7871 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7872
7873         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
7874         (output_epilog): Use if != 0 for offset.
7875         (rs6000_fatal_bad_address): Prepare for Intl.
7876         * rs6000.h (rs6000_fatal_bad_address): Declare.
7877         * rs6000.md (movsfcc, movdfcc): Use else if.
7878         (elf_high): Use {liu|lis}.
7879         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
7880         (movsi): Use rs6000_fatal_bad_address.
7881         
7882 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
7883
7884         * reload.c (find_equiv_reg): Reject equivalences separated
7885         by a volatile instruction.
7886
7887 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7888
7889         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
7890
7891 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
7892
7893         * alpha.md (movsicc): Fix mode mismatch.
7894
7895 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
7896
7897         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
7898         return type.
7899         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
7900
7901 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7902
7903         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
7904         write-only modifier from operand 1 constraint.
7905
7906 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7907
7908         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
7909         emitting a XOR of -1 at the end, emit a NOT instead for combine's
7910         sake.
7911         (sparc_emit_set_const64): Likewise, also when computing trailing
7912         bits do not negate low_bits and make fast_int an int.
7913
7914 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
7915
7916         * loop.c (add_label_notes): Do not ignore references to labels
7917         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
7918         * gcse.c (add_label_notes): Similarly.
7919
7920         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
7921
7922         * m68k.md (adddi_dilshr32): One of the operands must be a register.
7923         (adddi_dishl32): Similarly.
7924
7925 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
7926
7927         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
7928         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
7929         * cse.c (cse_basic_block): Add parens to shut up warnings.
7930
7931 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7932
7933         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
7934         sparc_emit_set_const64_longway, const64_is_2insns,
7935         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
7936         in 64-bit constant formation.
7937         * config/sparc/sparc.md (snesi_zero_extend split): Generate
7938         rtl for addx not subx.
7939         (define_insn movdi_const64_special): Make available even when
7940         HOST_BITS_PER_WIDE_INT is not 64.
7941         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
7942         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
7943         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
7944         instances of operand 1 inside a QI subreg.
7945         (xordi3_sp64_dbl): Remove '%' constraint for op1.
7946         (one_cmpldi2_sp64): Fix output string.
7947         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
7948         alternative case.
7949         (unnamed arch64 ashift DI): Truncate shift count if greater than
7950         63, not 31.
7951
7952 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7953
7954         * expr.c (store_expr): Don't optimize away load-store pair
7955         when either source or destination have a side effect.
7956
7957 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
7958
7959         * genrecog.c (add_to_sequence): Fatal error if the modes of the
7960         operands of SET are incompatible.
7961
7962         * alpha.md: Fix max and min patterns so modes of SET operands match.
7963
7964 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
7965
7966         * configure.in: Avoid [[ by using test and changequote.
7967         * configure: Rebuild.
7968
7969 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7970
7971         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
7972
7973         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
7974         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
7975         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
7976         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
7977         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
7978         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
7979         Fix mismatching modes in SET operands.
7980         (conditional move patterns): Fix formatting.
7981         (unnamed subx arch64 pattern): Remove duplicate insn.
7982         
7983 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7984
7985         * config/sparc/sparc.c (const64_operand, const64_high_operand):
7986         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
7987         (input_operand): Fixup test for what we accept for constant
7988         integers.
7989         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
7990         set VOIDmode.
7991         (safe_constDI): Remove.
7992         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
7993         gen_safe_XOR64): New functions.
7994         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
7995         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
7996         them.
7997         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
7998         available when HOST_BITS_PER_WIDE_INT is not 64.
7999         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
8000         move before movdi_insn_sp64 pattern.
8001         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
8002         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
8003         symbolic_operand as predicate for second operand.
8004         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
8005         expander): Give set VOIDmode.
8006         
8007 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
8008
8009         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
8010
8011 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
8012
8013         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
8014
8015 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
8016
8017         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
8018         point.
8019         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
8020
8021 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
8022
8023         * install.texi: Various SCO OpenServer tweaks.
8024
8025 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
8026
8027         * reload1.c (eliminate_regs_in_insn): Handle another case when
8028         eliminating the frame pointer to the hard frame pointer.  Add
8029         missing ep->to_rtx check to one existing case.
8030
8031         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
8032
8033 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
8034
8035         * tree.h: De-conditionalize init_priority code.
8036
8037         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
8038         * collect2.c (NM_FLAGS): Change from -p to -n.
8039
8040         * configure.in: Turn on collect2 for mipstx39-elf.
8041         Handle use_collect2=no properly.
8042
8043         * c-common.c: De-conditionalize init_priority code.
8044         * collect2.c (extract_init_priority, sort_ids): New fns.
8045         (main): Call sort_ids.
8046         Move sequence_number to file scope.
8047
8048         * configure.in: Handle --enable-init-priority.
8049         * c-common.c (attrs): Add A_INIT_PRIORITY.
8050         (init_attributes, decl_attributes): Likewise.
8051         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
8052         * tree.c (get_file_function_name_long): Split out...
8053         (get_file_function_name): ...from here.
8054
8055 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
8056
8057         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
8058         accessing nodes.
8059
8060 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
8061
8062         * toplev.c (display_help): Add braces to shut up warnings.
8063         * tree.c (simple_cst_equal): Likewise.
8064
8065         * fold-const.c (non_lvalue): Don't deal with null pointer 
8066         constants here.
8067         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
8068
8069         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
8070         of any size to a pointer.
8071
8072 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
8073
8074         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
8075
8076 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
8077
8078         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
8079         which will be saved.
8080         * mn10300.md (prologue insn): Only save registers which need saving.
8081         (epilogue insn): Similarly.
8082
8083         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
8084         optimizations.
8085
8086 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
8087
8088         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
8089         VAR_DECL's in gp addressable sections.
8090
8091 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
8092
8093         * sparc.c: Change return <exp> to <exp>; return; in functions
8094         returning void.
8095         * sparc.md: Add empty semicolon statement after final label in
8096         move expanders.
8097
8098 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8099
8100         * config/sparc/sparc.md (define_insn addx_extend): Rename to
8101         addx_extend_sp64, only allow when TARGET_ARCH64.
8102         (define_insn addx_extend_sp32 and split): Version that works when
8103         not TARGET_ARCH64.
8104         (define_insn subx_extend): Likewise.
8105         (define_split adddi3 and subdi3 with zero extension): Fixup and
8106         correct bugs when not TARGET_ARCH64.
8107
8108 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
8109
8110         * except.c (set_exception_lang_code, set_exception_version_code):
8111         Use prototype-style definition if __STDC__, to match declaration
8112         in except.h.
8113
8114         * genemit.c: Change FAIL and DONE macros not to use loops.
8115
8116 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
8117
8118         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
8119         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
8120
8121         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
8122
8123 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
8124
8125         * README.g77: Update from Craig.
8126
8127 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8128
8129         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
8130         type HOST_WIDE_INT.
8131         (safe_constDI sparc_emit_set_const64_quick1,
8132         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
8133         analyze_64bit_constant, const64_is_2insns,
8134         create_simple_focus_bits): Fix some bugs when compiled on real
8135         64-bit hosts.
8136         (function_arg_record_value_3, function_arg_record_value_2,
8137         function_arg_record_value): Add fully prototyped forward decls.
8138         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
8139         to cmpsi_insn and use on both 64 and 32 bit targets.
8140         (define_insn cmpsi_insn_sp64): Remove.
8141         (define_expand zero_extendsidi2): Allow for 32-bit target too.
8142         (define_insn zero_extendsidi2_insn): Rename to
8143         zero_extendsidi2_insn_sp64.
8144         (define_insn zero_extendsidi2_insn_sp32): New pattern and
8145         assosciated forced split for it.
8146
8147         * config/sparc/sparc.c (const64_operand, const64_high_operand):
8148         New predicates.
8149         * config/sparc/sparc.h: Declare them.
8150         (PREDICATE_CODES): Add them.
8151         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
8152         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
8153
8154 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
8155
8156         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
8157         in v9 case as the latter makes the Solaris assembler crash.
8158
8159 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8160
8161         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
8162         for TFmode when !v9.  We require offsettable memory addresses.
8163         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
8164         DFmode register number conversions.
8165         * config/sparc/sparc.md (define_split DFmode moves): If register
8166         is a SUBREG do alter_subreg on it before using.
8167         (define_expand movtf): Fixup comment about alignment on v9.
8168         (define_split TFmode moves): Don't use gen_{high,low}part, create
8169         explicit SUBREGs instead.
8170
8171 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
8172
8173         * Makefile.in (mbchar.o): Depend on mbchar.c.
8174
8175 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8176                           Richard Henderson  <rth@cygnus.com>
8177         
8178         Rewrite Sparc backend for better code generation and
8179         improved sparc64 support.
8180         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
8181         zero.
8182         * config/sparc/sysv4.h: Likewise.
8183         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
8184         move_operand, v8plus_regcmp_op, emit_move_sequence,
8185         singlemove_string, doublemove_string, mem_aligned_8,
8186         output_move_double, output_move_quad, output_fp_move_double,
8187         move_quad_direction, output_fp_move_quad, output_scc_insn):
8188         Remove.
8189         (small_int_or_double): New predicate.
8190         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
8191         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
8192         old pic_{sethi,lo_sum}_si patterns.
8193         (mem_min_alignment): New generic function to replace
8194         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
8195         available and can test for arbitrary alignments.  All callers
8196         changed.
8197         (save_regs, restore_regs, build_big_number,
8198         output_function_prologue, output_cbranch, output_return,
8199         sparc_flat_save_restore, sparc_flat_output_function_prologue,
8200         sparc_flat_output_function_epilogue): Prettify
8201         insn output.
8202         (output_function_epilogue): Likewise and add code to output
8203         deferred case vectors.
8204         (output_v9branch): Likewise, add new arg INSN and use it to tack
8205         on branch prediction settings.  All callers changed.
8206         (print_operand): Likewise and output %l44 for LO_SUMs when
8207         TARGET_CM_MEDMID.
8208         (sparc_splitdi_legitimate): New function to make sure DImode
8209         splits can be run properly when !arch64.
8210         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
8211         Reformat example code in comments.
8212         (set_extends): Remove UNSPEC/v8plus_clear_high case.
8213         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
8214         of deferred case vectors we need to output.
8215         (sparc_defer_case_vector): Record a case vector.
8216         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
8217         sparc_output_deferred_case_vectors): New functions to output them.
8218         (sparc_emit_set_const32): New function to form 32-bit constants in
8219         registers when that requires more than one instruction.
8220         (safe_constDI, sparc_emit_set_const64_quick1,
8221         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
8222         analyze_64bit_constant, const64_is_2insns,
8223         create_simple_focus_bits, sparc_emit_set_const64): New functions
8224         which do the same for 64-bit constants when arch64.
8225         (sparc_emit_set_symbolic_const64): New function to emit address
8226         loading for all code models on v9.
8227         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
8228         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
8229         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
8230         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
8231         inaccuracies in comments, add symbolic and text_segment operands
8232         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
8233         GENERAL_REGS in these cases as a temp REG is needed to load these
8234         addresses into a register properly.
8235         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
8236         is no longer used.
8237         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
8238         quads are guarenteed to have 16-byte alignment.
8239         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
8240         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
8241         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
8242         deferred case vector implementation.
8243         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
8244         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
8245         Generate "internal label - label" instead of "label - 1b".
8246         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
8247         (PREDICATE_CODES): Remove sparc_operand, move_operand,
8248         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
8249         zero_operand.
8250         (doublemove_string, output_block_move, output_fp_move_double,
8251         output_fp_move_quad, output_move_double, output_move_quad,
8252         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
8253         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
8254         (sparc_emit_set_const32, sparc_emit_set_const64,
8255         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
8256         mem_min_alignment, small_int_or_double): Add externs.
8257         * config/sparc/sparc.md: Document the many uses of UNSPEC and
8258         UNSPEC_VOLATILE in this backend.
8259         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
8260         unary to types which execute in it.
8261         (define_function_unit ieu_shift): Rename to ieu0.
8262         (define_function_unit ieu1): New, executes compare, call, and
8263         uncond_branch type insns.
8264         (define_function_units for type fdivs, fdivd, fsqrt): These
8265         execute in the fpu multiply unit not the adder on UltraSparc.
8266         (define_expand cmpdi): Disallow TARGET_V8PLUS.
8267         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
8268         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
8269         allows the arith_double_operand predicate and rHI constraint when
8270         TARGET_ARCH64.
8271         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
8272         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
8273         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
8274         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
8275         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
8276         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
8277         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
8278         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
8279         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
8280         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
8281         sign_extendqihi2_insn, sign_extendqisi2_insn,
8282         sign_extendqidi2_insn, sign_extendhidi2_insn,
8283         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
8284         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
8285         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
8286         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
8287         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
8288         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
8289         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
8290         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
8291         smulsi3_highpart_v8plus, unnamed subreg mult,
8292         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
8293         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
8294         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
8295         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
8296         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
8297         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
8298         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
8299         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
8300         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
8301         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
8302         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
8303         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
8304         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
8305         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
8306         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
8307         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
8308         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
8309         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
8310         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
8311         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
8312         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
8313         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
8314         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
8315         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
8316         call_address_untyped_struct_value_sp32,
8317         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
8318         call_value_symbolic_sp32, call_value_address_sp64,
8319         call_value_symbolic_sp64, branch_sp32, branch_sp64,
8320         flush_register_windows, goto_handler_and_restore,
8321         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
8322         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
8323         return_addsi, return_di, return_adddi, return_sf, all call+jump
8324         peepholes, trap, unnamed trap insns): Prettify output strings.
8325         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
8326         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
8327         Likewise and force + implement splits for integer cases.
8328         (define_insn return_sf_no_fpu): Likewise and allow to match when
8329         no-fpu because of our subreg SFmode splits.
8330         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
8331         zero_extendqidi2_insn, zero_extendhidi2_insn,
8332         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
8333         input_operand for second operand.
8334         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
8335         reg_or_0_operand for operand 2 so new splits can use it.
8336         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
8337         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
8338         too.
8339         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
8340         CONST_DOUBLEs for operand 2.
8341         (define_insn move_label_di): Likewise and label distance
8342         optimization because it no longer works with new deferred case
8343         vector scheme.  To be revisited.
8344         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
8345         and allow reg_or_0_operand and J constraint for second operand.
8346         (define_insn jump): Set branch predict taken on V9.
8347         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
8348         new deferred case vector scheme.
8349         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
8350         (define_insn negdi2_sp32): Force + implement splits.
8351         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
8352         one_cmplsi2_not_liveg0 respectively, and create expander of original
8353         names which emit special rtl for TARGET_LIVE_G0.
8354         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
8355         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
8356         gen_compare_reg, FAIL instead.
8357         (define_insn sgtu, sleu): Likewise and check gen_s*() return
8358         values when trying to reverse condition codes, if they FAIL then
8359         do likewise.
8360         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
8361         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
8362         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
8363         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
8364         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
8365         set output string to # to indicate they are mandatory splits.
8366         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
8367         pic_sethi_di, move_pic_label_si): Remove.
8368         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
8369         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
8370         place.
8371         (define_expand movsi_pic_label_ref, define_insn
8372         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
8373         expander and insns to handle PIC label references and deferred
8374         case vectors.
8375         (define_insn get_pc_via_rdpc): Comment out as it is no longer
8376         used.
8377         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
8378         Rewrite to not use emit_move_sequence, make use of new constant
8379         formation code, and new splits for all multi-insn cases.
8380         (define_insn movqi_insn): Remove sethi case, it can never happen.
8381         Use reg_or_zero_operand instead of const0_rtx explicit test,
8382         use input_operand instead of move_operand for source, and use
8383         general_operand now for dest.
8384         (define_insn movhi_insn): Similar but leave sethi case.
8385         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
8386         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
8387         movhi_lo_sum respectively, prettify output string.
8388         (define_insn movsi_zero_liveg0): New pattern to put zero into a
8389         register when needed on TARGET_LIVE_G0.
8390         (define_insn movsi_insn): Use general_operand and input_operand
8391         for dest and src respectively.  Simplify applicability test.
8392         Prettify output strings, and add clr alternative for J
8393         constraint.
8394         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
8395         deprecated std and reg-reg DI moves): Remove and...
8396         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
8397         implementation which uses forced splits for all non-single insn
8398         cases.
8399         (define_split DI move cases on !arch64): New splits to handle all
8400         situations of 64-bit double register DImode on 32bit, and
8401         unaligned registers and memory addresses for all subtargets.
8402         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
8403         Remove.
8404         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
8405         input_operand for dest and src respectively, prettify output
8406         strings.
8407         (define_insn movdf_insn, movdf_no_e_insn, store_df,
8408         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
8409         and...
8410         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
8411         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
8412         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
8413         movtf_no_e_insn_sp64) Replace with new
8414         implementation which uses forced splits for all non-single insn
8415         cases.
8416         (define_split DF move cases): New splits in similar vein to DI
8417         move counterparts.
8418         (define_insn sethi_di_medlow, sethi_di_medium_pic,
8419         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
8420         movdi_sp64_insn): Remove old v9 code model and constant loading
8421         support insns and..
8422         (define_insn pic_lo_sum_di, pic_sethi_di,
8423         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
8424         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
8425         embmedany_sethi, embmedany_losum, embmedany_brsum,
8426         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
8427         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
8428         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
8429         scheme, using unspecs, secondary reloads, and one to one sparc
8430         insn to rtl insn mapping for better scheduling and code gen.
8431         (define_expand reload_indi, reload_outdi): Reload helpers for
8432         MEDANY and EMBMEDANY symbol address loading cases which require a
8433         temporary register.
8434         (define_expand movsicc): Remove v8plus_regcmp cases.
8435         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
8436         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
8437         cmp_diqi_trunc_set): New patterns used by some of the new scc
8438         splits on arch64.
8439         (define_insn xordi3_sp64_dbl): New pattern used for constant
8440         formation when crossing from 32-bit targets.
8441         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
8442         split): Remove.
8443         (define_insn addx, subx): Make visible and prettify.
8444         (define_insn adddi3_insn_sp32): Likewise and force split.
8445         (define_insn addx_extend, subx_extend, unnamed): New patterns for
8446         64bit scc split usage.
8447         (define_insn unnamed plusDI zero_extend, unnamed minusDI
8448         zero_extend, subdi3): Force and implement splits.
8449         
8450         * final.c (final_scan_insn): Don't output labels if target
8451         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
8452         instead.
8453         
8454         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
8455         don't forget to walk inside SEQUENCESs too as these are what the
8456         delay slot scheduler will create.
8457         
8458 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
8459
8460         * alpha.md (extxl+1,+2): New patterns to work around
8461         combine lossage.
8462
8463 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
8464
8465         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
8466         caused bad assembly code to be generated.
8467
8468 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
8469
8470         * netbsd.h: Fix typo.
8471
8472 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
8473
8474         * config.sub: Fix typo.
8475
8476 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
8477
8478         * invoke.texi (Environment Variables): Typo: Change "ascpects"
8479         into "aspects".
8480         (Running Protoize): Typo: Change "ther" into "other".
8481
8482 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
8483
8484         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
8485         * m68k/netbsd.h: Likewise.
8486         * ns32k/netbsd.h: Likewise.
8487         * sparc/netbsd.h: Likewise.
8488
8489 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
8490
8491         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
8492         * ginclude/va-clipper.h (va_list): Likewise.
8493
8494 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
8495
8496         * rs6000.c (rs6000_override_options): If big endian and -Os, use
8497         load/store multiple instructions unless user overrides.
8498
8499 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
8500
8501         * ns32k/netbsd.h: Fix typo.
8502
8503 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
8504
8505         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
8506         labels with .debugsym if no parallel insns.
8507
8508 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
8509
8510         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
8511         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
8512
8513 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8514
8515         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
8516         (AR_FOR_TARGET): Define.
8517
8518 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
8519
8520         * dyn-string.h: New file.
8521         * dyn-string.c: Likewise.
8522         * Makefile.in (OBJS): Add dyn-string.o.
8523         (dwarf2out.o): Add dyn-string.h dependency.
8524         (dyn-string.o): List dependencies.
8525         * dwarf2out.c: Include dyn-string.h.
8526         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
8527         (addr_const_to_string): Take a dyn_string_t, not a char* as a
8528         prototype.  Use dyn_string_append rather than strcat, throughout.
8529         (addr_to_string): Use dyn_string_t.
8530
8531 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
8532
8533         Function entry/exit profiling instrumentation:
8534         * expr.h (profile_function_entry_libfunc,
8535         profile_function_exit_libfunc): Declare new variables.
8536         * optabs.c: Define them here.
8537         (init_optabs): Initialize them.
8538         * tree.h (struct tree_decl): New flag
8539         no_instrument_function_entry_exit.
8540         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
8541         * c-decl.c (duplicate_decls): Merge it.
8542         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
8543         (init_attributes): Use it for "no_instrument_function".
8544         (decl_attributes): Handle it, for functions that have not yet been
8545         compiled.  Set decl flag.
8546         * flags.h (flag_instrument_function_entry_exit): Declare new
8547         variable.
8548         * toplev.c (flag_instrument_function_entry_exit): Define it here.
8549         (f_options): New option "instrument-functions".
8550         * function.h (struct function): New field instrument_entry_exit.
8551         * function.c (current_function_instrument_entry_exit): New
8552         variable.
8553         (push_function_context_to, pop_function_context_from): Save and
8554         restore.
8555         (expand_function_start): Set current_ variable, maybe emit return
8556         label and entry profile call.
8557         (expand_function_end): Maybe emit exit profile call.
8558
8559 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
8560
8561         * i386.md (movqi): When optimizing a load of (const_int 1) into a
8562         NON_QI_REG_P, pretend the register is SImode.
8563
8564 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
8565
8566         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
8567         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
8568         manufacturer id for ns32k.
8569         * configure: Regenerated.
8570         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
8571         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
8572         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
8573         * config/m68k/netbsd.h: Same.
8574         * config/ns32k/netbsd.h: Same.
8575         * config/sparc/netbsd.h: Same.
8576
8577 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
8578
8579         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
8580         or UNROLL_COMPLETELY loop that starts with a jump to its
8581         exit code.
8582
8583 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8584
8585         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
8586         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
8587         (print_operand, case 'B'): Don't fall through.
8588         (print_operand, case 'S'): Correct mask begin/end computation.
8589         Use HOST_BITS_PER_WIDE_INT.
8590         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
8591         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
8592         * rs6000/aix41.h (CPP_PREDEFINES): Same.
8593         * rs6000/aix43.h (CPP_PREDEFINES): Same.
8594
8595 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
8596
8597         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
8598         constraint from second alternative.
8599
8600 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
8601
8602         * configure.in: Fix --without/--disable cases for local-prefix, 
8603         gxx-include-dir and checking.
8604
8605 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8606
8607         * configure.in (enable_haifa): Set by default for sparc64 too.
8608         configure: Rebuilt.
8609
8610 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
8611
8612         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
8613         * i386/winnt.c (associated_type): New fn.
8614         (i386_pe_valid_type_attribute_p): New fn.
8615         (i386_pe_check_vtable_importexport): Remove.
8616         (i386_pe_dllexport_p): Use associated_type.
8617         (i386_pe_dllimport_p): Likewise.
8618
8619         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
8620         * i386.c (i386_valid_type_attribute_p): Also accept
8621         attributes for METHOD_TYPEs.
8622
8623 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
8624
8625         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
8626
8627 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
8628
8629         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
8630
8631         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
8632         them from generating a new base name for each occurence of
8633         a specific suffix.
8634
8635 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
8636
8637         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
8638         SUBREG, MEM.
8639         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
8640
8641
8642
8643         * cplus-dem.c (type_kind_t): New type.
8644         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
8645         on this paramter, rather than demangling the type again.
8646         (demangle_integral_value): Pass tk_integral.
8647         (demangle_template_: Pass the value returned from do_type.
8648         (do_type): Return a type_kind_t.  Pass tk_integral to
8649         demangle_template_value_parm for array bounds.
8650         (demangle_fund_type): Likewise.
8651         
8652 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
8653
8654         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
8655         identical.
8656
8657 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
8658
8659         * pa.c (move_operand): Accept CONSTANT_P_RTX.
8660
8661 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
8662
8663         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
8664
8665         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
8666         index conversion.
8667
8668 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
8669
8670         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
8671         (DEBUGGER_ARG_OFFSET): Likewise.
8672
8673         * mn10300.md (movsf): Remove last change.  Not needed.
8674
8675 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
8676
8677         * c-lex.c (yylex): Fix boundary conditions in character literal and
8678         string literal loops.
8679
8680 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
8681
8682         * longlong.h (count_leading_zeros): Sparclite scan instruction was
8683         being invoked incorrectly.
8684
8685         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
8686         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
8687         Add -pg support. 
8688         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
8689         * configure.in: Added i[34567]86-*-win32
8690         * config.sub: Ditto.
8691         * configure: Rebuilt.
8692         
8693 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
8694
8695         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
8696         the frame pointer and compiling PIC code and reload has not completed.
8697
8698         * i386.c (output_to_reg): Add code to emulate non-popping DImode
8699         case.
8700
8701 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
8702
8703         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
8704
8705 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8706
8707         * Makefile.in (install-info): Only try to update the info
8708         directory file if it exists in the first place.
8709
8710 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
8711
8712         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
8713
8714 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
8715
8716         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
8717         CONST_DOUBLE source.
8718
8719 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
8720
8721         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
8722         strings as the insertion of USER_LABEL_PREFIX.
8723         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
8724         valid code.
8725         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
8726         calls. 
8727
8728 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
8729
8730         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
8731         already defined type.
8732
8733 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
8734
8735         * expr.c (check_max_integer_computation_mode): Allow conversions
8736         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
8737         (expand_expr): Likewise.
8738
8739 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
8740
8741         * expr.c (expand_expr): Expand RETURN_EXPR.
8742
8743 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
8744
8745         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
8746
8747 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
8748
8749         * dwarf2out.c (output_aranges):  Call stripattributes
8750         for TEXT_SECTION references.
8751         (output_line_info): Likewise.
8752
8753 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8754
8755         * profile.c (branch_prob): Call allocate_reg_info after outputting
8756         profile rtl in instrument_arcs.
8757
8758 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
8759
8760         * fixinc.irix (math.h): Install wrapper instead of copying.
8761
8762 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
8763
8764         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
8765         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
8766         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
8767         lang_flag_0. Added documentation in the flag table.
8768
8769 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
8770
8771         * cccp.c (do_include): Fix vax c style include handling.
8772
8773 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
8774
8775         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
8776
8777 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
8778
8779         * fold-const.c (non_lvalue): Don't deal with null pointer 
8780         constants here.
8781         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
8782
8783 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8784
8785         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
8786         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
8787         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
8788         (u_short_cint_operand): Same.
8789         (reg_or_cint_operand): Same.
8790         (logical_operand): Same.
8791         (input_operand): Same.
8792         (reg_or_short_operand): Use u_short_cint_operand.
8793
8794 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
8795
8796         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
8797         but keep the insns and splits.  Adjust so when the ultimate destination
8798         is memory, use cvtql.
8799
8800 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
8801
8802         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
8803
8804 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
8805
8806         * gcc.c (do_spec): Call "error" not "warning".
8807
8808         * configure.in: Fix minor problems with gas feature detection code.
8809         * configure: Rebuilt.
8810
8811         * gcc.c (do_spec): Issue a warning for '%[]' usage.
8812
8813         * Undo this change.
8814         * gcc.c: Delete %[spec] support.
8815         (do_spec_1, case '('): Likewise.
8816         (do_spec_1, case '['): Call error.
8817
8818 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
8819
8820         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
8821         (CPP_SUBTARGET_SPEC): Default to empty string.
8822         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
8823         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
8824         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
8825         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
8826         (LIB_SPEC): Tidy.
8827         * alpha/linux.h (CPP_PREDEFINES): Tidy.
8828         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
8829         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
8830         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
8831         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
8832         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
8833         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
8834         * alpha/vxworks.h: Likewise.
8835
8836 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
8837
8838         * mips.md (reload_outsi): Added missing REGNO call.
8839         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
8840         function pointer.
8841         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
8842         another match_operator and compare the codes.
8843
8844         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
8845
8846         * MIPS multiply pattern fixes:
8847         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
8848         Add union classes for HI, LO, or HILO plus general registers.
8849         (GENERATE_MADD): Deleted.
8850         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
8851         Add TARGET_MAD to condition.
8852         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
8853         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
8854         "*d" for accumulator, to give preference to LO initially but not
8855         during reload.
8856
8857 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
8858
8859         * configure.in (enable_c_mbchar): New configure option.
8860         (extra_cpp_objs): Always available now.
8861
8862         * cexp.y (mbchar.h): #include it.
8863         (yylex): Handle Multibyte characters in character literals.
8864
8865         * cccp.c (mbchar.h): #include it.
8866         (main): Set character set based on LANG environment variable.
8867         (rescan): Handle multibyte characters in comments.
8868         (skip_if_group): See above.
8869         (validate_else): See above.
8870         (skip_to_end_of_comment): See above.
8871         (macarg1): See above.
8872         (discard_comments): See above.
8873         (rescan): Handle multibyte characters in string and character literals.
8874         (collect_expansion): See above.
8875         (skip_quoted_string): See above.
8876         (macroexpand): See above.
8877         (macarg1): See above.
8878         (discard_comments): See above.
8879         (change_newlines): See above.
8880
8881         * c-lex.c (mbchar.h): #include it.
8882         (GET_ENVIRONMENT): New macro.
8883         (init_lex): Set character set based on LANG environment variable.
8884         (yylex): Handle multibyte characters in character literals.
8885         (yylex): Handle multibyte characters in string literals.
8886
8887         * Makefile.in (mbchar.o): New target.
8888         (cccp$(exeext)): @extra_cpp_objs@ is always available.
8889         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
8890
8891         * mbchar.[ch]: New files for multibyte character handling.
8892
8893 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8894
8895         * jump.c (jump_optimize): When simplifying noop moves and
8896         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
8897         the PUSHes to rewrite in second loop as we did in the first.
8898
8899 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8900
8901         * cplus-dem.c (demangle_nested_args): Make function definition
8902         static to match the prototype.
8903
8904 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
8905
8906         * alloca.c: Respect USE_C_ALLOCA.
8907         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
8908         * gengenrtl.c (xmalloc): Likewise.
8909
8910 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
8911
8912         * loop.h (struct induction): Add no_const_addval.
8913         * loop.c (the_movables, reg_address_cost): New variables.
8914         (init_loop): Init reg_address_cost.
8915         (loop_optimize): Call end_alias_analysis.
8916         (scan_loop): Init the_movables.
8917         (record_giv): Init induction->no_const_addval.
8918         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
8919         [REG]: Rearrange loop search test to catch more cases.
8920         (general_induction_var): Return success not benefit; take an extra
8921         argument for that.  Change all callers.
8922         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
8923         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
8924         [default]: Search the_movables for additional combinations.
8925         (sge_plus_constant, sge_plus): New functions.
8926         (express_from_1): New function.
8927         (express_from): Always define.  Rewrite using express_from_1.
8928         (combine_givs_p): Handle more cases.  Ignore address cost.
8929         (cmp_combine_givs_stats): New function.
8930         (combine_givs_used_once, combine_givs_benefit_from): New functions.
8931         (combine_givs): Rewrite to do best-fit combination.
8932
8933         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
8934         (fold): Do a complete (A*C)+(B*C) association check.
8935
8936 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
8937
8938         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
8939
8940 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
8941
8942         * mn10300.c (MODES_TIEABLE_P): Fix typo.
8943
8944 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
8945
8946         * tree.c (valid_machine_attribute): Only create a new type variant if
8947         there is a decl to use it.
8948
8949 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
8950
8951         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
8952         a suffix.
8953
8954 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
8955
8956         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
8957         be deleted" 
8958
8959 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
8960
8961         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
8962         Simplify tests for clearing an address register.
8963         (expand_prologue): Corresponding changes.
8964
8965         * mn10300.md (movXX patterns): Make sure the destination is an
8966         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
8967         (logical patterns): Split into expanders + patterns
8968         (zero and sign extension patterns): Similarly.
8969         (shift patterns): Similarly.
8970
8971 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
8972
8973         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
8974         for the sequence, recording base values.
8975
8976 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
8977
8978         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
8979
8980 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
8981
8982         * gcc.c: Remove ANSI-C ism from --help code.
8983
8984         * toplev.c: Support --help with USE_CPPLIB.
8985
8986 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
8987
8988         * configure.in: Rework gas feature code to work with symlink based
8989         source trees.
8990
8991         * extend.texi: Clarify some issues related to local variables
8992         assigned to explicit registers.
8993
8994         * mn10300.md (mulsi): Turn into expander + pattern.
8995
8996         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
8997         alternative.
8998
8999 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
9000
9001         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
9002
9003 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
9004
9005         * version.c: Bump again to distinguish mainline tree from the
9006         egcs-1.1 branch.
9007
9008 See ChangeLog.0 for earlier changes.
9009
9010 Local Variables:
9011 add-log-time-format: current-time-string
9012 End: