OSDN Git Service

4cd50f64b776010a99e6d014d921761cacb92184
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
2
3         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
4         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
5
6 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7
8         * loop.c (loop_has_tablejump): New variable.
9         (prescan_loop): Scan for it.
10         (insert_bct): Replace explicit scan with use of it.
11         * regclass.c (regclass): Restore loop variable j.
12         (record_reg_classes): Deterine op_types modifiers and initialize
13         classes[i] before matching constraints.  Handle matching
14         constraints 5-9.
15         
16 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
17
18         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
19         subreg support.
20
21 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22
23         * mips.h (EXTRA_SPECS): Add missing initializers.
24
25 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26
27         * sparc.h (EXTRA_SPECS): Add missing initializers.
28         (sparc_defer_case_vector): Provide a prototype.
29
30         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
31         comparing it to the result of a pointer subtraction.
32
33 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34
35         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
36         the argument to (unsigned char).
37
38         * alpha.h (EXTRA_SPECS): Add missing initializers.
39         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
40         format specifier.
41
42 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
43
44         * flow.c (life_analysis_1): Enable "rescan" code after reload.
45         (propagate_block): Delete dead code after reload.
46
47         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
48         back Oct 15, 1998 change.  
49         * haifa-sched.c (update_flow_info): Likewise.
50         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
51
52         * mn10200.md (truncated shift): Accept constant inputs too.
53
54 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
55
56         * machmode.h (mode_mask_array): No longer const.
57         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
58
59 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
60
61         * frame.c: Somewhat explain `FDE'.
62         Suggested by Brendan Kehoe
63
64 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
65
66         * expr.c (pending_chain): Move up.
67         (save_expr_status): Do save pending_chain.
68         (restore_expr_status): And restore it.
69         * function.h (struct function): Add pending_chain.
70
71 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
72
73         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
74         did not match the code.
75
76 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
77
78         * regclass.c (regclass): Break out some code into new function
79         scan_one_insn, and into regclass_init.
80         (init_cost): New static variable, moved out of regclass.
81         (regclass_init): Initialize it here, not in .
82         (scan_one_insn): New static function, broken out of regclass.
83         * recog.c (apply_change_group): Break out some code into new
84         function insn_invalid_p.
85         (insn_invalid_p): New static fn, broken out of apply_change_group.
86
87 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
88
89         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
90         reg_reloaded_contents matches incremented pseudo.
91
92         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
93
94 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
95
96         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
97         addressing modes with side effects.  These are currently
98         placeholders for the C4x target.
99
100 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
101
102         * loop.c (express_from): Make sure that when generating a PLUS of
103         a PLUS, any constant expression appears on the outermost PLUS.
104
105 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
106
107         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
108         works if "$(srcdir)" != ".".
109
110 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
111
112         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
113         existing SUBREG if we can, otherwise abort.
114
115 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
116
117         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
118         `restrict' is applied to a non-pointer variable.
119
120 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
121
122         * invoke.texi: Document -flang-isoc9x.
123
124         * Makefile.in (OBJS): Add splay-tree.o.
125         (c-common.o): Depend on rtl.h.
126         (splay-tree.o): List dependencies and provide build rule.
127         
128         * rtl.h (record_alias_subset): New function.
129         * alias.c: Include splay-tree.h.
130         (alias_set_entry): New type.
131         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
132         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
133         (mems_in_disjoin_alias_sets_p): New function.
134         (alias_set_compare): Likewise.
135         (insert_subset_children): Likewise.
136         (get_alias_set_entry): Likewise.
137
138         * tree.h (TYPE_RESTRICT): New macro.
139         (TYPE_UNQUALIFIED): New manifest constant.
140         (TYPE_QUAL_CONST): Likewise
141         (TYPE_QUAL_VOLATILE): Likewise.
142         (TYPE_QUAL_RESTRICT): Likewise.
143         (tree_type): Add restrict_flag.  Reduce count of free bits.
144         (DECL_POINTER_ALIAS_SET): New macro.
145         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
146         (tree_decl): Add pointer_alias_set.
147         (build_qualified_type): New function.
148         (build_type_variant): Define in terms of build_qualified_type.
149         * tree.c (set_type_quals): New function.
150         (make_node): Initializae DECL_POINTER_ALIAS_SET.
151         (build_type_attribute_variant): Use build_qualified_type and
152         set_type_quals.
153         (build_type_variant): Rename, and modify, to become...
154         (build_qualified_type): New function.
155         (build_complex_type): Use set_type_quals.
156
157         * c-tree.h (C_TYPE_OBJECT_P): New macro.
158         (C_TYPE_FUNCTION_P): Likewise.
159         (C_TYPE_INCOMPLETE_P): Likewise.
160         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
161         (c_apply_type_quals_to_decl): New function.
162         (c_build_qualified_type): New function.
163         (c_build_type_variant): Define in terms of c_build_qualified_type.
164         (flag_isoc9x): Declare.
165         * c-typeck.c (qualify_type): Use c_build_qualified_type.
166         (common_type): Change to use TYPE_QUALS.
167         (comptypes): Likewise.
168         (convert_for_assignment): Likewise.
169         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
170         * c-decl.c (flag_isoc9x): Define.
171         (c_decode_option): Handle -flang-isoc9x.
172         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
173         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
174         * c-lex.c (init_lex): Deal with restrict.
175         (init_lex): Don't treat restrict as a reserved word in
176         -traditional mode, or without -flang-isoc9x.
177         * c-lex.h (rid): Add RID_RESTRICT.
178         * c-parse.gperf (restrict, __restrict, __restrict__): Make
179         equivalent to RID_RESTRICT.
180         * c-parse.in (TYPE_QUAL): Update comment.
181         * c-common.c: Include rtl.h.
182         (c_find_base_decl): New function.
183         (c_build_type_variant): Rename, and modify, to become ...
184         (c_build_qualified_type): New function.
185         (c_apply_type_quals_to_decl): Likewise.
186         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
187         a particular alias set for the reference.
188         * toplev.c (documented_lang_options): Add -flang-isoc9x.
189
190 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
191
192         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
193         command line switches.
194
195 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
196
197         * reload.c (loc_mentioned_in_p): Add missing braces to bind
198         else to correct if.
199
200 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
201
202         * gcc.c (option_map): Added --classpath and --CLASSPATH.
203
204 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
205
206         * regclass.c (fix_register): Add error message.
207         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
208           new error message.
209
210 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
211
212         * c-decl.c (warn_missing_noreturn): New global variable.
213         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
214         (finish_function): Implement missing noreturn warning.
215
216         * c-tree.h (warn_missing_noreturn): Declare extern.
217
218         * invoke.texi: Document new flags.
219
220         * toplev.c (documented_lang_options): Add description.
221
222 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
223
224         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
225         loop optimization stable for the C4x.
226         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
227         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
228         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
229         loop optimization).
230         (c4x_address_conflict): Be more paranoid when packing a volatile
231         memref in a parallel load/store.
232
233 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
234
235         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
236         repeat_block_filler): Deleted.
237         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
238         Condition code not set if destination register from 'c' class.
239         (*subbqi3_carry_clobber): Fix typo.
240
241 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
242
243         * reorg.c (steal_delay_list_from_target) Check for insns that
244         modify the condition codes and effect the direction of the jump
245         in the sequence.
246
247 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
248
249         * function.c (purge_addressof_1): Replace call to
250         emit_insns_before() with emit_insn_before().
251
252 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
253
254         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
255
256 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
257
258         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
259
260 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
261
262         * gcse.c (compute_hash_table): Correctly identify hard regs which are
263         clobbered across calls.
264
265         * loop.c (scan_loop): Be more selective about what invariants are
266         moved out of a loop.
267
268 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
269
270         * version.c: Bump for snapshot.
271
272 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
273
274         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
275         static eh_context structure.
276
277 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
278
279         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
280         callers changed.
281         (try_combine): Don't update max_scratch.
282         * flow.c (max_scratch, num_scratch): Delete variables.
283         (life_analysis_1): Don't initialize max_scratch.
284         (propagate_block): Don't update max_scratch.
285         (mark_set_1): Don't increment num_scratch.
286         * regs.h (max_scratch): Delete declaration.
287
288 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
289
290         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
291         is nonzero.  This is temporary!
292
293         * sched.c (update_flow_info): Handle death notes made invalid by
294         instruction splitting.  Partially reverts Oct 15, 1998 patch.
295         * haifa-sched.c (update_flow_info): Likewise.
296
297 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
298
299         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
300         if it has a nonzero DECL_INITIAL.
301
302 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
303
304         * Makefile.in (flow.o): Depend on recog.h.
305
306         * cpplib.h (directive_table): Add missing initializiers.
307         (finclude): Change type of variable `bsize' to size_t.
308         
309         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
310
311         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
312
313         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
314         `int' when comparing against one.
315         (cpp_file_line_for_message): Mark parameter `pfile' with
316         ATTRIBUTE_UNUSED.
317         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
318
319         * flow.c: Include recog.h.
320         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
321
322         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
323         `f' with ATTRIBUTE_UNUSED.
324         (reposition_prologue_and_epilogue_notes): Likewise.
325
326         * genopinit.c (gen_insn): Cast argument of ctype functions to
327         `unsigned char'.
328
329         * haifa-sched.c: Include recog.h.
330         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
331         comparing against one.
332
333         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
334
335         * mips-tfile.c (parse_end): Cast the argument of ctype function to
336         `unsigned char'.
337         (parse_ent): Likewise.
338         (parse_input): Likewise.
339
340         * optabs.c (init_libfuncs): Likewise.
341
342         * protoize.c (find_rightmost_formals_list): Likewise.
343
344         * recog.h (const_double_operand): Fix typo in prototype.
345
346         * tlink.c (scan_linker_output): Cast the argument of ctype
347         function to `unsigned char'.
348
349         * toplev.c (check_lang_option): Cast the result of `strlen' to
350         `int' when comparing against one.
351
352 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
353
354         * gcse.c (dump_cuid_table): Correct typo.
355
356 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
357
358         * toplev.c (display_help): Prepend '-m' to target specific
359         options. 
360         (check_lang_option): Ignore text after end of first word of a
361         language specific option.
362
363 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
364
365         * reload1.c (reg_used_by_pseudo): New static variable.
366         (choose_reload_regs): Initialize it.
367         Use it instead of testing spill_reg_order to determine whether a
368         pseudo is live in a hard register across the current insn.
369         Fix a typo in a reference to reload_reg_rtx.
370
371         * flow.c (propagate_block): Replace code that computes and uses
372         regs_sometimes_live with simpler code that just walks the set of
373         currently live registers.
374
375         * Makefile.in (insn-extract.o): Fix dependencies.
376         * genextract.c (main): Generate includes for insn-config.h and
377         recog.h.
378         Delete generation of declarations which are now in recog.h.
379         * genrecog.c (main): Delete generation of definitions which are
380         now in recog.c.
381         * local-alloc.c (block_alloc): Use extract_insn and the variables
382         it sets up instead of looking up values by insn_code.
383         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
384         recog_dup_num): Define here instead of generating the definition in
385         genrecog.c.
386         (recog_n_operands, recog_n_dups, recog_n_alternatives,
387         recog_operand_mode, recog_constraints, recog_operand_address_p):
388         New variables.
389         (extract_insn): New function.
390         * recog.h (extract_insn): Declare function.
391         (which_alternative, recog_n_operands, recog_n_dups,
392         recog_n_alternatives, recog_operand_mode, recog_constraints,
393         recog_operand_address_p): Declare variables.
394         * regclass.c (n_occurrences): New static function.
395         * reload.c (n_occurrences): Delete function.
396         (find_reloads): Use extract_insn.
397         * reload.h (n_occurrences): Delete declaration.
398
399 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
400
401         * reload1.c (reload_as_needed): Fix test for when to call
402         update_eliminable_offsets.
403
404 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
405
406         Fix consistency problems with reg_equiv_{mem,address};
407         Improve reload inheritance;
408
409         * reload.c (reload_out_reg): New variable.
410         (loc_mentioned_in_p, remove_address_replacements): New functions.
411         (remove_replacements): Deleted.
412         (push_reload): Set reload_out_reg[i].
413         When merging, also set reload_{in,out}_reg[i], and remove
414         duplicate address reloads.
415         (combine_reloads): Copy reload_out_reg[i].
416         (find_reloads): Do make_memloc substitution also when
417         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
418         are both nonzero.
419         Include *recog_operand_loc in commutativity operand changes.
420         Generate optional output reloads.
421         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
422         processing operands.  Call make_memloc in reg_equiv_address code.
423         Set *recog_operand_loc only after processing operands, and only
424         if replace is true.  Return a value.
425         When changing address reload types for operands that didn't get
426         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
427         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
428         Don't emit USEs for pseudo SUBREGs when not replacing.
429         (find_reloads_address): Do make_memloc substitution also when
430         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
431         are both nonzero.
432         (find_reloads_toplev): Likewise.
433         Call make_memloc in reg_equiv_address code.
434         (debug_reload_to_stream): Add code to output reload_out_reg.
435         (make_memloc): Delete local variable i, ifdefed out code, and
436         references to memlocs and n_memlocs.
437         (memlocs, n_memlocs): Delete.
438         (push_secondary_reload): Clear reload_out_reg.
439         (find_reloads_address_1): Provide memrefloc argument to all calls
440         to find_reloads_address.
441         In AUTO_INC code, handle non-directly addressable equivalences properly.
442         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
443         (find_reloads): Add return type.
444         (remove_address_replacements, deallocate_reload_reg): Declare.
445         * reload1.c (num_not_at_initial_offset): No longer static.
446         (delete_address_reloads, delete_address_reloads_1): Likewise.
447         (deallocate_reload_reg): New function.
448         (spill_reg_stored_to): New array.
449         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
450         (eliminate_regs_in_insn): Move assignments of previous_offset and
451         max_offset fields, and recalculation of num_not_at_initial_offset
452         into new static function:
453         (update_eliminable_offsets) .
454         (reload_as_needed): Call update_eliminable_offsetss after calling
455         find_reloads.
456         Call forget_old_reloads_1 with contents of reloaded auto_inc
457         expressions if the actual addressing can't be changed to match the
458         auto_inc.
459         (choose_reload_regs): For inheritance, replace
460         reload_reg_free_before_p test with reload_reg_used_at_all test, and
461         remove stand-alone reload_reg_used_at_all test.
462         Use reload_out_reg to determine which reload regs have output reloads.
463         Treat reload_override_in more similar to inherited reloads.
464         Handle (subreg (reg... for inheritance.
465         For flag_expensive_optimizations, add an extra pass to remove
466         unnecessary reloads from known working inheritance.
467         Delete obsolete code for pseudos replaced with MEMs.
468         Handle inheritance from auto_inc expressions.
469         (emit_reload_insns): If reload_in is a MEM, set OLD to 
470         reload_in_reg[j].
471         Don't reload directly from oldequiv; if it's a pseudo with a
472         stack slot, use reload_in[j].
473         Check that reload_in_reg[j] is a MEM before replacing reload_in
474         from reg_reloaded_contents.
475         Include non-spill registers in reload inheritance processing.
476         Also try to use reload_out_reg to set spill_reg_store /
477         reg_last_reload_reg.
478         In code to set new_spill_reg_store, use single_set to find out if
479         there is a single set.
480         Add code that allows to delete optional output reloads.
481         Add code to allow deletion of output reloads that use no spill reg.
482         At the end, set reload_override_in to oldequiv.
483         Also call delete_output_reload if reload_out_reg is equal to old
484         in oldequiv code.
485         Add code to call delete_output_reload for stores with no matching load.
486         Set / use spill_reg_stored_to.
487         Handle case where secondary output reload uses a temporary, but
488         actual store isn't found.
489         When looking for a store of a value not loaded in order to call
490         delete_output_reload, count_occurences should return 0 for no
491         loads; but discount inherited input reloadill_reg_stored_to.
492         Do checks for extra uses of REG.  Changed all
493         callers.
494         Use delete_address_reloads.
495         (reload): Take return value of find_reloads into account.
496         If a no-op set needs more than one reload, delete it.
497         (reload_reg_free_before_p): RELOAD_FOR_INPUT
498         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
499         for the same operand.
500         (clear_reload_reg_in_use): Check for other reloads that keep a
501         register in use.
502         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
503         RELOAD_FOR_OPADDR_ADDR.
504         Take into account when an address address reload is only needed
505         for the address reload we are considering.
506         (count_occurrences): Use rtx_equal_p for MEMs.
507         (inc_for_reload): Return instruction that stores into RELOADREG.
508         New argument two, IN, and rtx.  Changed all callers.
509         (calculate_needs_all_insns, reload_as_needed):
510         Don't clear after_call for a CLOBBER.
511         Keep track of how many hard registers need to be copied from
512         after_call, and don't clear after_call before we have seen
513         that much copies, or we see a different instruction.
514
515 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
516
517         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
518         after reload has completed.
519
520 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
521
522         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
523         a macro name and the next token with a single blank if that whitespace
524         is in a macro buffer and the next token is not '('.
525
526 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
527
528         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
529         (rescan): Ditto.
530         (skip_if_group): Ditto.
531         (skip_to_end_of_comment): Ditto.
532         (macarg1): Ditto.
533         (discard_comments): Ditto.
534         (change_newlines): Ditto.
535
536 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
537
538         * c-lex.c (yylex): Fix unaligned access of wchar_t.
539
540 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
541
542         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
543         (TARGET_OPTIONS): Add --help documentation.
544
545 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
546
547         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
548
549 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
550         
551         * fixinc/* Moved in from ../contrib directory in preparation
552         for integrating it into the normal build process.  In particular,
553         fixinc/Makefile.in must be config-ed into the build directory
554         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
555         ./configure.in will be "in the mail" momentarily.
556
557 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
558
559         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
560         accidently walk into the free list.  Comment how that can happen.
561         (invalidate): Fix indentation.
562
563 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
564                          Jeffrey A Law  (law@cygnus.com)
565
566         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
567         reload.  Never perform rescans of the insn chain after reload.
568         (propagate_block): Do not delete insn or create new autoinc addressing
569         modes after reload.
570
571         * jump.c (jump_optimize): Unconditionally use the code that was
572         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
573         * reload1.c (reload): When reloading is finished, delete all
574         REG_DEAD and REG_UNUSED notes.
575         (emit_reload_insns): Delete all code that was conditional on
576         PRESERVE_DEATH_INFO_REGNO_P.
577         (no_longer_dead_regs): Delete variable.
578         (reload_cse_delete_death_notes): Delete function.
579         (reload_cse_no_longer_dead): Delete function.
580         (reload_cse_regs_1): Delete all code to handle deletion of death
581         notes.
582         (reload_cse_noop_set_p): Likewise.
583         (reload_cse_simplify_set): Likewise.
584         (reload_cse_simplify_operands): Likewise.
585         (reload_cse_move2add): Likewise.
586         * reorg.c (used_spill_regs): Delete declaration.
587         (max_label_num_after_reload): Delete declaration.
588         (find_dead_or_set_registers): Don't assume that spill regs are
589         dead at a CODE_LABEL.
590         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
591         even after reload.
592         * sched.c (sched_analyze_insn): Likewise.
593         (update_flow_info): Likewise.
594         * haifa-sched.c (sched_analyze_insn): Likewise.
595         (update_flow_info): Likewise.
596         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
597         * toplev.c (max_label_num_after_reload): Delete variable.
598         (rest_of_compilation): Don't set max_label_num_after_reload.
599         Call life_analysis after reload_cse_regs if optimizing.
600         * config/gmicro/gmicro.h: Delete comment referring to
601         PRESERVE_DEATH_INFO_REGNO_P.
602         * config/i386/i386.h: Likewise.
603         * config/m88k/m88k.h: Likewise.
604         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
605         * config/sh/sh.h: Likewise.
606
607 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@mhpcc.edu>
608
609         * loop.c (strength_reduce): Restore marking bct_p as
610         ATTRIBUTE_UNUSED.
611         * rs6000.c (optimization_options): Change #ifdef HAIFA to
612         HAVE_decrement_and_branch_on_count.
613         (small_data_operand): Remove TARGET_ELF condition for marking
614         parameters ATTRIBUTE_UNUSED.
615         
616 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
617
618         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
619         (SELECT_SECTION): Resync with svr4.h.
620
621 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@mhpcc.edu>
622
623         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
624         ATTRIBUTE_UNUSED.
625
626 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
627
628         * c-pragma.c (handle_pragma_token): Test for null tree before
629         dereferencing TREE_CODE.
630
631 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
632
633         * config/c4x/c4x.c: Convert to use GEN_INT.
634         (c4x_parallel_process): Rework to handle new repeat loop structure.
635
636         * config/c4x/c4x.md: Convert to use GEN_INT. 
637         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
638         (decrement_and_branch_on_count): Likewise.
639
640         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
641         loop.c has the desired functionality.
642         (rc_reg_operand): New prototype.
643
644         * config/c4x/t-c4x: Can now build all front ends.
645
646 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
647
648         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
649
650 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
651
652         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
653         * config/t-rtems: Do not install assert.h -- use newlib's.
654
655 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
656
657         * combine.c (combine_instructions): When finished, call init_recog.
658         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
659
660 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
661
662         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
663
664 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
665
666         * cppalloc.c (memory_full): Mark function prototype with
667         ATTRIBUTE_NORETURN.
668
669         * demangle.h (collect_exit): Likewise.
670
671         * fix-header.c (v_fatal, fatal): Likewise.
672
673         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
674         Likewise.
675
676         * gcov.c (print_usage): Likewise.
677
678         * genattr.c (fatal, fancy_abort): Likewise.
679
680         * genattrtab.c (fatal, fancy_abort): Likewise.
681
682         * gencodes.c (fatal, fancy_abort): Likewise.
683
684         * genconfig.c (fatal, fancy_abort): Likewise.
685
686         * genemit.c (fatal, fancy_abort): Likewise.
687
688         * genextract.c (fatal, fancy_abort): Likewise.
689
690         * genflags.c (fatal, fancy_abort): Likewise.
691
692         * genopinit.c (fatal, fancy_abort): Likewise.
693
694         * genoutput.c (fatal, fancy_abort): Likewise.
695
696         * genpeep.c (fatal, fancy_abort): Likewise.
697
698         * genrecog.c (fatal, fancy_abort): Likewise.
699
700         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
701         __sjpopnthrow, __throw): Likewise.
702
703         * objc/objc-act.c (objc_fatal): Likewise.
704
705         * protoize.c (usage, aux_info_corrupted,
706         declare_source_confusing): Likewise.
707
708         * rtl.c (dump_and_abort): Likewise.
709
710         * rtl.h (sets_cc0_p): Likewise.
711
712         * toplev.c (float_signal, pipe_closed): Likewise.
713         
714 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
715
716         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
717         when generating the decision tree for the general case.
718
719         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
720         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
721
722 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
723
724         * Makefile.in (sched.o): Depend on recog.h.
725
726         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
727         (unsigned) when comparing against one.
728         (find_base_value): Likewise.
729         (record_base_value): Cast variable `regno' to (unsigned) when
730         comparing against one.  Cast the result of REGNO() macro to
731         (unsigned) when comparing against one.
732         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
733         unsigned.
734         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
735         variable where an unsigned index is needed.
736
737         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
738         before comparing against one.
739
740         * collect2.c: Add prototypes for functions `error', `fatal' and
741         `fatal_perror'.  Make these functions take variable arguments
742         instead of faking it with a fixed number of args.
743         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
744         char).
745
746         * combine.c (can_combine_p): Mark parameter `pred' with
747         ATTRIBUTE_UNUSED.
748         (find_split_point): Cast variable `src' to (unsigned
749         HOST_WIDE_INT) when comparing against one.
750         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
751         (simplify_logical): Likewise.
752         (force_to_mode): Cast result of INTVAL() macro to (unsigned
753         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
754         HOST_WIDE_INT) in shift.
755         (simplify_and_const_int): Cast result of INTVAL() macro to
756         `unsigned HOST_WIDE_INT' when comparing against one.
757         (merge_outer_ops): Cast variable const0 to `unsigned
758         HOST_WIDE_INT' when comparing against the result of
759         GET_MODE_MASK() macro.
760         (simplify_comparison): Likewise for variable `c0'.  Cast variable
761         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
762         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
763         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
764         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
765         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
766         comparing against one.
767         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
768
769         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
770         macro to `unsigned HOST_WIDE_INT' when comparing against one.
771         (output_block_move): Cast `sizeof' expression to (int) when
772         comparing against one.
773         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
774         against one.
775         (save_restore_insns): Cast `base_offset' to `long' to match format
776         specifier in fprintf.
777
778         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
779         to `enum machine_mode'.
780
781         * flow.c (life_analysis_1): Remove unused variable `insn'.
782
783         * gcc.c (translate_options): Move variables `j' and `k' into the
784         scope in which they are used.  Change their types to `size_t'.
785         (set_spec): Cast the argument of ctype macro to `unsigned char'.
786         (read_specs): Likewise.
787         (process_command): Cast `sizeof' to (int) when comparing against one.
788         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
789         (handle_braces): Cast both sides of `==' expression to `long' to
790         ensure sign matching.
791         (main): Cast variable `i' to `int' when comparing against one.
792
793         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
794         int to size_t.  Cast variable `i' to size_t when comparing against
795         one.
796
797         * genattrtab.c (convert_set_attr_alternative): Remove unused
798         parameter `insn_code'.  All callers changed.
799         (convert_set_attr): Likewise.
800
801         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
802         size_t when comparing against one.  Likewise for variable `len'.
803
804         * global.c (global_alloc): Cast variable `max_regno' to size_t
805         when comparing against one.  Likewise for variable `max_allocno'.
806
807         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
808
809         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
810         `set' with ATTRIBUTE_UNUSED.
811         (find_free_reg): Cast `sizeof' expression to (int) when comparing
812         against one.
813
814         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
815         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
816         (get_condition): Cast variable `const_val' to `unsigned
817         HOST_WIDE_INT' when comparing against one.  Cast unsigned
818         expression to HOST_WIDE_INT when comparing against one.
819         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
820         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
821         `unsigned' when comparing against one.
822
823         * protoize.c (is_id_char): Change type of parameter `ch' to
824         unsigned char.
825         (munge_compile_params): Cast argument of ctype macro to (const
826         unsigned char).
827         (process_aux_info_file): Cast variable `aux_info_size' to int when
828         comparing against one.
829         (forward_to_next_token_char): Cast argument of ctype macro to
830         `const unsigned char'.
831         (edit_formals_lists): Likewise.
832         (find_rightmost_formals_list): Likewise.
833         (add_local_decl): Likewise.
834         (add_global_decls): Likewise.
835         (edit_fn_definition): Likewise.
836         (do_cleaning): Likewise.
837         (scan_for_missed_items): Likewise.
838         (edit_file): Cast variable `orig_size' to (int) when comparing
839         against one.
840         (main): Cast argument of ctype macro to `const unsigned char'.
841
842         * recog.c (const_int_operand): Mark parameter `mode' with
843         ATTRIBUTE_UNUSED.
844
845         * regclass.c (record_reg_classes): Change type of variable `c' to
846         `unsigned char'.  Cast `char' array index to `unsigned char'.
847
848         * reload.c (push_secondary_reload): Cast argument to
849         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
850
851         * reload1.c (calculate_needs): Cast `char' array index to
852         `unsigned char'.
853         (set_label_offsets): Change type of variable `i' to unsigned int.
854         Cast result of XVECLEN() macro to unsigned when comparing against
855         one.
856         (mark_not_eliminable): Change type of variable `i' to unsigned.
857         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
858         when comparing against one.
859         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
860         comparing against one.
861         (choose_reload_regs): Hide unused label `fail'.
862         (reload_cse_simplify_operands): Cast `char' array index to
863         `unsigned char'.
864         (reload_combine_note_store): Mark parameter `set' with
865         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
866         against one.
867         (reload_cse_move2add): Remove unused variable `src2'.
868
869         * sched.c: Include recog.h.
870         (sched_note_set): Remove unused parameter `b'.  All callers
871         changed.
872         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
873         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
874         when comparing against one.
875
876         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
877         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
878         comparing against one.
879
880         * unroll.c (precondition_loop_p): Remove unused parameter
881         `loop_end'.  All callers changed.
882
883 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
884
885         * reload1.c (maybe_fix_stack_asms): New static function.
886         (reload): Call it.
887
888         * reload.h (compute_use_by_pseudos): Declare.
889
890         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
891         (something_needs_reloads): Delete variable.
892         (finish_spills): New function.
893         (compute_use_by_pseudos): New function.
894
895         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
896         Use the reload_insn_chain instead of walking the rtl directly.
897
898         (reload): Allocate and free spilled_pseudos.
899         Ensure that all calls of spill_hard_reg are followed by a call to
900         finish_spills.
901         Use the insns_need_reload list instead of something_needs_reloads
902         to find out if reload_as_needed must be called.
903         Clear unused_insn_chains at the end.
904
905         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
906         changed.
907         Delete code to keep track of current basic block.
908         Walk reload_insn_chain instead of the rtl structure.  Build the
909         insns_need_reload chain.
910         Remember which insns need reloading/elimination by setting the
911         appropriate fields in struct insn_chain, not by putting modes on the
912         insn.
913
914         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
915         arg INSN.  All callers changed.
916         Delete declaration of struct needs.
917         Don't set something_needs_reloads.
918         Record insn needs in the CHAIN argument.
919
920         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
921
922         (reload_as_needed): Lose FIRST arg.  All callers changed.
923         Walk the reload_insn_chain instead of the rtx structure.
924         Delete code to keep track of current basic block.
925         Rename one of the NEXT variables to OLD_NEXT.
926
927         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
928         callers changed.
929         (choose_reload_regs): Likewise.
930
931         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
932         callers changed.
933         
934         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
935         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
936         (hard_regs_live, hard_regs_need_restore): Delete variables.
937         (n_regs_saved): Now static.
938         (referenced_regs, this_insn_sets): New variables.
939
940         (setup_save_areas): Restructure the code a bit.
941
942         (restore_referenced_regs): Delete function.
943         (mark_referenced_regs): New function, similar to the old
944         restore_referenced_regs, but mark registers in referenced_regs.
945
946         (clear_reg_live): Delete function.
947         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
948         Only mark registers in this_insn_sets.
949
950         (save_call_clobbered_regs): Rework this function to walk the
951         reload_insn_chain instead of using the list of instructions directly.
952         Delete code to keep track of register lives, compute live regs on the
953         fly from information in the chain.
954         Instead of calling restore_referenced_regs, use mark_referenced_regs,
955         then walk the set it computes and call insert_restore as appropriate.
956
957         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
958         callers changed.
959         Restructure the code a bit.  Test hard_regs_saved instead of
960         hard_regs_need_restore.
961         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
962         args.  All callers changed.
963         Restructure the code a bit.  Use TO_SAVE to determine which regs to
964         save instead of more complicated test.
965         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
966         callers changed.
967         Create a new insn_chain structure for the new insn and place it
968         into the chain.
969
970         * rtl.texi: Update documentation to reflect that reload no longer
971         puts modes on the insns.
972
973 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
974
975         * function.c (purge_addressof_1): Force the first argument of a
976         CALL insn to memory.
977
978 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
979
980         * rtl.h: Delete duplicate prototypes.  Add some missing
981         prototypes.
982         * rtlanal.c: (for_each_rtx): Formatting tweak.
983
984 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
985
986         * real.c (emdnorm and etoasc): Disable round to even for c4x target
987         to be compatible with TI compiler.
988
989         * Makefile.in (USER_H): Add va-c4x.h to definition.
990
991 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
992
993         * function.c (purge_addressof_1): Fix typo in inequality: do
994         bitfield optimization for equal mode sizes.
995         * expmed.c (store_bit_field): Don't take subregs of subregs in
996         the movstrict case.  Tidy a potential problem in the multi-word case.
997         (extract_bit_field): Likewise.
998
999 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1000
1001         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
1002         function.
1003         Compute max_uid_for_flow by calling get_max_uid after the scan.
1004         (find_basic_blocks_1): Don't emit NOPs here.
1005
1006 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
1007
1008         * alias.c (base_alias_check): Accept new args for the modes of the
1009         two references.  Use them to determine if an AND can overlap.  Update
1010         all callers.
1011         (memrefs_conflict_p): Assume sizes are aligned, and uses them
1012         to determine if an AND can overlap.
1013
1014 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
1015
1016         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
1017         check.  Add comment to document problems with TARGET_SUN_FPA version
1018         of this macro.
1019         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
1020
1021 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1022
1023         * Makefile.in (gencheck.o): Depend on gansidecl.h.
1024
1025         * c-common.c (print_char_table): Add missing initializers.
1026         (scan_char_table): Likewise.
1027         (time_char_table): Likewise.
1028
1029         * c-decl.c (c_decode_option): Mark parameter `argc' with
1030         ATTRIBUTE_UNUSED.
1031         (declare_parm_level): Mark parameter `definition_flag' with
1032         ATTRIBUTE_UNUSED.
1033
1034         * c-lex.c (readescape): Use `(unsigned)1' in shift.
1035         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
1036         against one.
1037
1038         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
1039         callers changed.
1040         (emit_call_1): Mark parameters `fndecl' and `funtype' with
1041         ATTRIBUTE_UNUSED.
1042         (expand_call): Cast result of MIN() to (unsigned int) when
1043         comparing against an unsigned value.
1044
1045         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
1046         callers changed.
1047         (make_definition): Remove unused parameter `op'.  All callers
1048         changed.
1049         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
1050         comparing against the result of pointer arithmetic.
1051
1052         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
1053         when comparing against one.
1054
1055         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
1056         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
1057         one.
1058         (output_die): Move variable `i' into the scope in which it is
1059         used.  Change its type to `unsigned'.
1060         (output_die): Cast the result of `strlen' to (int) when passing it
1061         to ASM_OUTPUT_ASCII().
1062         (output_pubnames): Likewise.
1063         (output_line_info): Likewise.
1064
1065         * emit-rtl.c (global_rtl): Add missing initializers.
1066
1067         * explow.c (promote_mode): Mark parameter `for_call' with
1068         ATTRIBUTE_UNUSED.
1069
1070         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
1071         `unsigned HOST_WIDE_INT' when comparing against one.
1072         (synth_mult): Change type of variable `cost' to int.
1073         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
1074
1075         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
1076         when comparing against one.
1077         (get_inner_reference): Change variable `alignment' to unsigned.
1078         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
1079         int) when comparing against one.
1080         (expand_builtin_setjmp): Change type of variable `i' to size_t.
1081
1082         * fold-const.c (div_and_round_double): Cast BASE to
1083         (HOST_WIDE_INT) when comparing against one.
1084
1085         * gencheck.c: Include gansidecl.h.
1086         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
1087
1088         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
1089         `tcode' with ATTRIBUTE_UNUSED.
1090
1091         * real.c (edivm): Cast constant value to (unsigned long) in
1092         expression compared against an unsigned value.
1093
1094         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
1095         comparing against one.
1096         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
1097         when comparing against one.
1098
1099         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
1100         (unsigned int) when comparing against one.  Likewise for
1101         GET_MODE_BITSIZE.
1102         (smallest_mode_for_size): Likewise.
1103         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
1104         (restore_storage_status): Likewise.
1105         
1106         * toplev.c (debug_args): Add missing initializer.
1107         (f_options): Spelling correction.  Add missing initializers.
1108         (documented_lang_options): Likewise.
1109         (debug_end_source_file): Mark parameter `lineno' with
1110         ATTRIBUTE_UNUSED.
1111
1112         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
1113         `decl' and `type' with ATTRIBUTE_UNUSED.
1114
1115         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
1116         when comparing against one.
1117         (assemble_variable): Mark parameter `top_level' with
1118         ATTRIBUTE_UNUSED.
1119         (assemble_external_libcall): Mark parameter `fun' with
1120         ATTRIBUTE_UNUSED.
1121         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
1122         ATTRIBUTE_UNUSED.
1123
1124 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
1125
1126         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
1127         Replace use of r5 with use of r19.
1128
1129         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
1130
1131         * config/v850/v850.c (compute_register_save_size): Allow for the
1132         fact that helper functions save all registers, not just those used
1133         by the function.
1134         
1135         Replace constant 31 with macro LINK_POINTER_REGNUM.
1136
1137         * config/v850/v850.md: Use 'indirect_operand' rather than
1138         'memory_operand' for bit test/set/clear patterns.
1139
1140 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
1141
1142         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
1143         * varasm.c (assemble_start_function et al): Don't call
1144         ASM_GLOBALIZE_LABEL for weak symbols.
1145
1146 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
1147
1148         * cse.c (equiv_constant): Check for NULL return from
1149         gen_lowpart_if_possible().
1150
1151 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
1152
1153         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
1154
1155         * collect2.c (main): Pass -EL/-EB through to the compiler.
1156
1157 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1158         
1159         * expr.c (push_block): Handle targets where the stack grows
1160         to higher addresses, but args grow to lower addresses and
1161         ACCUMULATE_OUTGOING_ARGS is not defined.
1162
1163 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
1164
1165         * config/v850/v850.c (print_operand):  Extend meaning
1166         of 'c' operands to support .vtinherit.
1167
1168 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1169
1170         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
1171         Added ATTRIBUTE_UNUSED to unused function arguments.
1172         (rc_reg_operand): New predicate.
1173         (c4x_rptb_insert): New function.
1174         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
1175         (c4x_optimization_options): New function.
1176
1177         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
1178          (decrement_and_branch_on_count): New pattern.
1179          (rptb_top): Modified pattern to work with BCT optimization.
1180         
1181         * config/c4x/c4x.h (RC_REG): New register class.
1182         (rc_reg_operand): Define prototype.
1183         (IS_RC_REG): New macro.
1184         (IS_RC_OR_PSEUDO_REG): New macro.
1185         (IS_RC_OR_PSEUDO_REGNO): New macro.
1186         (OPTIMIZATION_OPTIONS): Define.
1187
1188 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
1189
1190         * collect2.c (extract_init_priority): No priority is 65535.
1191
1192 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
1193         
1194         * Makefile.in (build_tooldir): new variable, same as old
1195         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
1196         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
1197         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
1198         
1199         * configure.in (gxx_include_dir): set default based on unlibsubdir
1200         * Makefile.in (tooldir): ditto
1201         (cccp.o, cpplib.o): use unlibsubdir implicitly through
1202         gxx_include_dir, includedir and tooldir
1203         (protoize.o, unprotoize.o): ditto
1204         
1205 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
1206
1207         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
1208
1209         * config/arm/thumb.c (thumb_override_options): Add warning about
1210         PIC code not being supported just yet.
1211
1212 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
1213
1214         * flow.c: Update comment.
1215         (notice_stack_pointer_modification): New static function.
1216         (record_volatile_insns): Use it.
1217         (mark_regs_live_at_end): Mark the stack pointer as alive
1218         at the end of the function if current_function_sp_is_unchanging
1219         is set.
1220         (life_analysis_1): Set current_function_sp_is_unchanging.
1221         * function.c: Define it.
1222         (init_function_start): Initialize it.
1223         * output.h: Declare it.
1224         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
1225         the stack pointer as alive at the end of the function if
1226         current_function_sp_is_unchanging is set.
1227         * i386.c (ix86_epilogue): Optimize the restoring
1228         of the stack pointer.
1229
1230 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
1231
1232         * version.c: Bump for snapshot.
1233
1234 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
1235
1236         * c-pragma.c (handle_pragma_token): If passed a token instead
1237         of a tree, use that as the pack value.
1238
1239 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
1240
1241         * flow.c (find_basic_blocks_1): Fix prototype.
1242
1243 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
1244
1245         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
1246         (struct tree_decl): New fields no_check_memory_usage.
1247         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
1248         (init_attributes): Register it as a new attribute.
1249         (decl_attributes): Set flags on functions given that attribute.
1250         * c-decl.c (duplicate_decls): Merge new attribute.
1251         * expr.h (current_function_check_memory_usage): Declare new var.
1252         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
1253         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
1254         current_function_check_memory_usage.
1255         * function.h: Add field to struct function.
1256         * function.c (current_function_check_memory_usage): Define it.
1257         (push_function_context_to, pop_function_context_from): Save and
1258         restore it.
1259         (expand_function_start): Set it, based on global flag and function
1260         attribute.
1261
1262         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
1263         check non-automatic variables, to permit detection of writes to
1264         read-only locations in embedded systems without memory management.
1265         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
1266         when emitting chkr_set_right_libfunc call, even if the argument is
1267         BLKmode or variable-sized; don't abort.
1268
1269         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
1270         symbols in Pmode, not VOIDmode.
1271
1272 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1273
1274         * cppexp.c: When forcing unsigned comparisons, cast both sides
1275         of the operation.
1276
1277         * cpphash.h: Move static declaration of hashtab[]...
1278         * cpphash.c: ...here.
1279
1280         * cpplib.c: Cast difference of two pointers to size_t before
1281         comparing it to size_t.  Cast signed to unsigned
1282         before comparing to size_t. (FIXME: struct argdata should use
1283         unsigned buffer sizes.)
1284         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
1285         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
1286         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
1287         size_t before comparison.
1288
1289 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
1290
1291         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
1292         (find_basic_blocks_1): Similarly.
1293         * output.h (find_basic_blocks): Fix prototype.
1294         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
1295         find_basic_blocks anymore.
1296
1297 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
1298
1299         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
1300         (sbitmap_free, sbitmap_vector_free): New macros.
1301         * output.h (rtl_dump_file): Declare.
1302
1303 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
1304
1305         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
1306
1307 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1308
1309         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
1310         (DFtype): Likewise.
1311         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
1312         (divide): Remove unused variable `tmp'.
1313         (si_to_float): Cast numeric constant to (SItype) before comparing
1314         it against one.
1315
1316 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
1317
1318         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
1319         * gcc.c (add_preprocessor_option): Correct typo when allocating
1320         memory, sizeof() argument had one too many `*'.
1321         (add_assembler_option): Likewise.
1322         (add_linker_option): Likewise.
1323         * gcov.c (output_data): Likewise.
1324         * local-alloc.c (memref_used_between_p): Likewise.
1325         (update_equiv_regs): Likewise.
1326         * loop.c (strength_reduce): Likewise.
1327         * reg-stack.c (record_asm_reg_life): Likewise.
1328         (subst_asm_stack_reg): Likewise.
1329         * reorg.c (dbr_schedule): Likewise.
1330
1331 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1332
1333         * flow.c (life_analysis_1): Break out some functions.
1334         (find_basic_blocks_1): Likewise.  Also move some variables out and
1335         make them static.
1336         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
1337         new static var nonlocal_label_list with it.
1338         (active_eh_region, nested_eh_region, label_value_list,
1339         nonlocal_label_list): New static variables.
1340         (make_edges, delete_unreachable_blocks, delete_block): New static
1341         functions, broken out of find_basic_blocks_1.
1342         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
1343         noop_move_p): New static functions, broken out of life_analysis_1.
1344
1345 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
1346
1347         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
1348         Take extra care for op0 now possibly being a subreg.
1349         (extract_bit_field): Likewise.
1350         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
1351         the reg to memory if there is no equal sized integral mode.
1352         * stor-layout.c (int_mode_for_mode): New function.
1353         * machmode.h: Prototype it.
1354
1355 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
1356
1357         * global.c (build_insn_chain): Verify no real insns exist past the
1358         end of the last basic block, then exit the loop.
1359
1360 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1361
1362         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
1363
1364 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
1365
1366         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
1367
1368 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1369
1370         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
1371
1372 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
1373
1374         * flow.c (find_basic_blocks): Correctly determine when a call
1375         is within an exception region.
1376
1377 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
1378
1379         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
1380
1381         * cpplib.h: Protect from multiple inclusions.
1382         * cpplib.c: Fix minor formatting problems.
1383
1384         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
1385
1386         * jump.c (jump_optimize): Revert accidental patch.
1387
1388         * Makefile.in (cpplib.o): Use unlibsubdir.
1389
1390 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
1391
1392         * loop.c (get_condition): Allow combine when either compare is
1393         VOIDmode.
1394
1395 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
1396
1397         * version.c: Bump for snapshot.
1398
1399 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
1400
1401         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
1402         (init_lex): Initialize ridpointers[RID_BYREF].
1403         * c-lex.h (enum rid): Add RID_BYREF.
1404         * c-parse.gperf: Add RID_BYREF as a type qualifier.
1405         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
1406         (encode_type_qualifiers): Similarly
1407         * c-gperf.h: Rebuilt.
1408
1409 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
1410
1411         * c-common.c (type_for_mode): Only return TItype nodes when
1412         HOST_BITS_PER_WIDE_INT is >= 64 bits.
1413         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
1414         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
1415         (init_decl_processing): Only create TItype nodes when
1416         HOST_BITS_PER_WIDE_INT is >= 64 bits.
1417         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
1418         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
1419
1420 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1421
1422         * stmt.c (n_occurrences): New static function.
1423         (expand_asm_operands): Verify that all constrains match in the
1424         number of alternatives.
1425         Verify that '+' or '=' are at the beginning of an output constraint.
1426         Don't allow '&' for input operands.
1427         Verify that '%' isn't written for the last operand.
1428         * reload.c (find_reloads): Abort if an asm is found with invalid
1429         constraints; all possible problems ought to be checked for earlier.
1430
1431 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1432
1433         * flags.h (flag_branch_on_count_reg): Always declare 
1434         * toplev.c (flag_branch_on_count_reg): Likewise.
1435         * toplev.c: Fix typos.
1436
1437         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
1438         (toc4x): Similarly.
1439
1440 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
1441
1442         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
1443         max_uids_for_flow.
1444         (find_basic_blocks_1): Add a nop to the end of a basic block when
1445         a trailing call insn does not have abnormal control flow.
1446         * gcse.c (pre_transpout): New variable.
1447         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
1448         (compute_pre_transpout): Calculate it.
1449         (compute_pre_ppinout): Use it to eliminate impossible placements
1450         due to abnormal control flow through calls.
1451         (compute_pre_data): Call compute_pre_transpout.
1452
1453 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1454
1455         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
1456
1457 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
1458
1459         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
1460         and matching define_insns): Tack on a `use' of the table label, so
1461         flow analysis will recognize a tablejump.
1462
1463 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
1464
1465         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
1466         always end basic blocks for abnormal edge reasons.
1467
1468 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
1469
1470         * config/i386/i386.h: Remove definition of
1471         HANDLE_PRAGMA_PACK_PUSH_POP.
1472         
1473         * config/i386/go32.h: Add definition of
1474         HANDLE_PRAGMA_PACK_PUSH_POP.
1475         
1476         * config/i386/win32.h: Add definition of
1477         HANDLE_PRAGMA_PACK_PUSH_POP.
1478         
1479         * config/i386/cygwin32.h: Add definition of
1480         HANDLE_PRAGMA_PACK_PUSH_POP.
1481
1482         * c-pragma.c (insert_pack_attributes): Do not insert
1483         attributes unless #pragma pack(push,<n>) is in effect.
1484
1485 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
1486
1487         * expr.c (emit_group_store): Handle a PARALLEL destination.
1488
1489 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
1490
1491         * gcse.c (pre_insert_insn): When a call ends a bb, insert
1492         the new insns before the argument regs are loaded.
1493
1494 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1495
1496         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
1497         (c-parse.gperf): Update comments describing invocation flags.
1498         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
1499
1500 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
1501
1502         * reload1.c (reload): Call free before clobbering the memory
1503         locations or constants pointers.
1504
1505 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1506
1507         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
1508         for efficiency by checking whether we need to modify the current
1509         stack permission at all.
1510         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
1511         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
1512         __enable_execute_stack libcall here too if
1513         TRANSFER_FROM_TRAMPOLINE is defined.
1514         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
1515         IN_LIBGCC2.
1516
1517 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
1518
1519         * Makefile.in (DRIVER_DEFINES): Remove last change.
1520         
1521 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1522
1523         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
1524         insns we're going to copy.
1525         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
1526
1527         * loop.c (count_one_set): Add prototype.
1528
1529         * caller-save.c (restore_referenced_regs): Lose mode argument.
1530         (insert_save): Lose mode argument.
1531         (insert_restore): Lose mode argument.
1532         (insert_one_insn): Lose mode argument.
1533         (save_call_clobbered_regs): Lose mode argument.
1534         (setup_save_areas): Take no argument and return void.  All callers
1535         changed.
1536         Don't verify validity of memory addresses.
1537         * reload.h (setup_save_ares): Adjust prototype.
1538         (save_call_clobbered_regs): Likewise.
1539         * reload1.c (delete_caller_save_insns): New function.
1540         (caller_save_spill_class): Delete variable.
1541         (caller_save_group_size): Delete variable.
1542         (reload): Call setup_save_areas and save_call_clobbered_regs
1543         in the main loop, before calling calculate_needs_all_insns.
1544         Don't call save_call_clobbered_regs after the loop.
1545         Call delete_caller_save_insns at the end of an iteration if
1546         something changed.
1547         Delete code to manage caller_save_spill_class.
1548         Emit the final note before setting reload_first_uid.
1549         Simplify test that determines whether reload_as_needed gets run.
1550         (calculate_needs): Delete code to manage caller_save_spill_class.
1551
1552 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
1553
1554         * collect2.c (main): Initialize ld_file_name.
1555
1556 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
1557  
1558         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
1559         check for flag_function_sections.
1560
1561 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1562
1563         * cse.c (insert_regs): Fix bug in Sep 24 change.
1564
1565 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1566
1567         * flags.h (flag_dump_unnumbered): Declare.
1568         * toplev.c (flag_dump_unnumbered): Don't declare.
1569         * print-rtl.c (flags.h): Include.
1570         (print_rtl_single): Add return value.
1571         * rtl.h (print_rtl_single): Update declaration.
1572         * flow.c (flag_dump_unnumbered): Don't declare.
1573         (print_rtl_with_bb): Use return value of print_rtl_single.
1574
1575 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1576
1577         * loop.c (count_one_set): New static function, broken out of
1578         count_loop_regs_set
1579         (count_loop_regs_set): Call it.
1580         * global.c (mark_reg_store): Handle clobbers here by not calling
1581         set_preference.
1582         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
1583         is in fact a clobber.
1584         * integrate.c (process_reg_param): New function, broken out of
1585         expand_inline_function.
1586         (expand_inline_function): Call it.
1587
1588
1589         * i386.md (addsidi3_1): Delete unused variable temp.
1590         (addsidi3_2): Likewise.
1591         (clstrstrsi): Delete unused variable addr1.
1592
1593         * rtl.h: Don't declare any functions also declared in recog.h.
1594
1595         * Makefile.in (stupid.o): Update dependencies.
1596         (global.o): Likewise.
1597
1598         * global.c: Include reload.h
1599         (reg_becomes_live): New function.
1600         (reg_dies): New function.
1601         (build_insn_chain): New function.
1602         (global_alloc): Call build_insn_chain before calling reload.
1603
1604         * reload.h (struct needs): New structure definition.
1605         (struct insn_chain): Likewise.
1606         (reload_insn_chain): Declare variable.
1607         (new_insn_chain): Declare function.
1608
1609
1610         * reload1.c (reload_startobj): New variable.
1611         (reload_insn_chain): New variable.
1612         (unused_insn_chains): New variable.
1613         (new_insn_chain): New function.
1614         (init_reload): Initialize reload_startobj, not reload_firstobj.
1615         (reload): Initialize reload_firstobj.
1616         Before returning, free everything on the reload_obstack.
1617
1618         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
1619         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
1620         current_chain): New variables.
1621         (reg_where_born): Delete variable.
1622         (REG_WHERE_BORN): New macro.
1623         (find_clobbered_regs): New function.
1624         (stupid_life_analysis): Don't allocate/free reg_where_born.
1625         Allocate and free reg_where_born_exact, reg_where_born_clobber,
1626         reg_where_dead_chain.
1627         Use REG_WHERE_BORN instead of reg_where_born.
1628         While processing the insns, build the reload_insn_chain with
1629         information about register lifetimes.
1630         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
1631         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
1632         changed.
1633         Compute and information about birth and death of pseudo registers in
1634         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
1635         Delete code to set elements of reg_where_born.  
1636
1637 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1638
1639         * tree.def (GOTO_EXPR): Modified documentation.
1640         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
1641         goto.
1642
1643 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1644
1645         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
1646         loop_final_value, loop_comparison_code): No longer static.
1647         (unroll_loop): Delete loop_start_value update.
1648         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
1649         loop_final_value, loop_comparison_code): Extern.
1650         (loop_start_value): Delete extern.
1651         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
1652         loop_comparison_value, loop_comparison_code): Delete.
1653         (loop_optimize): Remove initialization for deleted variables.
1654         (strength_reduce): Delete analyze_loop_iterations call.  Only call
1655         insert_bct if flag_branch_count_on_reg set.
1656         (analyze_loop_iterations): Delete.
1657         (insert_bct): Remove iteration count calculation.  Move checks for
1658         viable BCT optimization to here.  Obtain iteration count from
1659         loop_iterations and correct for unrolling.  Check for enough
1660         iteration to be beneficial.  Comment out runtime iteration count
1661         case.
1662         (insert_bct): Print iteration count in dump file.  Remove
1663         loop_var_mode and use word_mode directly.
1664
1665         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
1666         * rs6000.c (rs6000_override_options): Use it.
1667         (optimization_options): Enable use of flag_branch_on_count_reg.
1668         * rs6000.md (define_function_unit): Describe 604e.
1669
1670 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1671
1672         * loop.c (move_movables): Corrected threshold calculation for
1673         moved_once registers.
1674
1675 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1676
1677         * loop.c (combine_givs_p): Fix test for identical givs.
1678
1679 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
1680
1681         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
1682         call abort if the function is already defined.
1683
1684 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
1685
1686         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
1687         truncation is not a no-op.
1688
1689 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
1690
1691         * version.c: Bump for snapshot.
1692
1693 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
1694
1695         * version.c: Bump for snapshot.
1696
1697 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
1698
1699         * expmed.c (expand_divmod): Don't widen for computing remainder
1700         if we seem to have a divmod pattern for needed mode.
1701
1702 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
1703
1704         * cpplib.c (macroexpand): Correct off-by-one error in handling
1705         of escapes.
1706
1707 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
1708
1709         * combine.c (expand_field_assignment): Don't do bitwise operations
1710         on MODE_FLOAT; pun to MODE_INT if possible.
1711
1712 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
1713                           scott snyder  <snyder@d0sgif.fnal.gov>
1714
1715         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
1716         linker.  Recognize mangled names in quotes.
1717
1718 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
1719
1720         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
1721         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
1722         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
1723         (lshrsi3_extend, lshrsi3_extend2): Ditto.
1724
1725 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1726
1727         * function.c (purge_addressof_1): If trying to take a sub-word
1728         integral piece of a floating point mode, put it on the stack.
1729
1730 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
1731
1732         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
1733
1734 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
1735
1736         * PROJECTS: Remove template friends.
1737
1738         * collect2.c (sort_ids): Remove unused variable.
1739
1740         * tm.texi (MATH_LIBRARY): Document.
1741         (NEED_MATH_LIBRARY): Remove.
1742
1743         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
1744         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
1745
1746 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
1747
1748         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
1749         last_end to 0x7fffffff.
1750
1751 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1752
1753         * function.c (purge_addressof_1): Do not perform endianness
1754         corrections on bitpos, who we call will do it for us.
1755
1756 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
1757
1758         * h8300.c (WORD_REG_USED): Fix typo.
1759         (initial_offset): Use WORD_REG_USED.
1760
1761         * h8300.c (handle_pragma): Fix typo.
1762
1763 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1764
1765         * caller-save.c (insert_save_restore): Break this function up
1766         into new functions insert_restore, insert_save and insert_one_insn.
1767         All callers changed.
1768         (insert_restore): New function, mostly broken out of
1769         insert_save_restore.
1770         (insert_save): Likewise.
1771         (insert_one_insn): Likewise.
1772         (restore_referenced_regs): New argument BLOCK.  All callers changed.
1773         (save_call_clobbered_regs): Don't keep track of basic block boundaries
1774         in this function, do it in insert_one_insn instead.
1775
1776         * reload1.c (reload): Break out some more pieces into separate
1777         functions.
1778         (dump_needs): New function, broken out of reload.
1779         (set_initial_elim_offsets): Likewise.
1780         (init_elim_table): Likewise.
1781         (update_eliminables): Likewise.
1782
1783         * global.c (global_alloc): Delete code to manage the scratch_list.
1784         * local-alloc.c (qty_scratch_rtx): Delete.
1785         (scratch_block): Delete.
1786         (scratch_list): Delete.
1787         (scratch_list_length): Delete.
1788         (scratch_index): Delete.
1789         (alloc_qty_for_scratch): Delete.
1790         (local-alloc): Update initialization of max_qty.
1791         Delete code to manage the scratch list.
1792         Delete code to allocate/initialize qty_scratch_rtx.
1793         (block_alloc): Don't allocate quantities for scratches.
1794         Delete code to manage the scratch list.
1795         * regs.h (scratch_list): Delete declaration.
1796         (scratch_block): Delete declaration.
1797         (scratch_list_length): Delete declaration.
1798         * reload1.c (reload): Delete code to manage the scratch list.
1799         (spill_hard_reg): Likewise.
1800         (mark_scratch_live): Delete.
1801
1802         * recog.c (alter_subreg): Delete declaration.
1803
1804 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
1805
1806         * Makefile.in (cccp.o): Fix typo in last patch.
1807
1808 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1809
1810         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
1811         * config/sh/lib1funcs.asm (___set_fpscr): Add.
1812
1813 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
1814
1815         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
1816         NULL_RTX as an argument.
1817
1818         * Makefile.in (unlibsubdir): Define.
1819         (DRIVER_DEFINES): Use unlibsubdir.
1820         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
1821         (stmp-fixinc): Similarly.
1822
1823 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1824
1825         * regmove.c (regmove_optimize): Add variable old_max_uid.
1826         At the end of the function, update basic_block_end.
1827
1828 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1829
1830         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
1831         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
1832         arbitrary constant.
1833
1834 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
1835
1836         * config/arm/arm.c: Improve interworking support.
1837
1838 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1839
1840         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
1841         copied from reload_out[r] .
1842
1843 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
1844
1845         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
1846         with more than three size ranges.
1847
1848         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
1849
1850         * rtl.c (mode_name): Add a null string at the end of the array.
1851         (mode_wider_mode): Change type to unsigned char.
1852         (mode_mask_array): New variable.
1853         (init_rtl): Update for mode_wider_mode type change.
1854
1855         * rtl.h (mode_wider_mode): Change type to unsigned char.
1856         (mode_mask_array): Declare.
1857         (GET_MODE_MASK): Use mode_mask_array.
1858
1859 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
1860
1861         * calls.c (expand_call) : Encapsulate code into 
1862         copy_blkmode_from_reg.
1863         * expr.c (copy_blkmode_from_reg): New function.
1864         * expr.h (copy_blkmode_from_reg): New function.
1865         * integrate.c (function_cannot_inline_p): We can inline
1866         these now.
1867         (expand_inline_function): Use copy_blkmode_from_reg
1868         if needed.  Avoid creating BLKmode REGs.
1869         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
1870         object.
1871
1872 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
1873
1874         * config/v850/v850.c: Add function prototypes.
1875         Add support for v850 special data areas.
1876
1877         * config/v850/v850.h: Add support for v850 special data areas.
1878         
1879         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
1880         HANDLE_PRAGMA_PACK_PUSH_POP.
1881         (push_alignment): New function: Cache an alignment requested
1882         by a #pragma pack(push,<n>).
1883         (pop_alignment): New function: Pop an alignment from the
1884         alignment stack.
1885         (insert_pack_attributes): New function: Generate __packed__
1886         and __aligned__ attributes for new decls whilst a #pragma pack
1887         is in effect. 
1888         (add_weak): New function: Cache a #pragma weak directive.
1889         (handle_pragma_token): Document calling conventions.  Add
1890         support for #pragma pack(push,<n>) and #pragma pack (pop).
1891
1892         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
1893         are defined enable HANDLE_PRAGMA_PACK.
1894         Move 'struct weak_syms' here (from varasm.c).
1895         Add pragma states for push and pop pragmas.
1896
1897         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
1898         if it is defined.
1899
1900         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
1901         HANDLE_GENERIC_PRAGMAS.
1902         
1903         * varasm.c: Move definition of 'struct weak_syms' into
1904         c-pragma.h. 
1905         (handle_pragma_weak): Deleted.
1906
1907         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1908
1909         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1910
1911         * c-decl.c (start_function): Add invocation of
1912         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
1913
1914         * tm.texi: Remove description of non-existant macro
1915         SET_DEFAULT_SECTION_NAME.
1916         
1917         (HANDLE_SYSV_PRAGMA): Document.
1918         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
1919
1920 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
1921
1922         * config.sub: Recognize i[34567]86-pc-udk as new target.
1923         * configure.in: Likewise.
1924         * config/i386/t-udk: New file.
1925         * config/i386/udk.h: New file.
1926
1927 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
1928
1929         * reorg.c (check_annul_list_true_false): Remove unused variables.
1930         (steal_delay_list_from_target): Add missing "used_annul" variable.
1931         (try_merge_delay_insns): Close out half formed comment.
1932
1933 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
1934
1935         * cpplib.c (macroexpand): If arg->raw_before or
1936         arg->raw_after, remove any no-reexpansion escape at the
1937         beginning of the pasted token.  Correct handling of whitespace
1938         markers and no-reexpand markers at the end if arg->raw_after.
1939
1940         * toplev.c (documented_lang_options): Recognize -include,
1941         -imacros, -iwithprefix, -iwithprefixbefore.
1942         * cpplib.c (cpp_start_read): Process -imacros and -include
1943         switches at the same time and in command-line order, after
1944         initializing the dependency-output code.  Emit properly nested
1945         #line directives for them.  Emit a #line for the main file
1946         before processing these switches, and don't do it again
1947         afterward.
1948
1949 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
1950
1951         * function.c (purge_addressof_1): Use bitfield manipulation
1952         routines to handle mem mode < reg mode.
1953
1954 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
1955
1956         * reorg.c (try_merge_delay_insns): Account for resources referenced
1957         in each instruction in INSN's delay list before trying to eliminate
1958         useless instructions.  Similarly when looking at a trial insn's delay
1959         slots.
1960
1961         * reorg.c (check_annul_list_true_false): New function.
1962         (steal_delay_list_from_{target,fallthrough}): Call it and also
1963         refine tests for when we may annul if already filled a slot.
1964         (fill_slots_from_thread): Likewise.
1965         (delete_from_delay_slot): Return newly-created thread.
1966         (try_merge_delay_isns): Use its new return value.
1967
1968 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
1969
1970         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
1971         used to compute a giv or as some other non-counting use.
1972
1973 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1974
1975         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
1976         * local-alloc.c (find_free_reg): Use it.
1977         * global.c (find_reg): Likewise.
1978         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
1979
1980         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
1981         * caller-save.c (init_caller_save): Use it.
1982         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
1983
1984 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
1985
1986         * configure.in: Add --enable-cpplib option which uses cpplib
1987         for cpp, but doesn't link cpplib into cc1.  Make help text
1988         capitalization consistent.
1989         * configure: Rebuilt.
1990
1991 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
1992
1993         * function.c (gen_mem_addressof): If the address REG is
1994         REG_USERVAR_P make the new REG be so also.
1995         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
1996         in an attempt to clarify slightly.
1997
1998 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
1999
2000         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
2001         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
2002
2003 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
2004
2005         * toplev.c:  Fix last patch.
2006
2007 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
2008
2009         * loop.c (get_condition): Fix typo in May 9 change.
2010
2011 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2012
2013         * invoke.texi (-fexceptions): Merge 2 different descriptions.
2014
2015 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2016
2017         * toplev.c (documented_lang_options): Spelling corrections.
2018
2019 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2020
2021         * configure.in: new flags --with-ld and --with-as, equivalent
2022         to setting LD and AS environment variables.  Test whether
2023         specified arguments are GNU commands, and report them with
2024         checking messages.  Use the specified AS for configure
2025         tests too.
2026         * configure: ditto
2027         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
2028         * config.in: ditto
2029         * gcc.c (find_a_file): when looking for `as' and `ld', return
2030         the DEFAULT program if it exists
2031         * collect2.c (main): use DEFAULT_LINKER if it exists
2032
2033         * gcc.c (find_a_file): the test for existence of a full
2034         pathname was reversed
2035
2036 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
2037
2038         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
2039         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
2040
2041 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
2042
2043         * tree.h (TYPE_BINFO): Document.
2044
2045 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
2046
2047         * i386-coff.h (dbxcoff.h): Added.
2048
2049 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
2050
2051         * toplev.c:  fix bad patch around flag_data_sections.
2052
2053 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
2054
2055         * reload1.c (reload): Use reload_address_index_reg_class and 
2056         reload_address_base_reg_class when setting
2057         caller_save_spill_class.  (Patch generated by Jim Wilson:
2058         wilson@cygnus.com).
2059
2060 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
2061
2062         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
2063         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
2064         * expr.c (store_field): Add alias_set parameter.  Set the
2065         MEM_ALIAS_SET accordingly, if the target is a MEM.
2066         (expand_assignment): Use it.
2067         (store_constructor_field): Pass 0.
2068         (expand_expr): Likewise.
2069
2070 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
2071  
2072         * flags.h:  Add flag_data_sections.
2073         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
2074         (compile_file):  Error if flag_data_sections not supported.
2075         * varasm.c (assemble_variable):  Handle flag_data_sections.
2076         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
2077         * config/mips/elf.h:  Likewise.
2078         * config/mips/elf64.h:  Likewise.
2079         * invoke.texi:  Describe -fdata-sections.
2080  
2081 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
2082
2083         * invoke.texi (-ffloat-store): Clarify that this option
2084         does not affect intermediate results -- only variables.
2085
2086 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
2087
2088         * cpp.texi: Update for Fortran usage from Craig.
2089
2090 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2091
2092         * rs6000.c (function_arg_boundary): Revert accidental change on
2093         September 18.
2094
2095 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
2096
2097         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
2098         (output_mi_thunk): Declare.
2099
2100         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
2101         (output_function_profiler): Use r12 for temp, instead of r11 so
2102         that we preserve the static chain register.
2103         
2104 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
2105
2106         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
2107
2108 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2109
2110         * sh.c (gen_shl_sext): Fix case 5.
2111
2112 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2113
2114         * reload1.c (reload_combine): Re-add line that got accidentally lost.
2115
2116 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2117
2118         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
2119         accessing variables until they are initialized via va_arg().
2120
2121 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2122
2123         * reload1.c (reload_combine): Initialize set before using.
2124
2125 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
2126
2127         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
2128         won't be emitting.
2129
2130 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
2131
2132         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
2133         operand3 with mask before using it.  Patch provided by Jim Wilson.
2134
2135 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2136
2137         * config/sparc/sparc.c (function_value): Perform the equivalent of
2138         PROMOTE_MODE for ARCH64.
2139         (eligible_for_epilogue_delay): Allow DImode operations in delay
2140         slot of a return for ARCH64.
2141
2142 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2143
2144         * sh.md (sqrtsf2): Fix mode of sqrt.
2145
2146 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2147
2148         * reload1.c (choose_reload_regs): Also try inheritance when
2149         reload_in is a stack slot of a pseudo, even if we already got a
2150         reload reg.
2151
2152 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2153
2154         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
2155         (reload_cse_regs): New function body: call reload_cse_regs_1,
2156         reload_combine, reload_cse_move2add.
2157         When doing expensive_optimizations, call reload_cse_regs_1 a
2158         second time after reload_cse_move2add.
2159         (reload_combine, reload_combine_note_store): New functions.
2160         (reload_combine_note_use): New function.
2161         (reload_cse_move2add, move2add_note_store): New functions.
2162
2163 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2164
2165         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
2166         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
2167
2168         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
2169         more than 3 such reloads.
2170
2171         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
2172         RELOAD_FOR_X_ADDR_ADDR reload.
2173
2174 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2175
2176         * expr.c (store_constructor): When initializing a field that is smaller
2177         than a word, at the start of a word, try to widen it to a full word.
2178
2179         * cse.c (cse_insn): When we are about to change a register,
2180         remove any invalid references to it.
2181
2182         (remove_invalid_subreg_refs): New function.
2183         (mention_regs): Special treatment for SUBREGs.
2184         (insert_regs): Don't strip SUBREG for call to mention_regs.
2185         Check if reg_tick needs to be bumped up before that call.
2186         (lookup_as_function): Try to match known word_mode constants when
2187         looking for a norrower constant.
2188         (canon_hash): Special treatment for SUBREGs.
2189
2190 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2191
2192         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
2193         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
2194         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
2195         and offsets in actual stack trampoline code so they match the
2196         commentary and actually work.
2197
2198 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2199
2200         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
2201         tmake_file.
2202         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
2203         tmake_file.  Set extra_parts to needed crt objects.
2204         * configure: Rebuilt.
2205         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
2206         (TARGET_DEFAULT): Set if default is v9 or ultra.
2207         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
2208         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
2209         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
2210         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2211         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
2212         (TARGET_VERSION): Define.
2213         (MULTILIB_DEFAULT): Define.
2214         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
2215         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
2216         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
2217         appropriately.
2218         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
2219         * config/sparc/sparc.c (sparc_override_options): If arch and
2220         pointer size disagree, emit diagnostic and fix it up.  If
2221         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
2222         V8PLUS in 64-bit mode.
2223         * config/sparc/t-linux64: New file.
2224         * config/sparc/t-sol2-64: New file.
2225         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
2226         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
2227         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
2228         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
2229         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
2230         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
2231         Define.
2232         (STARTFILE_SPEC): Set approriately based upon those.
2233         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
2234         disposition of DEFAULT_ARCH32_P.
2235         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
2236         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
2237         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
2238         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
2239         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
2240         arch64/v9.
2241         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
2242         
2243 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
2244
2245         * rtl.h (init_virtual_regs): New function.
2246         * emit-rtl.c (init_virtual_regs): Define.
2247         (insn_emit): Use it.
2248         * integrate.c (save_for_inline_copying): Likewise.
2249
2250 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
2251
2252         * config/arm/thumb.h: The following patches were made by Jim Wilson:
2253         (enum reg_class): Add NONARG_LO_REGS support.
2254         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
2255         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
2256         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
2257         completes.  Re-enable HImode REG+OFFSET addresses.
2258         (LEGITIMIZE_RELOAD_ADDRESS): Define.
2259
2260         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
2261
2262 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
2263
2264         * alpha.c (get_aligned_mem): Revert Sep 20 change.
2265         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
2266         (alpha_align_insns): Properly calculate initial offset wrt max_align.
2267
2268 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
2269
2270         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
2271         jumps as a single entity, taking into account the size of the
2272         table.
2273
2274 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2275
2276         * tree.def (SWITCH_EXPR): New tree node definition.
2277
2278 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
2279
2280         * version.c: Bump for snapshot.
2281
2282 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
2283
2284         * version.c: Bump for snapshot.
2285
2286 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
2287
2288         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
2289         NetBSD.
2290
2291 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
2292
2293         * Revert this patch.
2294         * reload.c (find_reloads): Do not replace a pseudo with
2295         (MEM (reg_equiv_addr)) in the initializing insn for the
2296         pseudo.
2297
2298 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
2299
2300         * final.c (final_scan_insn): Disable tracking CC across branches.
2301
2302 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2303
2304         * expr.h (eh_rtime_match_libfunc): New extern declaration.
2305         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
2306         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
2307         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
2308         NULL. Only include <stdio.h> if inhibit_libc is not defined.
2309
2310 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
2311
2312         * toplev.c (rest_of_compilation): Skip compiling anything with
2313         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
2314
2315 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
2316
2317         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
2318         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
2319         use in_libcall_block.
2320         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
2321         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
2322         to INSN.
2323
2324 Mon Sep 21 14:02:23 1998
2325
2326         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
2327         typo in no-fancy-math-387 description.
2328
2329 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
2330
2331         * version.c: Bump for snapshot.
2332
2333 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
2334
2335         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
2336
2337 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
2338
2339         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
2340         documented in install.texi.
2341         (TARGET_OPTIONS) Likewise.
2342
2343 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
2344
2345         * version.c: Bump for snapshot.
2346
2347 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
2348
2349         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
2350         * cccp.c (main): Likewise.
2351
2352         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
2353         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
2354         macro-use bugs.
2355
2356 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
2357
2358         * Makefile.in (LIBS):  Link in libiberty.a.
2359         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
2360
2361 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
2362
2363         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
2364         it to update bb boundaries.  Update caller.
2365         * function.c (reposition_prologue_and_epilogue_notes): Update
2366         bb boundaries wrt the moved note.
2367
2368 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
2369         
2370         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
2371         problems.
2372         * configure: Regenerate.
2373
2374 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
2375
2376         * alpha.c (alpha_sr_alias_set): New variable.
2377         (override_options): Set it.
2378         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
2379         (mode_mask_operand): Fix signed-unsigned comparision warning.
2380         (alpha_expand_block_move): Likewise.
2381         (print_operand): Likewise.
2382         (get_aligned_mem): Use change_address.
2383         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
2384         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
2385         (alphaev4_next_nop, alphaev5_next_nop): New functions.
2386         (alpha_align_insns): Remade from old alphaev5_align_insns
2387         to handle multiple processors.
2388         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
2389         * output.h (label_to_alignment): Prototype.
2390
2391         * tree.c (new_alias_set): New function.
2392         * tree.h (new_alias_set): Declare it.
2393         * c-common.c (c_get_alias_set): Use it.
2394
2395 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
2396
2397         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
2398         to an ABS expr, convert an unsigned input to signed.
2399         
2400 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
2401
2402         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
2403
2404 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2405
2406         * configure.in: Add support for c4x targets.
2407         * configure: Rebuilt.
2408
2409 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
2410
2411         * combine.c (distribute_notes): If an insn is a cc0 user, only
2412         delete it if we can also delete the cc0 setter.
2413
2414 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
2415
2416         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
2417         (invert_truthvalue): Enable truthvalue inversion for
2418         floating-point operands if -ffast-math.
2419
2420 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
2421                          
2422         * configure.in: Disable collect2 for nextstep.  Instead use
2423         crtbegin/crtend.
2424         * configure: Rebuilt.
2425         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
2426         (ENDFILE_SPEC): Define.
2427         (OBJECT_FORMAT_MACHO): Define.
2428         (EH_FRAME_SECTION_ASM_OP): Define.
2429         * crtstuff.c: Handle MACHO.
2430
2431 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
2432
2433         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
2434
2435 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
2436
2437         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
2438         (_fpadd_parts): Get sign right for 0.
2439
2440 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2441
2442         * ginclude/varargs.h: Add support for C4x target.
2443         * ginclude/stdargs.h: Likewise.
2444
2445 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
2446
2447         * alpha.c (alpha_return_addr): SET should be VOIDmode.
2448         (alpha_emit_set_long_const): Rewrite to be callable from reload
2449         and 32-bit hosts.
2450         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
2451         * alpha.md (movdi): Likewise.
2452
2453 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
2454
2455         * arm.c (add_constant): New parameter address_only, change caller.
2456         Set it non-zero if taking the address of an item in the pool.
2457         (arm_reorg): Handle cases where we need the address of an item in
2458         the pool.
2459
2460         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
2461         a memory address.
2462         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
2463         memory addresses that are not in standard canonical form.
2464
2465 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
2466
2467         * README.C4X: New file with information about the c4x ports.
2468         * ginclude/va-c4x.h: New file for c4x varargs support.
2469         * config/c4x: New directory with c4x port files.
2470
2471 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
2472
2473         * reload.c (find_reloads): Do not replace a pseudo with 
2474         (MEM (reg_equiv_addr)) in the initializing insn for the
2475         pseudo.
2476
2477 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2478
2479         * toplev.c (rest_of_compilation): Set bct_p on second call to
2480         loop_optimize.
2481         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
2482         bct_p.
2483         (strength_reduce): Only call analyze_loop_iterations and
2484         insert_bct if bct_p set.
2485         (check_dbra_loop): Fix typo.
2486         (insert_bct): Use word_mode instead of SImode.
2487         (instrument_loop_bct): Likewise.  Do not delete iteration count
2488         condition code generation insn.  Initialize iteration count before
2489         loop start.
2490         * rtl.h (loop_optimize): Update prototype.
2491
2492         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
2493         not doubleword aligned.
2494
2495         * rs6000.c (optimization_options): New function.
2496         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
2497         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
2498         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
2499         first; cr1 can be used for FP record condition insns.
2500
2501 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
2502
2503         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
2504         PREDICATE_CODES.
2505
2506         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
2507         patterns.
2508
2509         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
2510         operators.
2511         (block_move_call): New function: Call a library routine to copy a
2512         block of memory.
2513         (m32r_expand_block_move): New function: Expand a "movstrsi"
2514         pattern into a sequence of insns.
2515         (m32r_output_block_move): New function: Expand a
2516         "movstrsi_internal" pattern into a sequence of assembler opcodes.
2517         (m32r_block_immediate_operand): New function: Return true if the
2518         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
2519         
2520 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2521
2522         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
2523         re-align some code.
2524         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
2525
2526 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2527
2528         * regmove.c (copy_src_to_dest): Check that modes match.
2529
2530 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
2531
2532         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
2533
2534 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
2535
2536         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
2537         narrower than FLOAT_REGS.
2538
2539 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2540
2541         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
2542         * cccp.c: ditto
2543         * Makefile.in (old_gxx_include_dir): removed
2544
2545 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
2546
2547         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
2548         new specification.
2549
2550         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
2551         (sh_handle_pragma): Change function arguments to match new
2552         specification for HANDLE_PRAGMA. 
2553
2554 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2555
2556         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
2557         `unsigned char'.
2558         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
2559         When generating output, initialize missing struct member to zero.
2560
2561 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2562
2563         * regmove.c (copy_src_to_dest): Don't copy if that requires
2564         (a) new register(s).
2565
2566 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2567
2568         * global.c (reg_allocno): Now static.
2569         * reload1.c (reg_allocno): Delete declaration.
2570         (order_regs_for_reload): Take no arguments.  Don't treat regs
2571         allocated by global differently than those allocated by local-alloc.
2572
2573 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
2574
2575         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
2576         condition, fix format strings.
2577         (output_function_epilogue): Likewise.
2578
2579         * m68k/m68k.c: Don't include <stdlib.h> directly.
2580
2581 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
2582
2583         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
2584         mem_first_set, mem_last_set; because 0 can be a CUID.
2585         (oprs_unchanged_p): Use new definition.
2586         (record_last_reg_set_info): Likewise.
2587         (record_last_mem_set_info): Likewise.
2588         (compute_hash_table): Likewise.
2589
2590 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
2591
2592         * rs6000.c (output_epilogue): Handle Chill.
2593
2594         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
2595         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
2596
2597         * combine.c (make_extraction): If no mode is specified for
2598         an operand of insv, extv, or extzv, default it to word_mode.
2599         (simplify_comparison): Similarly.
2600         * expmed.c (store_bit_field): Similarly.
2601         (extract_bit_field): Similarly.
2602         * function.c (fixup_var_regs_1): Similarly.
2603         * recog.c (validate_replace_rtx_1): Similarly.
2604         * mips.md (extv, extzv, insv expanders): Default modes for most
2605         operands.  Handle TARGET_64BIT.
2606         (movdi_uld, movdi_usd): New patterns.
2607
2608         * pa.c (emit_move_sequence): Do not replace a pseudo with its
2609         equivalent memory location unless we have been provided a scratch
2610         register.  Similarly do not call find_replacement unless a
2611         scratch register has been provided.
2612
2613 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2614
2615         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
2616         return FLOAT_REGS.
2617
2618 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
2619
2620         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
2621         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
2622         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
2623         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
2624         * c-decl.c (init_decl_processing): Update accordingly.
2625         * expr.c (expand_builtin): Likewise.
2626
2627         * rtl.h (global_rtl): Add cfa entry.
2628         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
2629         (LAST_VIRTUAL_REGISTER): Update.
2630         * emit-rtl.c (global_rtl): Add cfa entry.
2631         (init_emit): Initialize it.
2632         * function.c (cfa_offset): New.
2633         (instantiate_virtual_regs): Initialize it.
2634         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
2635         (expand_function_end): Call expand_eh_return.
2636         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
2637
2638         * except.c (current_function_eh_stub_label): Kill.
2639         (current_function_eh_old_stub_label): Likwise; update all references.
2640         (expand_builtin_set_return_addr_reg): Kill.
2641         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
2642         (expand_builtin_set_eh_regs): Kill.
2643         (eh_regs): Produce a third reg for the actual handler address.
2644         (eh_return_context, eh_return_stack_adjust): New.
2645         (eh_return_handler, eh_return_stub_label): New.
2646         (init_eh_for_function): Initialize them.
2647         (expand_builtin_eh_return, expand_eh_return): New.
2648         * except.h: Update prototypes.
2649         * flow.c (find_basic_blocks_1): Update references to the stub label.
2650         * function.h (struct function): Kill stub label elements.
2651
2652         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
2653         register number is one that would be in the previous window.
2654         Provide a dummy definition for non-windowed targets.
2655         (get_reg_addr): New function.
2656         (get_reg, put_reg, copy_reg): Use it.
2657         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
2658         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
2659
2660         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
2661         (alpha_init_expanders): Initialize it.
2662         (alpha_expand_epilogue): Use it.
2663         * alpha.h: Declare it.
2664         * alpha.md (eh_epilogue): New.
2665
2666         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
2667         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
2668
2669 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
2670
2671         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
2672         flag bit mask.
2673
2674 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2675
2676         * except.h (struct eh_entry): Add false_label field.
2677         (end_catch_handler): Add prototype.
2678         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
2679         (start_catch_handler): When using old style exceptions, issue
2680         runtime typematch code before continuing with the handler.
2681         (end_catch_handler): New function, generates label after handler
2682         if needed by older style exceptions.
2683         (expand_start_all_catch): No need to check for new style exceptions.
2684         (output_exception_table_entry): Only output the first handler label
2685         for old style exceptions.
2686         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
2687         mechanism into one function, if a runtime matcher is provided.
2688
2689 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2690
2691         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
2692
2693 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
2694
2695         * integrate.c (copy_decl_list): Fix typo.
2696
2697 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2698
2699         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
2700         attribute.
2701
2702 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
2703
2704         * version.c: Bump for snapshot.
2705
2706 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
2707
2708         * version.c: Bump for snapshot.
2709
2710 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
2711
2712         * version.c: Bump for snapshot.
2713
2714 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2715
2716         * invoke.texi (C Dialect Options): Put back missing @end itemize.
2717
2718 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2719
2720         * configure.in: remove usage of `!' to negate the result of a
2721         command; some common shells do not support it
2722
2723 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2724
2725         * configure.in: in sparc9-sol2 config, use 'if test' not
2726         brackets.
2727         * configure: Rebuilt.
2728
2729         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
2730         CM_MEDANY.
2731         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
2732         (CPP_CPU_DEFAULT_SPEC): Likewise.
2733         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
2734         for arch64 libfuncs.
2735         
2736         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
2737         for operand zero.
2738
2739 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2740
2741         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
2742
2743         * collect2.c: Don't declare `sys_siglist' here.
2744         (my_strsignal): Prototype and define new function.  Use it in
2745         place of `sys_siglist' hacks.
2746
2747         * mips_tfile.c:  Likewise.
2748
2749         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
2750         (GCC_NEED_DECLARATIONS): Likewise.
2751
2752         * system.h (strsignal): Prototype it, if necessary.
2753         (sys_siglist): Declare it, if necessary.
2754
2755 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2756
2757         * loop.c (move_movables): While removing insn sequences, preserve
2758         the next pointer of the most recently deleted insn when we skip
2759         over a NOTE.
2760
2761 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
2762
2763         * objc/config-lang.in: Do not output the name of the selected
2764         thread file when building the front-end.  The Makefile for the
2765         runtime library will do this.
2766
2767         * objc/Make-lang.in: Do not build the runtime library or install
2768         the Objective C header files.  The Makefile for the runtime
2769         library will do this.
2770
2771         * objc/Makefile.in (all.indirect): Only build the front-end.
2772         (compiler): Rename to `frontend'.
2773         (obj-runtime): Remove target.
2774         (copy-headers): Likewise.
2775         (clean): No need to remove `libobjc.a' any longer.
2776
2777 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
2778
2779         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
2780         supported with -mcpu=xxx.
2781
2782 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2783
2784         * flow.c (mark_set_1): Recognize multi-register structure return
2785         values in CALL insns.
2786         (mark_used_regs): Likewise.
2787         (count_reg_sets_1): Likewise.
2788         (count_reg_references): Likewise.
2789         * rtlanal.c (note_stores): Likewise.
2790         (reg_overlap_mentioned_p): Likewise.
2791         * haifa-sched.c (check_live_1): Likewise.
2792         (update_live_1): Likewise.
2793         (sched_analyze_1): Likewise.
2794         (sched_note_set): Likewise.
2795         (birthing_insn_p): Likewise.
2796         (attach_deaths): Likewise.
2797
2798         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
2799
2800
2801 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
2802
2803         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
2804
2805 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2806
2807         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
2808
2809 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2810
2811         * configure.in: Add check for GAS subsection -1 support.
2812         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
2813         * configure config.in: Rebuilt.
2814         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
2815         SImode is subsection -1 works, else use DImode.
2816         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
2817         subsection -1 works.
2818         * config/sparc/sparc.c (sparc_output_addr_vec,
2819         sparc_output_addr_diff_vec): Use them if defined.
2820
2821 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
2822
2823         * tree.h (DECL_ORIGIN): New macro.
2824         * integrate.c (copy_and_set_decl_abstract_origin): New function.
2825         (copy_decl_list): Use it.
2826         (integrate_parm_decls): Likewise.
2827         (integrate_decl_tree): Likewise.
2828         * dwarf2out.c (decl_ultimate_origin): Simplify.
2829         * dwarfout.c (decl_ultimate_origin): Likewise.
2830         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
2831         (pushdecl): Likewise.
2832
2833 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
2834
2835         * config/rs6000/rs6000.c (output_epilog): Add Java support.
2836
2837 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
2838
2839         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
2840
2841 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
2842
2843         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
2844         empty or has a single entry.
2845
2846         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
2847         before calling reg_to_stack.
2848
2849 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
2850
2851         * alpha.c (alphaev5_insn_pipe): Abort on default case.
2852         (alphaev5_next_group): Swallow CLOBBERs and USEs.
2853
2854         * c-tree.h (warn_long_long): Declare it.
2855
2856 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
2857
2858         * emit-rtl.c (gen_lowpart_common): Disable optimization of
2859         initialized float-int union if the value is a NaN.
2860
2861 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
2862
2863         * c-lex.c (real_yylex): Don't warn about long long constants if 
2864         we're allowing long long
2865
2866 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2867
2868         * except.h (current_function_eh_stub_label): Declare.
2869         (current_function_eh_old_stub_label): Declare.
2870         * function.h (struct function): New members eh_stub_label and
2871         eh_old_stub_label.
2872         * except.c (current_function_eh_stub_label): New variable.
2873         (current_function_eh_old_stub_label): New variable.
2874         (init_eh_for_function): Clear them.
2875         (save_eh_status): Save them.
2876         (restore_eh_status): Restore them.
2877         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
2878         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
2879         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
2880         make an edge from the block that contains it to the block starting
2881         with the label if this label is one of the eh stub labels.
2882         If eh stub labels exist, show they are reachable from the last block
2883         in the function.
2884
2885         * reload1.c (reload): Break out several subroutines and make some
2886         variables global.
2887         (calculate_needs_all_insns): New function, broken out of reload.
2888         (calculate_needs): Likewise.
2889         (find_reload_regs): Likewise.
2890         (find_group): Likewise.
2891         (find_tworeg_group): Likewise.
2892         (something_needs_reloads): New global variable, formerly in reload.
2893         (something_needs_elimination): Likewise.
2894         (caller_save_spill_class): Likewise.
2895         (caller_save_group_size): Likewise.
2896         (max_needs): Likewise.
2897         (group_size): Likewise.
2898         (max_groups): Likewise.
2899         (max_nongroups): Likewise.
2900         (group_mode): Likewise.
2901         (max_needs_insn): Likewise.
2902         (max_groups_insn): Likewise.
2903         (max_nongroups_insn): Likewise.
2904         (failure): Likewise.
2905
2906         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
2907
2908 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
2909
2910         * loop.c (load_mems): Copy rtx for output mem.
2911
2912 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
2913
2914         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
2915         mips1 or mips2 either.
2916
2917 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
2918
2919         * pa.c (pa_reorg): New marking scheme for jumps inside switch
2920         tables.
2921         (pa_adjust_insn_length): Update to work with new marking scheme
2922         for jumps inside switch tables. 
2923         * pa.md (switch_jump): Remove pattern.
2924         (jump): Handle jumps inside jump tables.
2925
2926         * Makefile.in (profile.o): Depend on insn-config.h
2927
2928 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
2929
2930         * iris6.h (DWARF2_UNWIND_INFO): Undef.
2931
2932 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2933
2934         Add preliminary native sparcv9 Solaris support.
2935         * configure.in: Recognize sparv9-*-solaris2*
2936         * configure: rebuilt
2937         * config.sub: Recognize sparcv9 just like sparc64.
2938         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
2939         config/sparc/sol2-cn.asm: Macroize so it can be shared between
2940         32-bit and 64-bit Solaris systems.
2941         * config/sparc/t-sol2: Assemble those with cpp.
2942         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
2943         (*TF*_LIBCALL): If ARCH64 use V9 names.
2944         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
2945
2946 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2947
2948         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
2949         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
2950         not doing pic.
2951         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
2952         Pmode.
2953         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
2954         to Pmode if CASE_VECTOR_MODE is something else.
2955
2956 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
2957
2958         * prefix.c (update_path): Correctly handle cases where PATH is
2959         a substring of the builtin prefix, but specifies a different
2960         directory location.
2961
2962 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
2963
2964         * expr.c: Corrected comment about what MOVE_RATIO does.
2965         * config/alpha/alpha.h: Ditto.
2966         * config/1750a/1750a.h: Ditto.
2967         * config/clipper/clipper.h: Ditto.
2968         * config/i386/i386.h: Ditto.
2969
2970 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
2971
2972         * configure.in (m68k-next-nextstep3*): Use collect2.
2973         Similarly for x86 NeXT configurations.
2974         * configure: Rebuilt.
2975
2976 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
2977
2978         * configure.in: Don't assume srcdir is .../gcc
2979         * configure: Rebuilt.
2980
2981 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
2982
2983         * global.c: Update comments.
2984         (global_alloc): Assign allocation-numbers
2985         even for registers allocated by local_alloc in case
2986         they are later spilled and retry_global_alloc is called.
2987         (mark_reg_store, mark_reg_clobber,
2988         mark_reg_conflicts, mark_reg_death): Always record a
2989         conflict with a pseudo register even if it has been
2990         assigned to a hard register.
2991         (dump_conflicts): Don't list pseudo registers already assigned to
2992         a hard register as needing to be allocated, but do list their
2993         conflicts.
2994         * local-alloc.c: Update comment.
2995
2996 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
2997
2998         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
2999         * configure: Rebuilt.
3000
3001 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
3002
3003         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
3004         missing 'c'.
3005         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
3006         for all targets that set -msoft-float.
3007
3008 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3009
3010         * toplev.c (print_switch_values): Make static to match prototype.
3011
3012 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
3013
3014         * configure.in: If we are unable to find the "gnatbind" program,
3015         then do not configure the ada subdir.
3016         * configure: Rebuilt.
3017
3018 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
3019
3020         * version.c: Bump for snapshot.
3021
3022 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
3023
3024         * version.c: Bump for snapshot.
3025
3026 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3027
3028         * Makefile.in (toplev.o): Depend on $(EXPR_H).
3029         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
3030
3031         * gansidecl.h: Define ATTRIBUTE_NORETURN.
3032
3033         * genattrtab.c: Have insn-attrtab.c include toplev.h.
3034
3035         * genextract.c: Have insn-extract.c include toplev.h.
3036
3037         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
3038
3039         * toplev.c: Include expr.h.
3040         (really_sorry, fancy_abort): Remove prototypes.
3041         (set_target_switch): Add argument in prototype.
3042         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
3043         (v_really_sorry): Likewise.
3044         (print_version, print_single_switch, print_switch_values): Make
3045         static and add prototype arguments.
3046         (decl_printable_name): Add prototype arguments.
3047         (lang_expand_expr_t): New typedef.
3048         (lang_expand_expr): Declare as a lang_expand_expr_t.
3049         (incomplete_decl_finalize_hook): Add prototype argument.
3050         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
3051         (botch): Likewise for variable `s'.
3052         (rest_of_type_compilation): Mark variables `type' and `toplev'
3053         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
3054         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
3055         (display_help): Make variable `i' an `unsigned long'.
3056         (main): Remove unused parameter `envp'.
3057         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
3058         Cast -1 when comparing it with a `size_t'.
3059
3060         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
3061         prototype with ATTRIBUTE_NORETURN.
3062         (fatal_insn_not_found, fatal_insn, really_sorry,
3063         push_float_handler, pop_float_handler): Add prototypes.
3064         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
3065         (do_abort, botch): Add prototypes.
3066         
3067 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
3068
3069         * final.c (final): If a label is reached only from a single jump,
3070         call NOTICE_UPDATE_CC on the jump and its predecessor before
3071         emitting the insn after the label.
3072         
3073         * i386.h: Add AMD K6 support.
3074         Change TARGET_* macros to use table lookup.
3075         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
3076         (ADJUST_COST): Change definition to call function in i386.c.
3077         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
3078         * i386.c: Add AMD K6 support.
3079         Add constants for feature tests used by TARGET_* macros.
3080         (split_di): If before reload, call gen_lowpart and gen_highpart.
3081         (x86_adjust_cost): New function.
3082         (put_jump_code): New function.
3083         (print_operand): New codes 'D' and 'd'.
3084         * i386.md: New insn types.  New insn attribute "memory".
3085         Redefine scheduling parameters to use new types and add AMD K6
3086         support.  Explicitly set type of most insns.
3087         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
3088         Pro and K6 prefer movl $1,reg to incl reg.
3089         (adddi3, subdi3): Set cc_status.
3090         (DImode shift patterns): Change label counters from HOST_WIDE_INT
3091         to int; x86 can't have more than 2^31 DImode shifts per file.
3092         (setcc): Combine all setcc patterns.  Allow writing memory.
3093         Combine all jump patterns using match_operator.
3094         (*bzero): Name pattern.  Emit mutliple stos instructions when that
3095         is faster than rep stos.
3096         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
3097         add define_split.
3098
3099 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
3100
3101         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
3102         linking.
3103
3104 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
3105
3106         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
3107         not whatever we're generating now.
3108
3109         * alpha.c (set_frame_related_p, FRP): New.
3110         (alpha_expand_prologue): Mark frame related insns.
3111         (alpha_expand_epilogue): Likewise, but with a null FRP.
3112         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
3113         * alpha.md (exception_receiver): New.
3114         * alpha/crtbegin.asm (.eh_frame): New beginning.
3115         (__do_frame_setup, __do_frame_takedown): New.
3116         * alpha/crtend.asm (.eh_frame): New ending.
3117         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
3118         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
3119         (ASM_FILE_START): Don't emit .file for dwarf2.
3120
3121         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
3122         * rtl.c (reg_note_name): Likewise.
3123         * rtl.texi (REG_NOTES): Likewise.
3124         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
3125         without an offset.
3126
3127 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
3128
3129         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
3130         * i386.md (movsf, movdf, movxf): Validate memory address returned
3131         from force_const_mem.  Kill useless REG_EQUAL setting code.
3132
3133 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
3134
3135         * m68k.md (zero_extendsidi2): Fix typo.
3136
3137 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
3138
3139         * configure.in: Removed references to the removed file
3140         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
3141         * arm*-*-netbsd* and ns32k-*-netbsd*.
3142         * config/i386/xm-netbsd.h: Removed unnecessary file.
3143         * config/m68k/xm-netbsd.h: Likewise.
3144         * config/sparc/xm-netbsd.h: Likewise.
3145         * config/mips/xm-netbsd.h: Likewise.
3146
3147 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
3148
3149         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
3150         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
3151
3152         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
3153         for exact section attributions.
3154
3155         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
3156         runtime.
3157         * i386/crtdll.h (CPP_PREDEFINES): Define.
3158
3159 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
3160
3161         * m68k.md (5200 movqi): Do not allow byte sized memory references
3162         using address regs.
3163         * m68k.c (output_move_qimode): Do not use byte sized operations on
3164         address registers.
3165
3166         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
3167         explicit rules for building.  Similarly for alloca, vfprintf,
3168         choose-temp and mkstemp, getopt, getopt1, and obstack.
3169         (INCLUDES): Add $(srcdir)/../include.
3170         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
3171         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
3172
3173 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
3174
3175         * gcc.c (do_spec_1): [case 'o'] Account for
3176         lang_specific_extra_outfiles.
3177         (main): Correctly clear all slots in outfiles for
3178         lang_specific_extra_outfiles.  Set input_file_number before
3179         calling lang_specific_pre_link.
3180
3181 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
3182
3183         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
3184
3185 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3186
3187         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
3188         cases, use xword.
3189         (sparc_output_deferred_case_vectors): If no work to do, return.
3190         Fix thinko in Sept 1 change.
3191
3192 1998-09-03  SL Baur  <steve@altair.xemacs.org>
3193
3194         * Makefile.in: add semicolon in BISON definition for portability.
3195
3196 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
3197
3198         * config/nextstep.c (handle_pragma): Correct name of third
3199         argument.
3200
3201 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
3202
3203         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
3204         * config/m32r/m32r.h: Make register 17 be fixed.
3205         * config/m32r/m32r.c: Use SImode for cc operations.
3206
3207 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
3208
3209         * invoke.texi (Warning Options): Add -Wnon-template-friend
3210         documentation.
3211
3212 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
3213
3214         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
3215
3216 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3217
3218         * rs6000.md (movsf): Disable explicit secondary-reload-like
3219         functionality if TARGET_POWERPC64.
3220         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
3221         functionality.
3222
3223 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
3224
3225         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
3226         and term.h from fixinc.wrap.
3227
3228 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3229
3230         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
3231         safe to include both string.h and strings.h together.
3232         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
3233         which headers to search for function declarations.  Continue to
3234         prefer string.h over strings.h when both are not acceptable.
3235
3236         * acconfig.h (STRING_WITH_STRINGS): Add stub.
3237
3238         * configure.in: Call GCC_HEADER_STRING.
3239
3240         * system.h: Test STRING_WITH_STRINGS when deciding which headers
3241         to include.  Continue to prefer string.h over strings.h when both
3242         are not acceptable.
3243
3244 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3245
3246         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
3247         not assume top 32-bits of symbolic addresses are zero if
3248         flag_pic.
3249
3250 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
3251
3252         * ginclude/va-alpha.h: Protect entire second portion of the
3253         file against double inclusion.
3254
3255 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
3256
3257         Added support for the Boehm's garbage collector.
3258         * configure.in: Handle --enable-objc-gc.
3259         * configure: Rebuilt.
3260         * Makefile.in (CHECK_TARGETS): Add check-objc.
3261         (check-objc): New rule.
3262         * objc/Make-lang.in: Build a different Objective-C library that
3263         runs with the Boehm's collector.
3264         * objc/encoding.c (objc_round_acc_size_for_types): New function.
3265         * objc/encoding.c: Correctly compute the size of compound types in
3266         the presence of bitfields. Skip the variable name of the type if
3267         any. Added support for long long.
3268         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
3269         (_F_GCINVISIBLE): New mask.
3270         * objc/gc.c: New file. Compute the type memory mask associated with
3271         a class based on the runtime information.
3272         * objc/misc.c: Added the hooks that use the Boehm's collector
3273         allocation functions.
3274         * objc/objc-act.c (build_class_template): Generate a new class
3275         member (gc_object_type) to hold the class' type memory mask.
3276         (build_shared_structure_initializer): Initialize the new member to
3277         NULL.
3278         (encode_complete_bitfield): New function. Generate the new
3279         encoding.
3280         (encode_field_decl): Generate the new encoding only for the GNU
3281         runtime.
3282         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
3283         long long types.
3284         (class_get_gc_object_type): New function to mark a pointer instance
3285         variable as a weak pointer.
3286         * objc/objc-features.texi: New file.
3287         * objc/objc.h (gc_object_type): New class member.
3288         * objc/objects.c (class_create_instance): Create a typed memory
3289         object when compiled with Boehm's collector support.
3290         * objc/sendmsg.c (__objc_init_install_dtable): Call
3291         __objc_send_initialize instead of setting the initialize flag.
3292         (__objc_send_initialize): Call __objc_generate_gc_type_description
3293         to generate the class type memory mask. Rewrite the code that
3294         sends the +initialize so that it is called only once (bug report
3295         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
3296         * testsuite/objc: New testsuite for Objective-C type encoding.
3297         * testsuite/lib/objc-torture.exp: New file.
3298         * testsuite/lib/objc.exp: New file.
3299
3300 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
3301
3302         * jump.c (jump_optimize): In if/then/else transformations, add
3303         another call to modified_between_p for the jump insn.
3304
3305 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
3306
3307         * fix-header.c (symlink): Treat like readlink.
3308
3309 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3310
3311         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
3312         as FT_float.
3313
3314 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
3315
3316         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
3317         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
3318         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
3319         
3320         * config/nextstep.c (handle_pragma): Take three arguments, as per
3321         the new HANDLE_PRAGMA macro specification.
3322         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
3323         per the new HANDLE_PRAGMA macro specification.
3324         * config/i960/i960.c (process_pragma): Take three arguments, as
3325         per the new HANDLE_PRAGMA macro specification.
3326
3327 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
3328
3329         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
3330         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
3331         if unknown pragmas are encountered.
3332         (handle_sysv_pragma): Interpret return code from
3333         handle_pragma_token ().  Return success/failure indication rather
3334         than next unprocessed character. 
3335         (pragma_getc): New function: retrieves characters from the
3336         input stream.  Defined when HANDLE_PRAGMA is enabled.
3337         (pragma_ungetc): New function: replaces characters back into the
3338         input stream.  Defined when HANDLE_PRAGMA is enabled.
3339         
3340         * c-pragma.c (handle_pragma_token): Return success/failure status
3341         of the parse.
3342         
3343         * c-pragma.h: Change prototype of handle_pragma_token().
3344
3345         * varasm.c: (handle_pragma_weak): Only create this function if
3346         HANDLE_PRAGMA_WEAK is defined.
3347
3348         * c-common,c (decl_attributes): If defined call the expression
3349         contained within the INSERT_ATTRIBUTES macro before adding
3350         attributes to a decl.
3351
3352         * tm.texi (HANDLE_PRAGMA): Document the new verion of
3353         HANDLE_PRAGMA, which takes three arguments.
3354         (INSERT_ATTRIBUTES): Document this new macro.  
3355
3356         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
3357         new INSERT_ATTRIBUTES macro.
3358
3359 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3360
3361         * config/sparc/sparc.md (movdf): Only generate special RTL for
3362         LABEL_REFs when PIC.
3363         (move_label_di): Remove
3364         (movdi_pic_label_ref, movdi_high_pic_label_ref,
3365         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
3366         references when PIC.
3367         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
3368         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
3369         output an .xword for all 64-bit cases.
3370         
3371 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3372
3373         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
3374         alignment, use FUNCTION_BOUNDARY instead.
3375         (sparc_output_deferred_case_vectors): Likewise.
3376
3377 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3378
3379         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
3380         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
3381
3382 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
3383
3384         * alpha/va_list.h: New file.
3385         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
3386
3387 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
3388
3389         * NEWS: Add SCO Openserver and Unixware 7 notes.
3390
3391         * NEWS: Fix typos.
3392
3393 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
3394
3395         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
3396         (record_constant_1): Handle RANGE_EXPR.
3397
3398 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
3399
3400         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
3401         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
3402         and NOTE_INSN_RANGE_END specially.
3403         (reemit_notes): Likewise.
3404
3405 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3406
3407         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
3408         (ultrasparc_sched_init): Remove unneeded &.
3409
3410 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
3411
3412         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
3413         for m68020-60, to prevent the use of fintrz.
3414
3415 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
3416
3417         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
3418         even in stage1. 
3419         * Makefile.in: Likewise.
3420         * configure: Regenerated.
3421
3422 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
3423
3424         * configure.in (gxx_include_dir): Changed to
3425         '${prefix}/include/g++'-${libstdcxx_interface}.
3426         * configure: Rebuilt.
3427
3428 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
3429
3430         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
3431         consistent.
3432         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
3433         *sequences* *below* which scalar moves will be used.
3434
3435 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
3436
3437         * collect2.c (mktemp): Delete unused declaration.
3438
3439         * config/xm-netbsd.h: Remove unnecessary file.
3440         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
3441         file anymore, it is not needed.
3442
3443 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
3444
3445         * convert.c (convert_to_integer): Issue an error on conversions to
3446         incomplete types.
3447
3448 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
3449
3450         * Makefile.in: Add lang_tree_files and gencheck.h.
3451         * configure.in: Generate them.
3452         * gencheck.c: Include gencheck.h.
3453
3454 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3455
3456         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
3457         movdi_lo_sum_pic and movdi_high_pic and make visible.
3458         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
3459         emit these when Pmode is not SImode.
3460         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
3461
3462 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
3463
3464         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
3465         .linkonce directive after the first time.
3466
3467 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
3468
3469         * m68k.md (beq0_di): Generate correct (and more efficient) code when
3470         the clobbered operand overlaps with an input.
3471         (bne0_di): Similarly.
3472
3473         * Makefile.in (INSTALL): Remove "--no-header" argument.
3474
3475         * NEWS: Various updates.
3476
3477 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3478
3479         * config/sparc/sparc.c (arith_operand, const64_operand,
3480         const64_high_operand, arith_double_4096_operand): Mark mode as
3481         unused.
3482         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
3483         callers changed.
3484         (sparc_emit_set_const64): Remove unused variable i.
3485         (sparc_splitdi_legitimate): Likewise for addr_part.
3486         (ultra_code_from_mask): Likewise for mask.
3487         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
3488         reverse return values so it matches usage and comments.
3489         (ultra_flush_pipeline): Likewise.
3490         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
3491         this_type, and allow loads and stores of differing FP modes as
3492         they do not create a conflict.
3493         (ultra_find_type): Initialize fpmode to SFmode, fix
3494         parenthesization thinkos in large conditional.
3495         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
3496         Init free_slot_mask after ultra_cur_hist is reset, not before.
3497         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
3498         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
3499         use ultra_flush_pipeline instead, then re-init group pointer.
3500         Fix statement with no effect.  If no progress made in, and no
3501         instructions scheduled at all, advance to new pipeline cycle else
3502         we get into an endless loop.
3503         (ultrasparc_adjust_cost): Remove previous arg.
3504         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
3505         
3506 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
3507
3508         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
3509         code.  Use reg_overlap_mentioned_p to detect when source and
3510         destination overlap.
3511         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
3512
3513 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
3514
3515         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
3516         COMPARISON_VAL, into invariant_p.
3517
3518 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3519
3520         * regmove.c (regclass_compatible_p): New function.
3521         (regmove_optimize): Use it.
3522
3523         Use NREGS parameter insted of calling max_reg_num.
3524
3525         (fixup_match_1): Don't use code = MINUS when later tieing with
3526         a hard register is likely.
3527
3528 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3529
3530         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
3531         COMPARISON_VAL was normalized.
3532
3533 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
3534
3535         * loop.c (check_dbra_loop): The loop ending comparison value
3536         must be an invariant or we can not reverse the loop.
3537
3538         * loop.c (scan_loop): Count down from max_reg_num - 1 to
3539         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
3540         of the loop.
3541         (load_mems_and_recount_loop_regs_set): Likewise.
3542
3543         * i386.c (print_operand): Remove obsolete 'c' docs.
3544
3545 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
3546
3547         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
3548         * frame.c (init_object_mutex): New function.
3549         (init_object_mutex_once): Likewise.
3550         (find_fde): Call it.
3551         (__register_frame_info): Likewise.
3552         (__register_frame_info_table): Likewise.
3553         (__deregister_frame_info): Likewise.
3554
3555 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
3556
3557         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
3558
3559 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3560
3561         * loop.c (check_dbra_loop): Enable code for reversal
3562         of some loops without a known constant loop end.
3563
3564 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
3565
3566         * haifa-sched.c (last_clock_var): New.
3567         (schedule_block): Initialize it.
3568         (schedule_insn): Use it to fill insn modes with issue information.
3569
3570         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
3571         Tag trapb and next insn with TImode.
3572         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
3573         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
3574         Invoke alphaev5_align_insns as appropriate.
3575         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
3576         (MD_SCHED_VARIABLE_ISSUE): New.
3577         * alpha.md (attr type): Add multi.
3578         (define_asm_attributes): New.
3579         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
3580         (arg_home): Likewise.
3581         (fnop, unop, realign): New.
3582
3583 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
3584
3585         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
3586         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
3587
3588         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
3589         (rs6000-ibm-aix4.[12]*): Likewise.
3590         * configure: Regnerate.
3591
3592 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
3593
3594         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
3595         already contains the return address.
3596
3597 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
3598
3599         * calls.c (expand_call): Use bitfield instructions to extract/deposit
3600         word sized hunks when loading unaligned args into registers.
3601
3602         * haifa-sched.c (sched_analyze_insn): Only create scheduling
3603         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
3604
3605         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
3606
3607 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3608
3609         * loop.c (check_dbra_loop): Add some code that would allow reversal
3610         of some loops without a known constant loop end if it were enabled.
3611
3612 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
3613
3614         * mips.md (lshrsi3_internal2+2): Fix type-o.
3615
3616 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3617
3618         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
3619         correctly with regards to stdio.h.
3620         
3621         * calls.c: Remove stdarg.h/varargs.h.
3622         * cccp.c: Likewise.
3623         * cexp.y: Likewise.
3624         * combine.c: Likewise.
3625         * cpperror.c: Likewise.
3626         * cpplib.c: Likewise.
3627         * cpplib.h: Likewise.
3628         * doprint.c: Likewise.
3629         * emit-rtl.c: Likewise.
3630         * final.c: Likewise.
3631         * fix-header.c: Likewise.
3632         * gcc.c: Likewise.
3633         * genattr.c: Likewise.
3634         * genattrtab.c: Likewise.
3635         * gencodes.c: Likewise.
3636         * genconfig.c: Likewise.
3637         * genemit.c: Likewise.
3638         * genextract.c: Likewise.
3639         * genflags.c: Likewise.
3640         * genopinit.c: Likewise.
3641         * genoutput.c: Likewise.
3642         * genpeep.c: Likewise.
3643         * genrecog.c: Likewise.
3644         * mips-tfile.c: Likewise.
3645         * prefix.c: Likewise.
3646         * protoize.c: Likewise.
3647         * regmove.c: Likewise.
3648         * toplev.c: Likewise.
3649         * tree.c: Likewise.
3650
3651 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
3652
3653         * config/sparc/sparc.c (sparc_override_options): If not
3654         TARGET_FPU, turn off TARGET_VIS.
3655         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
3656         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
3657         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
3658         (movdi_insn_sp64): Add VIS fzero alternative.
3659         (clear_sf, clear_df): New VIS patterns.
3660         (movsf, movdf expanders): Allow fp_zero_operand flat out when
3661         TARGET_VIS.
3662         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
3663         
3664 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
3665
3666         * loop.c (n_times_set, n_times_used, may_not_optimize,
3667         reg_single_usage): Convert to varrays.  All uses changed.
3668         (insert_loop_mem): Return a value.
3669         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
3670         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
3671         necessary.
3672
3673 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
3674
3675         * From Alexandre:
3676         * configure.in: Do not set thread_file to "irix" since no such
3677         support exists yet.
3678
3679         * sparc.md (float abs/neg splits): Check reload_completed before
3680         calling alter_subreg.
3681
3682 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3683
3684         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
3685         function.
3686         * config/sparc/sparc.h: Declare it.
3687         * config/sparc/sparc.md (float abs/neg splits): Use it.
3688         (all other splits): Handle SUBREGs properly where necessary.
3689         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
3690
3691 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
3692
3693         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
3694         an insn on the unfilled_slots_list that has no delay slots.
3695         (fill_eager_delay_slots): Similarly.
3696
3697 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
3698
3699         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
3700         as an ordinary operand.
3701
3702 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
3703
3704         * tree.c (valid_machine_attribute): Don't apply attributes to both
3705         decl and type.
3706
3707 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
3708
3709         * reload.c (operands_match_p): Handle rtvecs.
3710
3711         * i386.c (legitimate_pic_address_disp_p): New.
3712         (legitimate_address_p): Use it.
3713         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
3714         Handle constant pool symbols just like statics.
3715         (emit_pic_move): Use Pmode not SImode for clarity.
3716         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
3717         [UNSPEC]: New, handling what we killed above.
3718         [PLUS]: Detect and abort on invalid symbol arithmetic.
3719         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
3720
3721 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
3722
3723         * alias.c: Include output.h.
3724         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
3725         different if we're in a varargs function.
3726         * Makefile.in (alias.o): Depend on output.h
3727         
3728 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3729
3730         * sh.h (GIV_SORT_CRITERION): Delete.
3731
3732 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
3733
3734         * regclass.c (regclass): Use xmalloc/free instead of alloca.
3735         * stupid.c (stupid_life_analysis): Ditto.
3736         * reload1.c (reload): Ditto.
3737
3738 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
3739
3740         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
3741         arith_double_4096_operand, arith_double_add_operand): New
3742         predicates.
3743         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
3744         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
3745         them to transform add/sub 4096 into add/sub -4096.
3746
3747 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3748
3749         * loop.c (scan_loop): Allocate some slop to handle pseudos
3750         generated by move_movables.
3751         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
3752         here too.
3753
3754 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
3755
3756         * tree.def (DECL_RESULT): Correct documentation.
3757
3758 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3759
3760         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
3761         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
3762         conflicts will all RELOAD_FOR_OUTPUT reloads.
3763
3764         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
3765         loads the function result, substitute with a USE.
3766
3767 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3768
3769         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
3770         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
3771         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
3772         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
3773         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
3774         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
3775         operand. 
3776         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
3777         'o' to 'm' for GPR variant constraints.
3778
3779 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
3780
3781         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
3782
3783         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
3784
3785         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
3786         when the source and destination overlap.
3787
3788         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
3789         clash with global type.
3790
3791 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
3792
3793         * fixinc.irix: Add curses.h handling from fixinc.wrap.
3794
3795         * c-common.c (combine_strings): Also set TREE_READONLY.
3796         Change warn_write_strings to flag_const_strings.
3797         * c-decl.c, c-tree.h: Likewise.
3798
3799 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3800
3801         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
3802         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
3803         sequence, use SET/IOR instead so CSE can see it.
3804         * config/sparc/sparc.md (movhi_const64_special,
3805         movsi_const64_special): New patterns necessitated by that change.
3806         (movhi_high): Remove.
3807         (movhi_lo_sum): Change to match an IOR.
3808         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
3809         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
3810         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
3811         (movdf splits): Allow when not V9 or when not ARCH64 and integer
3812         registers are involved.
3813         (snesi_zero_extend split): Remove reload_completed test.
3814         (unnamed plus and minus zero_extend sidi splits): Add it.
3815
3816 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
3817
3818         * extend.texi: Remove description of extension to explicit
3819         instantiation that is now endorsed by standard C++.
3820
3821 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3822
3823         * config/arc/arc.c (arc_initialize_pic): Remove.
3824         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
3825         nothing on any platform and is invoked by no-one, it does not even
3826         appear in the documentation.
3827         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
3828         * config/sparc/sparc.c (initialize_pic): Likewise.
3829         (find_addr_reg): Remove this as well, no longer referenced after
3830         my rewrite.
3831
3832 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
3833
3834         * recog.c (validate_replace_rtx_group): New function.
3835         * recog.h (validate_replace_rtx_group): Declare it.
3836         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
3837         the entire group of substitutions.
3838
3839 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
3840
3841         * loop.c (load_mems): Fix initializers.
3842
3843 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3844
3845         * config/sparc/sparc.md (TFmode splits): Handle destination
3846         registers being referenced in the address correctly.
3847
3848         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
3849         TREE_UNSIGNED, when bitsize of type's mode is larger than
3850         HOST_BITS_PER_WIDE_INT.
3851
3852 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
3853
3854         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
3855         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
3856         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
3857         macros.
3858         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
3859         EXIT_BLOCK_EXPR.
3860
3861 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
3862
3863         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
3864         * h8300.h (TINY_DATA_NAME_P): Likewise.
3865         (STRIP_NAME_ENCODING): Handle '&'.
3866
3867         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
3868         register (it could be accessed via an outer SUBREG).
3869         (REG_OK_FOR_BASE_P): Likewwise.
3870         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
3871
3872         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
3873         bogus rtl.
3874
3875         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
3876
3877 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3878
3879         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
3880         must be offsettable so the splits can be made.
3881
3882 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
3883
3884         * config/i386/winnt.c: Include system.h, not stdio.h to get
3885         sys/param.h pulled in before rtl.h in case the system defines MIN
3886         and MAX.
3887
3888 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3889
3890         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
3891
3892 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
3893
3894         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
3895         arrays of bits.
3896         * cpplib.c (cpp_define): Handle macros with parameters.
3897
3898 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3899
3900         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
3901         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
3902         and DImode 64-bit.  Use llong for minimal-toc SFmode and
3903         SYMBOL_REF / LABEL_REF 64-bit.
3904         (output_function_profiler): Use llong for profiler label and ld to
3905         load 64-bit label address.
3906
3907 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
3908
3909         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
3910         OFFSET addressing.
3911
3912 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
3913
3914         * version.c: Bump for snapshot.
3915
3916 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
3917
3918         * version.c: Bump for snapshot.
3919
3920 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
3921
3922         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
3923
3924 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
3925
3926         * tm.texi (Misc): Fix typo "teh".
3927
3928         * tm.texi (PIC): Fix typo "PPIC".
3929
3930         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
3931         effect when -O2 and higher.
3932         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
3933
3934 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
3935
3936         * regclass.c: Changed register set documentation to be consistent
3937         with GCC behaviour.
3938
3939         * final.c (final_start_function) Removed redundant test for
3940         call_fixed_regs.
3941
3942 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
3943
3944         * rtl.h (rtx_function): New type.
3945         (for_each_rtx): New function.
3946         * rtlanal.c (for_each_rtx): Define it.
3947         
3948         * recog.c (change_t): New type.
3949         (change_objects, change_old_codes, change_locs, change_olds):
3950         Replace with ...
3951         (changes): New variable.
3952         (validate_change): Dynamically allocate room for more changes, if
3953         necessary.  Uses changes array instead of change_objects, etc.
3954         (apply_change_group):  Use changes array instead of
3955         change_objects, etc.
3956         
3957         * loop.c (loop_mem_info): New type.
3958         (loop_mems): New variable.
3959         (loop_mems_idx): Likewise.
3960         (looop_mems_allocated): Likewise.
3961         (scan_loop): Remove nregs parameter.
3962         (next_insn_in_loop): New function.
3963         (load_mems_and_recount_loop_regs_set): Likewise.
3964         (load_mems): Likewise.
3965         (insert_loop_mem): Likewise.
3966         (replace_loop_mem): Likewise.
3967         (replace_label): Likewise.
3968         (INSN_IN_RANGE_P): New macro.
3969         (loop_optimize): Don't pass max_reg_num() to scan_loop.
3970         (scan_loop): Remove nregs parameter, compute it after any new
3971         registers are created by load_mems.  Use INSN_IN_RANGE_P and
3972         next_insn_in_loop rather than expanding them inline.  Call
3973         load_mems to load memory into pseudos, if appropriate.
3974         (prescan_loop): Figure out whether or not there are jumps from the
3975         loop to targets other than the label immediately following the
3976         loop.  Call insert_loop_mem to notice all the MEMs used in the
3977         loop, if it could be safe to pull MEMs into REGs for the duration
3978         of the loop.
3979         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
3980
3981 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
3982
3983         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
3984
3985 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3986
3987         * config/sparc/sparc.c (finalize_pic): Check for the correct
3988         nonlocal_goto_receiver UNSPEC number.
3989         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
3990         making note of this dependency existing in sparc.c
3991         (negtf2_notv9 split): Give NEG SFmode.
3992         (negsf2): Fix insn output string.
3993         
3994 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
3995
3996         * c-common.c (decl_attributes): Issue an error if the argument
3997         to alias is not a string.
3998
3999 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
4000
4001         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
4002         pending memory flush list.
4003
4004         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
4005         notes.
4006         (try_combine): Allow combining insns with REG_LIBCALL notes.
4007
4008         * expr.c (emit_block_move): Do not call memcpy as a libcall
4009         instead build up a CALL_EXPR and call it like any other
4010         function.
4011         (clear_storage): Similarly for memset.
4012
4013         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
4014         on notes.
4015
4016         * Makefile.in (cplus-dem.o): Provide explicit rules for building
4017         cplus-dem.o
4018
4019         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
4020         and REG_LIVE_LENGTH as successful substitutions are made.
4021
4022 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4023
4024         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
4025         statement after end of loop label.
4026
4027 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4028
4029         * config/sparc/sparc.c (ultra_types_avail): New variable.
4030         (ultra_build_types_avail): New function to record mask of insn
4031         types in ready list at this cycle.
4032         (ultrasparc_sched_reorder): Call it.
4033         (ultra_find_type): Use it to quicken the search.  Also simplif
4034         dependency check, don't use rtx_equal_p because we know exactly
4035         what we are looking for.
4036
4037 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
4038
4039         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
4040         for architecture v4.
4041
4042 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4043
4044         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
4045         gen_compare_reg.
4046         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
4047         movdf_const_intreg and helper splits): New patterns to move float
4048         constants into integer registers.
4049         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
4050         splits.
4051
4052 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
4053
4054         * From Graham
4055         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
4056         to itype.
4057         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
4058
4059         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
4060         a BASE_REGS register is needed as an intermediate when copying
4061         a symbolic value into any register class other than BASE_REGS.
4062
4063         * expr.c (move_by_pieces): No longer static.  Remove prototype.
4064         * rtl.h (move_by_pieces): Add extern prototype.
4065         * mips.c (expand_block_move): Handle aligned straight line copy by
4066         calling move_by_pieces.
4067
4068         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
4069         and VAR_DECLs.
4070
4071 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
4072
4073         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
4074         jumps out of the loop to be treated as part of the exit test.
4075
4076 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4077                           Jeff Law <law@cygnus.com>
4078
4079         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
4080         * cplus-dem.c: Delete.
4081
4082         * Makefile.in (fold-const.o): depend on $(RTL_H).
4083
4084         * fold-const.c: Include rtl.h to get the prototype for
4085         `set_identifier_local_value'.
4086
4087         * loop.c (express_from_1): Remove unused variable `tmp'.
4088         (combine_givs): cast the first argument of bzero to char *.
4089
4090         * toplev.c (display_help): Remove unused variable `looking_for_start'.
4091
4092         * c-decl.c (init_decl_processing): Remove unneeded &.
4093
4094         * alpha.h (alpha_initialize_trampoline): Provide prototype.
4095         
4096         * except.c (set_exception_lang_code, set_exception_version_code):
4097         Change parameter from `short' to `int' to avoid using a gcc
4098         extension.
4099
4100         * except.h (set_exception_lang_code, set_exception_version_code):
4101         Likewise for prototypes.
4102
4103         * flow.c (count_reg_references): Remove unused variables `regno'
4104         and `i'.
4105
4106         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
4107
4108         * prefix.c (translate_name): Cast the result of `alloca'.
4109
4110         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
4111
4112 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4113
4114         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
4115         Include "toplev.h".
4116         (valid_dbcc_comparison_p): Mark mode argument as unused.
4117         (symbolic_operand): Likewise.
4118         (legitimize_pic_address): Likewise.
4119         (const_uint32_operand): Likewise.
4120         (const_sint32_operand): Likewise.
4121         * sched.c [!INSN_SCHEDULING]: Define only dummy function
4122         schedule_insns and comment out rest of file.
4123
4124         * m68k.c (output_move_simode_const): Use subl to move a zero into an
4125         address register.
4126         (output_move_[hq]imode): Likewise.
4127
4128 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
4129
4130         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
4131         * invoke.texi: Corresponding changes.
4132
4133 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
4134
4135         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
4136
4137 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4138
4139         * config/sparc/sparc.c (ultra_code_from_mask,
4140         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
4141         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
4142         ultrasparc_sched_init, ultrasparc_variable_issue,
4143         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
4144         functions to describe UltraSPARC pipeline exactly to Haifa.
4145         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
4146         as there is nothing the scheduler can do about it.  Indicate that
4147         REG_DEP_OUTPUT's collide.  Fixup formatting.
4148         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
4149         divide costs on Ultra for DImode.
4150         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
4151         Define.
4152         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
4153         ieuN and add call_no_delay_slot to type list.
4154         (cti function unit): New unit for branches on UltraSPARC.
4155         (subx/addx insns): Set type to misc.
4156         (sidi zero/sign extension insns on arch64): Set type to shift.
4157         (sign_extendhidi2_insn): Set type to sload.
4158
4159 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4160
4161         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
4162         (output_epilog): Use if != 0 for offset.
4163         (rs6000_fatal_bad_address): Prepare for Intl.
4164         * rs6000.h (rs6000_fatal_bad_address): Declare.
4165         * rs6000.md (movsfcc, movdfcc): Use else if.
4166         (elf_high): Use {liu|lis}.
4167         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
4168         (movsi): Use rs6000_fatal_bad_address.
4169         
4170 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
4171
4172         * reload.c (find_equiv_reg): Reject equivalences separated
4173         by a volatile instruction.
4174
4175 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 
4176
4177         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
4178
4179 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
4180
4181         * alpha.md (movsicc): Fix mode mismatch.
4182
4183 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
4184
4185         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
4186         return type.
4187         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
4188
4189 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4190
4191         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
4192         write-only modifier from operand 1 constraint.
4193
4194 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4195
4196         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
4197         emitting a XOR of -1 at the end, emit a NOT instead for combine's
4198         sake.
4199         (sparc_emit_set_const64): Likewise, also when computing trailing
4200         bits do not negate low_bits and make fast_int an int.
4201
4202 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
4203
4204         * loop.c (add_label_notes): Do not ignore references to labels
4205         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
4206         * gcse.c (add_label_notes): Similarly.
4207
4208         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
4209
4210         * m68k.md (adddi_dilshr32): One of the operands must be a register.
4211         (adddi_dishl32): Similarly.
4212
4213 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
4214
4215         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
4216         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
4217         * cse.c (cse_basic_block): Add parens to shut up warnings.
4218
4219 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4220
4221         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
4222         sparc_emit_set_const64_longway, const64_is_2insns,
4223         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
4224         in 64-bit constant formation.
4225         * config/sparc/sparc.md (snesi_zero_extend split): Generate
4226         rtl for addx not subx.
4227         (define_insn movdi_const64_special): Make available even when
4228         HOST_BITS_PER_WIDE_INT is not 64.
4229         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
4230         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
4231         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
4232         instances of operand 1 inside a QI subreg.
4233         (xordi3_sp64_dbl): Remove '%' constraint for op1.
4234         (one_cmpldi2_sp64): Fix output string.
4235         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
4236         alternative case.
4237         (unnamed arch64 ashift DI): Truncate shift count if greater than
4238         63, not 31.
4239
4240 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4241
4242         * expr.c (store_expr): Don't optimize away load-store pair
4243         when either source or destination have a side effect.
4244
4245 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
4246
4247         * genrecog.c (add_to_sequence): Fatal error if the modes of the
4248         operands of SET are incompatible.
4249
4250         * alpha.md: Fix max and min patterns so modes of SET operands match.
4251
4252 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
4253
4254         * configure.in: Avoid [[ by using test and changequote.
4255         * configure: Rebuild.
4256
4257 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4258
4259         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
4260
4261         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
4262         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
4263         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
4264         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
4265         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
4266         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
4267         Fix mismatching modes in SET operands.
4268         (conditional move patterns): Fix formatting.
4269         (unnamed subx arch64 pattern): Remove duplicate insn.
4270         
4271 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4272
4273         * config/sparc/sparc.c (const64_operand, const64_high_operand):
4274         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
4275         (input_operand): Fixup test for what we accept for constant
4276         integers.
4277         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
4278         set VOIDmode.
4279         (safe_constDI): Remove.
4280         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
4281         gen_safe_XOR64): New functions.
4282         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
4283         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
4284         them.
4285         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
4286         available when HOST_BITS_PER_WIDE_INT is not 64.
4287         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
4288         move before movdi_insn_sp64 pattern.
4289         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
4290         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
4291         symbolic_operand as predicate for second operand.
4292         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
4293         expander): Give set VOIDmode.
4294         
4295 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
4296
4297         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
4298
4299 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
4300
4301         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
4302
4303 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
4304
4305         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
4306         point.
4307         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
4308
4309 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
4310
4311         * install.texi: Various SCO OpenServer tweaks.
4312
4313 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
4314
4315         * reload1.c (eliminate_regs_in_insn): Handle another case when
4316         eliminating the frame pointer to the hard frame pointer.  Add
4317         missing ep->to_rtx check to one existing case.
4318
4319         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
4320
4321 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
4322
4323         * tree.h: De-conditionalize init_priority code.
4324
4325         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
4326         * collect2.c (NM_FLAGS): Change from -p to -n.
4327
4328         * configure.in: Turn on collect2 for mipstx39-elf.
4329         Handle use_collect2=no properly.
4330
4331         * c-common.c: De-conditionalize init_priority code.
4332         * collect2.c (extract_init_priority, sort_ids): New fns.
4333         (main): Call sort_ids.
4334         Move sequence_number to file scope.
4335
4336         * configure.in: Handle --enable-init-priority.
4337         * c-common.c (attrs): Add A_INIT_PRIORITY.
4338         (init_attributes, decl_attributes): Likewise.
4339         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
4340         * tree.c (get_file_function_name_long): Split out...
4341         (get_file_function_name): ...from here.
4342
4343 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
4344
4345         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
4346         accessing nodes.
4347
4348 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
4349
4350         * toplev.c (display_help): Add braces to shut up warnings.
4351         * tree.c (simple_cst_equal): Likewise.
4352
4353         * fold-const.c (non_lvalue): Don't deal with null pointer 
4354         constants here.
4355         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
4356
4357         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
4358         of any size to a pointer.
4359
4360 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
4361
4362         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
4363
4364 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
4365
4366         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
4367         which will be saved.
4368         * mn10300.md (prologue insn): Only save registers which need saving.
4369         (epilogue insn): Similarly.
4370
4371         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
4372         optimizations.
4373
4374 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
4375
4376         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
4377         VAR_DECL's in gp addressable sections.
4378
4379 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
4380
4381         * sparc.c: Change return <exp> to <exp>; return; in functions
4382         returning void.
4383         * sparc.md: Add empty semicolon statement after final label in
4384         move expanders.
4385
4386 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4387
4388         * config/sparc/sparc.md (define_insn addx_extend): Rename to
4389         addx_extend_sp64, only allow when TARGET_ARCH64.
4390         (define_insn addx_extend_sp32 and split): Version that works when
4391         not TARGET_ARCH64.
4392         (define_insn subx_extend): Likewise.
4393         (define_split adddi3 and subdi3 with zero extension): Fixup and
4394         correct bugs when not TARGET_ARCH64.
4395
4396 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
4397
4398         * except.c (set_exception_lang_code, set_exception_version_code):
4399         Use prototype-style definition if __STDC__, to match declaration
4400         in except.h.
4401
4402         * genemit.c: Change FAIL and DONE macros not to use loops.
4403
4404 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
4405
4406         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
4407         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
4408
4409         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
4410
4411 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
4412
4413         * README.g77: Update from Craig.
4414
4415 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4416
4417         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
4418         type HOST_WIDE_INT.
4419         (safe_constDI sparc_emit_set_const64_quick1,
4420         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
4421         analyze_64bit_constant, const64_is_2insns,
4422         create_simple_focus_bits): Fix some bugs when compiled on real
4423         64-bit hosts.
4424         (function_arg_record_value_3, function_arg_record_value_2,
4425         function_arg_record_value): Add fully prototyped forward decls.
4426         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
4427         to cmpsi_insn and use on both 64 and 32 bit targets.
4428         (define_insn cmpsi_insn_sp64): Remove.
4429         (define_expand zero_extendsidi2): Allow for 32-bit target too.
4430         (define_insn zero_extendsidi2_insn): Rename to
4431         zero_extendsidi2_insn_sp64.
4432         (define_insn zero_extendsidi2_insn_sp32): New pattern and
4433         assosciated forced split for it.
4434
4435         * config/sparc/sparc.c (const64_operand, const64_high_operand):
4436         New predicates.
4437         * config/sparc/sparc.h: Declare them.
4438         (PREDICATE_CODES): Add them.
4439         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
4440         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
4441
4442 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
4443
4444         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
4445         in v9 case as the latter makes the Solaris assembler crash.
4446
4447 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4448
4449         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
4450         for TFmode when !v9.  We require offsettable memory addresses.
4451         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
4452         DFmode register number conversions.
4453         * config/sparc/sparc.md (define_split DFmode moves): If register
4454         is a SUBREG do alter_subreg on it before using.
4455         (define_expand movtf): Fixup comment about alignment on v9.
4456         (define_split TFmode moves): Don't use gen_{high,low}part, create
4457         explicit SUBREGs instead.
4458
4459 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
4460
4461         * Makefile.in (mbchar.o): Depend on mbchar.c.
4462
4463 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4464                           Richard Henderson  <rth@cygnus.com>
4465         
4466         Rewrite Sparc backend for better code generation and
4467         improved sparc64 support.
4468         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
4469         zero.
4470         * config/sparc/sysv4.h: Likewise.
4471         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
4472         move_operand, v8plus_regcmp_op, emit_move_sequence,
4473         singlemove_string, doublemove_string, mem_aligned_8,
4474         output_move_double, output_move_quad, output_fp_move_double,
4475         move_quad_direction, output_fp_move_quad, output_scc_insn):
4476         Remove.
4477         (small_int_or_double): New predicate.
4478         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
4479         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
4480         old pic_{sethi,lo_sum}_si patterns.
4481         (mem_min_alignment): New generic function to replace
4482         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
4483         available and can test for arbitrary alignments.  All callers
4484         changed.
4485         (save_regs, restore_regs, build_big_number,
4486         output_function_prologue, output_cbranch, output_return,
4487         sparc_flat_save_restore, sparc_flat_output_function_prologue,
4488         sparc_flat_output_function_epilogue): Prettify
4489         insn output.
4490         (output_function_epilogue): Likewise and add code to output
4491         deferred case vectors.
4492         (output_v9branch): Likewise, add new arg INSN and use it to tack
4493         on branch prediction settings.  All callers changed.
4494         (print_operand): Likewise and output %l44 for LO_SUMs when
4495         TARGET_CM_MEDMID.
4496         (sparc_splitdi_legitimate): New function to make sure DImode
4497         splits can be run properly when !arch64.
4498         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
4499         Reformat example code in comments.
4500         (set_extends): Remove UNSPEC/v8plus_clear_high case.
4501         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
4502         of deferred case vectors we need to output.
4503         (sparc_defer_case_vector): Record a case vector.
4504         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
4505         sparc_output_deferred_case_vectors): New functions to output them.
4506         (sparc_emit_set_const32): New function to form 32-bit constants in
4507         registers when that requires more than one instruction.
4508         (safe_constDI, sparc_emit_set_const64_quick1,
4509         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
4510         analyze_64bit_constant, const64_is_2insns,
4511         create_simple_focus_bits, sparc_emit_set_const64): New functions
4512         which do the same for 64-bit constants when arch64.
4513         (sparc_emit_set_symbolic_const64): New function to emit address
4514         loading for all code models on v9.
4515         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
4516         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
4517         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
4518         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
4519         inaccuracies in comments, add symbolic and text_segment operands
4520         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
4521         GENERAL_REGS in these cases as a temp REG is needed to load these
4522         addresses into a register properly.
4523         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
4524         is no longer used.
4525         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
4526         quads are guarenteed to have 16-byte alignment.
4527         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
4528         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
4529         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
4530         deferred case vector implementation.
4531         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
4532         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
4533         Generate "internal label - label" instead of "label - 1b".
4534         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
4535         (PREDICATE_CODES): Remove sparc_operand, move_operand,
4536         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
4537         zero_operand.
4538         (doublemove_string, output_block_move, output_fp_move_double,
4539         output_fp_move_quad, output_move_double, output_move_quad,
4540         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
4541         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
4542         (sparc_emit_set_const32, sparc_emit_set_const64,
4543         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
4544         mem_min_alignment, small_int_or_double): Add externs.
4545         * config/sparc/sparc.md: Document the many uses of UNSPEC and
4546         UNSPEC_VOLATILE in this backend.
4547         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
4548         unary to types which execute in it.
4549         (define_function_unit ieu_shift): Rename to ieu0.
4550         (define_function_unit ieu1): New, executes compare, call, and
4551         uncond_branch type insns.
4552         (define_function_units for type fdivs, fdivd, fsqrt): These
4553         execute in the fpu multiply unit not the adder on UltraSparc.
4554         (define_expand cmpdi): Disallow TARGET_V8PLUS.
4555         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
4556         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
4557         allows the arith_double_operand predicate and rHI constraint when
4558         TARGET_ARCH64.
4559         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
4560         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
4561         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
4562         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
4563         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
4564         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
4565         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
4566         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
4567         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
4568         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
4569         sign_extendqihi2_insn, sign_extendqisi2_insn,
4570         sign_extendqidi2_insn, sign_extendhidi2_insn,
4571         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
4572         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
4573         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
4574         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
4575         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
4576         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
4577         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
4578         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
4579         smulsi3_highpart_v8plus, unnamed subreg mult,
4580         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
4581         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
4582         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
4583         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
4584         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
4585         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
4586         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
4587         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
4588         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
4589         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
4590         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
4591         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
4592         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
4593         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
4594         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
4595         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
4596         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
4597         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
4598         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
4599         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
4600         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
4601         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
4602         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
4603         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
4604         call_address_untyped_struct_value_sp32,
4605         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
4606         call_value_symbolic_sp32, call_value_address_sp64,
4607         call_value_symbolic_sp64, branch_sp32, branch_sp64,
4608         flush_register_windows, goto_handler_and_restore,
4609         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
4610         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
4611         return_addsi, return_di, return_adddi, return_sf, all call+jump
4612         peepholes, trap, unnamed trap insns): Prettify output strings.
4613         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
4614         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
4615         Likewise and force + implement splits for integer cases.
4616         (define_insn return_sf_no_fpu): Likewise and allow to match when
4617         no-fpu because of our subreg SFmode splits.
4618         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
4619         zero_extendqidi2_insn, zero_extendhidi2_insn,
4620         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
4621         input_operand for second operand.
4622         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
4623         reg_or_0_operand for operand 2 so new splits can use it.
4624         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
4625         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
4626         too.
4627         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
4628         CONST_DOUBLEs for operand 2.
4629         (define_insn move_label_di): Likewise and label distance
4630         optimization because it no longer works with new deferred case
4631         vector scheme.  To be revisited.
4632         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
4633         and allow reg_or_0_operand and J constraint for second operand.
4634         (define_insn jump): Set branch predict taken on V9.
4635         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
4636         new deferred case vector scheme.
4637         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
4638         (define_insn negdi2_sp32): Force + implement splits.
4639         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
4640         one_cmplsi2_not_liveg0 respectively, and create expander of original
4641         names which emit special rtl for TARGET_LIVE_G0.
4642         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
4643         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
4644         gen_compare_reg, FAIL instead.
4645         (define_insn sgtu, sleu): Likewise and check gen_s*() return
4646         values when trying to reverse condition codes, if they FAIL then
4647         do likewise.
4648         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
4649         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
4650         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
4651         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
4652         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
4653         set output string to # to indicate they are mandatory splits.
4654         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
4655         pic_sethi_di, move_pic_label_si): Remove.
4656         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
4657         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
4658         place.
4659         (define_expand movsi_pic_label_ref, define_insn
4660         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
4661         expander and insns to handle PIC label references and deferred
4662         case vectors.
4663         (define_insn get_pc_via_rdpc): Comment out as it is no longer
4664         used.
4665         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
4666         Rewrite to not use emit_move_sequence, make use of new constant
4667         formation code, and new splits for all multi-insn cases.
4668         (define_insn movqi_insn): Remove sethi case, it can never happen.
4669         Use reg_or_zero_operand instead of const0_rtx explicit test,
4670         use input_operand instead of move_operand for source, and use
4671         general_operand now for dest.
4672         (define_insn movhi_insn): Similar but leave sethi case.
4673         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
4674         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
4675         movhi_lo_sum respectively, prettify output string.
4676         (define_insn movsi_zero_liveg0): New pattern to put zero into a
4677         register when needed on TARGET_LIVE_G0.
4678         (define_insn movsi_insn): Use general_operand and input_operand
4679         for dest and src respectively.  Simplify applicability test.
4680         Prettify output strings, and add clr alternative for J
4681         constraint.
4682         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
4683         deprecated std and reg-reg DI moves): Remove and...
4684         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
4685         implementation which uses forced splits for all non-single insn
4686         cases.
4687         (define_split DI move cases on !arch64): New splits to handle all
4688         situations of 64-bit double register DImode on 32bit, and
4689         unaligned registers and memory addresses for all subtargets.
4690         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
4691         Remove.
4692         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
4693         input_operand for dest and src respectively, prettify output
4694         strings.
4695         (define_insn movdf_insn, movdf_no_e_insn, store_df,
4696         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
4697         and...
4698         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
4699         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
4700         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
4701         movtf_no_e_insn_sp64) Replace with new
4702         implementation which uses forced splits for all non-single insn
4703         cases.
4704         (define_split DF move cases): New splits in similar vein to DI
4705         move counterparts.
4706         (define_insn sethi_di_medlow, sethi_di_medium_pic,
4707         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
4708         movdi_sp64_insn): Remove old v9 code model and constant loading
4709         support insns and..
4710         (define_insn pic_lo_sum_di, pic_sethi_di,
4711         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
4712         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
4713         embmedany_sethi, embmedany_losum, embmedany_brsum,
4714         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
4715         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
4716         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
4717         scheme, using unspecs, secondary reloads, and one to one sparc
4718         insn to rtl insn mapping for better scheduling and code gen.
4719         (define_expand reload_indi, reload_outdi): Reload helpers for
4720         MEDANY and EMBMEDANY symbol address loading cases which require a
4721         temporary register.
4722         (define_expand movsicc): Remove v8plus_regcmp cases.
4723         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
4724         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
4725         cmp_diqi_trunc_set): New patterns used by some of the new scc
4726         splits on arch64.
4727         (define_insn xordi3_sp64_dbl): New pattern used for constant
4728         formation when crossing from 32-bit targets.
4729         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
4730         split): Remove.
4731         (define_insn addx, subx): Make visible and prettify.
4732         (define_insn adddi3_insn_sp32): Likewise and force split.
4733         (define_insn addx_extend, subx_extend, unnamed): New patterns for
4734         64bit scc split usage.
4735         (define_insn unnamed plusDI zero_extend, unnamed minusDI
4736         zero_extend, subdi3): Force and implement splits.
4737         
4738         * final.c (final_scan_insn): Don't output labels if target
4739         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
4740         instead.
4741         
4742         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
4743         don't forget to walk inside SEQUENCESs too as these are what the
4744         delay slot scheduler will create.
4745         
4746 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
4747
4748         * alpha.md (extxl+1,+2): New patterns to work around
4749         combine lossage.
4750
4751 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
4752
4753         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
4754         caused bad assembly code to be generated.
4755
4756 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
4757
4758         * netbsd.h: Fix typo.
4759
4760 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
4761
4762         * config.sub: Fix typo.
4763
4764 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
4765
4766         * invoke.texi (Environment Variables): Typo: Change "ascpects"
4767         into "aspects".
4768         (Running Protoize): Typo: Change "ther" into "other".
4769
4770 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
4771
4772         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
4773         * m68k/netbsd.h: Likewise.
4774         * ns32k/netbsd.h: Likewise.
4775         * sparc/netbsd.h: Likewise.
4776
4777 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
4778
4779         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
4780         * ginclude/va-clipper.h (va_list): Likewise.
4781
4782 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
4783
4784         * rs6000.c (rs6000_override_options): If big endian and -Os, use
4785         load/store multiple instructions unless user overrides.
4786
4787 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
4788
4789         * ns32k/netbsd.h: Fix typo.
4790
4791 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
4792
4793         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
4794         labels with .debugsym if no parallel insns.
4795
4796 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
4797
4798         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
4799         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
4800
4801 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4802
4803         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
4804         (AR_FOR_TARGET): Define.
4805
4806 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
4807
4808         * dyn-string.h: New file.
4809         * dyn-string.c: Likewise.
4810         * Makefile.in (OBJS): Add dyn-string.o.
4811         (dwarf2out.o): Add dyn-string.h dependency.
4812         (dyn-string.o): List dependencies.
4813         * dwarf2out.c: Include dyn-string.h.
4814         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
4815         (addr_const_to_string): Take a dyn_string_t, not a char* as a
4816         prototype.  Use dyn_string_append rather than strcat, throughout.
4817         (addr_to_string): Use dyn_string_t.
4818
4819 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
4820
4821         Function entry/exit profiling instrumentation:
4822         * expr.h (profile_function_entry_libfunc,
4823         profile_function_exit_libfunc): Declare new variables.
4824         * optabs.c: Define them here.
4825         (init_optabs): Initialize them.
4826         * tree.h (struct tree_decl): New flag
4827         no_instrument_function_entry_exit.
4828         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
4829         * c-decl.c (duplicate_decls): Merge it.
4830         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
4831         (init_attributes): Use it for "no_instrument_function".
4832         (decl_attributes): Handle it, for functions that have not yet been
4833         compiled.  Set decl flag.
4834         * flags.h (flag_instrument_function_entry_exit): Declare new
4835         variable.
4836         * toplev.c (flag_instrument_function_entry_exit): Define it here.
4837         (f_options): New option "instrument-functions".
4838         * function.h (struct function): New field instrument_entry_exit.
4839         * function.c (current_function_instrument_entry_exit): New
4840         variable.
4841         (push_function_context_to, pop_function_context_from): Save and
4842         restore.
4843         (expand_function_start): Set current_ variable, maybe emit return
4844         label and entry profile call.
4845         (expand_function_end): Maybe emit exit profile call.
4846
4847 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
4848
4849         * i386.md (movqi): When optimizing a load of (const_int 1) into a
4850         NON_QI_REG_P, pretend the register is SImode.
4851
4852 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
4853
4854         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
4855         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
4856         manufacturer id for ns32k.
4857         * configure: Regenerated.
4858         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
4859         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
4860         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
4861         * config/m68k/netbsd.h: Same.
4862         * config/ns32k/netbsd.h: Same.
4863         * config/sparc/netbsd.h: Same.
4864
4865 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
4866
4867         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
4868         or UNROLL_COMPLETELY loop that starts with a jump to its
4869         exit code.
4870
4871 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4872
4873         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
4874         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
4875         (print_operand, case 'B'): Don't fall through.
4876         (print_operand, case 'S'): Correct mask begin/end computation.
4877         Use HOST_BITS_PER_WIDE_INT.
4878         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
4879         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
4880         * rs6000/aix41.h (CPP_PREDEFINES): Same.
4881         * rs6000/aix43.h (CPP_PREDEFINES): Same.
4882
4883 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
4884
4885         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
4886         constraint from second alternative.
4887
4888 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
4889
4890         * configure.in: Fix --without/--disable cases for local-prefix, 
4891         gxx-include-dir and checking.
4892
4893 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4894
4895         * configure.in (enable_haifa): Set by default for sparc64 too.
4896         configure: Rebuilt.
4897
4898 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
4899
4900         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
4901         * i386/winnt.c (associated_type): New fn.
4902         (i386_pe_valid_type_attribute_p): New fn.
4903         (i386_pe_check_vtable_importexport): Remove.
4904         (i386_pe_dllexport_p): Use associated_type.
4905         (i386_pe_dllimport_p): Likewise.
4906
4907         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
4908         * i386.c (i386_valid_type_attribute_p): Also accept
4909         attributes for METHOD_TYPEs.
4910
4911 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
4912
4913         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
4914
4915 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
4916
4917         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
4918
4919         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
4920         them from generating a new base name for each occurence of
4921         a specific suffix.
4922
4923 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
4924
4925         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
4926         SUBREG, MEM.
4927         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
4928
4929
4930
4931         * cplus-dem.c (type_kind_t): New type.
4932         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
4933         on this paramter, rather than demangling the type again.
4934         (demangle_integral_value): Pass tk_integral.
4935         (demangle_template_: Pass the value returned from do_type.
4936         (do_type): Return a type_kind_t.  Pass tk_integral to
4937         demangle_template_value_parm for array bounds.
4938         (demangle_fund_type): Likewise.
4939         
4940 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
4941
4942         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
4943         identical.
4944
4945 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
4946
4947         * pa.c (move_operand): Accept CONSTANT_P_RTX.
4948
4949 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
4950
4951         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
4952
4953         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
4954         index conversion.
4955
4956 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
4957
4958         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
4959         (DEBUGGER_ARG_OFFSET): Likewise.
4960
4961         * mn10300.md (movsf): Remove last change.  Not needed.
4962
4963 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
4964
4965         * c-lex.c (yylex): Fix boundary conditions in character literal and
4966         string literal loops.
4967
4968 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
4969
4970         * longlong.h (count_leading_zeros): Sparclite scan instruction was
4971         being invoked incorrectly.
4972
4973         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
4974         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
4975         Add -pg support. 
4976         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
4977         * configure.in: Added i[34567]86-*-win32
4978         * config.sub: Ditto.
4979         * configure: Rebuilt.
4980         
4981 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
4982
4983         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
4984         the frame pointer and compiling PIC code and reload has not completed.
4985
4986         * i386.c (output_to_reg): Add code to emulate non-popping DImode
4987         case.
4988
4989 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
4990
4991         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
4992
4993 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4994
4995         * Makefile.in (install-info): Only try to update the info
4996         directory file if it exists in the first place.
4997
4998 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
4999
5000         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
5001
5002 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
5003
5004         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
5005         CONST_DOUBLE source.
5006
5007 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
5008
5009         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
5010         strings as the insertion of USER_LABEL_PREFIX.
5011         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
5012         valid code.
5013         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
5014         calls. 
5015
5016 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
5017
5018         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
5019         already defined type.
5020
5021 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
5022
5023         * expr.c (check_max_integer_computation_mode): Allow conversions
5024         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
5025         (expand_expr): Likewise.
5026
5027 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5028
5029         * expr.c (expand_expr): Expand RETURN_EXPR.
5030
5031 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
5032
5033         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
5034
5035 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
5036
5037         * dwarf2out.c (output_aranges):  Call stripattributes
5038         for TEXT_SECTION references.
5039         (output_line_info): Likewise.
5040
5041 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5042
5043         * profile.c (branch_prob): Call allocate_reg_info after outputting
5044         profile rtl in instrument_arcs.
5045
5046 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
5047
5048         * fixinc.irix (math.h): Install wrapper instead of copying.
5049
5050 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
5051
5052         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
5053         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
5054         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
5055         lang_flag_0. Added documentation in the flag table.
5056
5057 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
5058
5059         * cccp.c (do_include): Fix vax c style include handling.
5060
5061 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
5062
5063         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
5064
5065 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
5066
5067         * fold-const.c (non_lvalue): Don't deal with null pointer 
5068         constants here.
5069         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
5070
5071 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5072
5073         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
5074         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
5075         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
5076         (u_short_cint_operand): Same.
5077         (reg_or_cint_operand): Same.
5078         (logical_operand): Same.
5079         (input_operand): Same.
5080         (reg_or_short_operand): Use u_short_cint_operand.
5081
5082 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
5083
5084         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
5085         but keep the insns and splits.  Adjust so when the ultimate destination
5086         is memory, use cvtql.
5087
5088 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
5089
5090         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
5091
5092 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
5093
5094         * gcc.c (do_spec): Call "error" not "warning".
5095
5096         * configure.in: Fix minor problems with gas feature detection code.
5097         * configure: Rebuilt.
5098
5099         * gcc.c (do_spec): Issue a warning for '%[]' usage.
5100
5101         * Undo this change.
5102         * gcc.c: Delete %[spec] support.
5103         (do_spec_1, case '('): Likewise.
5104         (do_spec_1, case '['): Call error.
5105
5106 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
5107
5108         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
5109         (CPP_SUBTARGET_SPEC): Default to empty string.
5110         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
5111         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
5112         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
5113         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
5114         (LIB_SPEC): Tidy.
5115         * alpha/linux.h (CPP_PREDEFINES): Tidy.
5116         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
5117         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
5118         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
5119         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
5120         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
5121         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
5122         * alpha/vxworks.h: Likewise.
5123
5124 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
5125
5126         * mips.md (reload_outsi): Added missing REGNO call.
5127         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
5128         function pointer.
5129         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
5130         another match_operator and compare the codes.
5131
5132         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
5133
5134         * MIPS multiply pattern fixes:
5135         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
5136         Add union classes for HI, LO, or HILO plus general registers.
5137         (GENERATE_MADD): Deleted.
5138         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
5139         Add TARGET_MAD to condition.
5140         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
5141         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
5142         "*d" for accumulator, to give preference to LO initially but not
5143         during reload.
5144
5145 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
5146
5147         * configure.in (enable_c_mbchar): New configure option.
5148         (extra_cpp_objs): Always available now.
5149
5150         * cexp.y (mbchar.h): #include it.
5151         (yylex): Handle Multibyte characters in character literals.
5152
5153         * cccp.c (mbchar.h): #include it.
5154         (main): Set character set based on LANG environment variable.
5155         (rescan): Handle multibyte characters in comments.
5156         (skip_if_group): See above.
5157         (validate_else): See above.
5158         (skip_to_end_of_comment): See above.
5159         (macarg1): See above.
5160         (discard_comments): See above.
5161         (rescan): Handle multibyte characters in string and character literals.
5162         (collect_expansion): See above.
5163         (skip_quoted_string): See above.
5164         (macroexpand): See above.
5165         (macarg1): See above.
5166         (discard_comments): See above.
5167         (change_newlines): See above.
5168
5169         * c-lex.c (mbchar.h): #include it.
5170         (GET_ENVIRONMENT): New macro.
5171         (init_lex): Set character set based on LANG environment variable.
5172         (yylex): Handle multibyte characters in character literals.
5173         (yylex): Handle multibyte characters in string literals.
5174
5175         * Makefile.in (mbchar.o): New target.
5176         (cccp$(exeext)): @extra_cpp_objs@ is always available.
5177         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
5178
5179         * mbchar.[ch]: New files for multibyte character handling.
5180
5181 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5182
5183         * jump.c (jump_optimize): When simplifying noop moves and
5184         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
5185         the PUSHes to rewrite in second loop as we did in the first.
5186
5187 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5188
5189         * cplus-dem.c (demangle_nested_args): Make function definition
5190         static to match the prototype.
5191
5192 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
5193
5194         * alloca.c: Respect USE_C_ALLOCA.
5195         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
5196         * gengenrtl.c (xmalloc): Likewise.
5197
5198 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
5199
5200         * loop.h (struct induction): Add no_const_addval.
5201         * loop.c (the_movables, reg_address_cost): New variables.
5202         (init_loop): Init reg_address_cost.
5203         (loop_optimize): Call end_alias_analysis.
5204         (scan_loop): Init the_movables.
5205         (record_giv): Init induction->no_const_addval.
5206         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
5207         [REG]: Rearrange loop search test to catch more cases.
5208         (general_induction_var): Return success not benefit; take an extra
5209         argument for that.  Change all callers.
5210         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
5211         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
5212         [default]: Search the_movables for additional combinations.
5213         (sge_plus_constant, sge_plus): New functions.
5214         (express_from_1): New function.
5215         (express_from): Always define.  Rewrite using express_from_1.
5216         (combine_givs_p): Handle more cases.  Ignore address cost.
5217         (cmp_combine_givs_stats): New function.
5218         (combine_givs_used_once, combine_givs_benefit_from): New functions.
5219         (combine_givs): Rewrite to do best-fit combination.
5220
5221         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
5222         (fold): Do a complete (A*C)+(B*C) association check.
5223
5224 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
5225
5226         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
5227
5228 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
5229
5230         * mn10300.c (MODES_TIEABLE_P): Fix typo.
5231
5232 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
5233
5234         * tree.c (valid_machine_attribute): Only create a new type variant if
5235         there is a decl to use it.
5236
5237 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
5238
5239         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
5240         a suffix.
5241
5242 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
5243
5244         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
5245         be deleted" 
5246
5247 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
5248
5249         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
5250         Simplify tests for clearing an address register.
5251         (expand_prologue): Corresponding changes.
5252
5253         * mn10300.md (movXX patterns): Make sure the destination is an
5254         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
5255         (logical patterns): Split into expanders + patterns
5256         (zero and sign extension patterns): Similarly.
5257         (shift patterns): Similarly.
5258
5259 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
5260
5261         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
5262         for the sequence, recording base values.
5263
5264 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
5265
5266         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
5267
5268 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
5269
5270         * gcc.c: Remove ANSI-C ism from --help code.
5271
5272         * toplev.c: Support --help with USE_CPPLIB.
5273
5274 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
5275
5276         * configure.in: Rework gas feature code to work with symlink based
5277         source trees.
5278
5279         * extend.texi: Clarify some issues related to local variables
5280         assigned to explicit registers.
5281
5282         * mn10300.md (mulsi): Turn into expander + pattern.
5283
5284         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
5285         alternative.
5286
5287 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
5288
5289         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
5290
5291 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
5292
5293         * version.c: Bump again to distinguish mainline tree from the
5294         egcs-1.1 branch.
5295
5296 See ChangeLog.0 for earlier changes.
5297
5298 Local Variables:
5299 add-log-time-format: current-time-string
5300 End: