OSDN Git Service

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