OSDN Git Service

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