OSDN Git Service

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