OSDN Git Service

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