OSDN Git Service

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