OSDN Git Service

* cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
2
3         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
4
5 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6
7         * cppinit.c (print_help): Display -MD and -MMD.
8         Don't display usage string.  Update assertion syntax and
9         typo.
10         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
11         (cpp_handle_option): Update.
12
13 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
14
15         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
16         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
17         and define it so that regardless of target CPU size,
18         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
19         of "int" rather than "long."
20
21 2002-03-15  Richard Henderson  <rth@redhat.com>
22
23         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
24         size as a tree.
25
26 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
27
28         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
29         ("tstqi" split): Avoid using memory for tstqi on address register.
30         (splits): Remove constraints.
31         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
32         ("cmpdf", "cmpsf"): Remove since not used.
33         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
34         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
35
36 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
37
38         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
39         ("neghi2"): Tighten constraints.
40         ("one_cmplsi2"): Optimize and simplify split.
41         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
42
43 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
44
45         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
46         and split of AND operation to clear the upper bits.
47         ("*logicalsi3_zextqi"): Likewise.
48         ("*logicallhi3_zexthi_ashift8"): Likewise.
49         ("*logicalsi3_silshr16"): Likewise.
50         ("logicalsi3_silshl16"): Likewise.
51         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
52
53 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
54
55         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
56         (m68hc11_indirect_p): New function.
57         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
58         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
59         TARGET_M6812.
60         (asm_print_register): Likewise.
61         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
62         (m68hc11_indirect_p): Declare.
63         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
64         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
65         (TARGET_SWITCHES): New option -mrelax.
66         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
67         destination.
68         ("iorsi3", "xorsi3"): Likewise.
69         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
70         ("*andhi3_mem"): New to handle destination in memory with bclr
71         and a scratch register.
72         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
73         ("*andhi3_const"): New when operand2 is constant.
74         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
75         ("*andhi3_gen"): Cleanup of the old "andhi3".
76         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
77         ("xorqi3"): Update constraints.
78
79 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
80
81         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
82         for reg_equiv_memory_loc when the operand is a register that does
83         not get a hard register (stack location).
84         (tst_operand): After reload, accept all memory operand.
85         (symbolic_memory_operand): Fix detection of symbolic references.
86         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
87         accept symbols and any constant.
88
89 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
90
91         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
92         note on the insn that sets the soft frame register.
93         (must_parenthesize): ix and iy are also reserved names.
94         (print_operand_address): One more place where parenthesis are required
95         to avoid confusion with register names.
96         (m68hc11_gen_movhi): Allow push of stack pointer.
97         (m68hc11_check_z_replacement): Fix handling of parallel with a
98         clobber.
99         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
100         the replacement register is.
101         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
102         and D8_REGS classes.
103         (MODES_TIEABLE_P): All modes are tieable except QImode.
104
105 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
106
107         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
108         (___subdi3): Likewise.
109         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
110         (__map_data_section): Optimize 68hc11 case.
111
112 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
113
114         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
115         than a shift to avoid adding a register with itself.
116         (m68hc11_memory_move_cost): Take into account NO_REGS.
117         (m68hc11_register_move_cost): Update and use memory move cost
118         for soft registers.
119         (m68hc11_address_cost): Make cost of valid offset not 0 so that
120         it gives more opportunities to cse to optimize.
121         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
122         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
123
124 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
125
126         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
127         * c-common.def (CLEANUP_STMT): New tree node.
128         * c-common.h (CLEANUP_DECL): New macro.
129         (CLEANUP_EXPR): Likewise.
130         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
131         * expr.c (expand_expr): Tidy.
132         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
133         * tree-inline.c (initialize_inlined_parameters): Clean up
134         new local variables.
135
136 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
137
138         PR bootstrap/4128
139         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
140         before movrXX only, use reg_overlap_mentioned_p.
141         Only special case NE if just one insn can be generated.
142
143 2002-03-15  Jason Merrill  <jason@redhat.com>
144
145         * varasm.c (assemble_variable): Call resolve_unique_section before
146         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
147         of error_mark_node.
148
149 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
150
151         PR target/5170
152         * arm.md (split pattern for thumb shiftable immediates): Add comment
153         explaining non-obvious test.
154
155 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
156
157         PR target/5712
158         * arm.md (movaddr, movaddr_insn): Delete.
159
160 2002-03-15  Jason Merrill  <jason@redhat.com>
161
162         * toplev.c (wrapup_global_declarations): Clarify variable handling.
163         -fkeep-static-consts doesn't apply to comdats.
164
165 2002-03-14  Richard Henderson  <rth@redhat.com>
166
167         * c-decl.c: Include c-pragma.h.
168         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
169         (finish_function): Tidy.
170         * c-pragma.c: Include c-common.h.
171         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
172         (handle_pragma_weak): Use them.
173         (init_pragma): Register pending_weaks.
174         * c-pragma.h (maybe_apply_pragma_weak): Declare.
175         * print-tree.c (print_node): Print DECL_WEAK.
176         * varasm.c (mark_weak_decls): Remove.
177         (remove_from_pending_weak_list): Remove.
178         (add_weak): Remove.
179         (asm_emit_uninitialised): Call globalize_decl for weak commons.
180         (weak_decls): Make a tree_list.
181         (declare_weak): Cons weak_decls directly.
182         (globalize_decl): Remove weak_decls elements directly.
183         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
184         symbols.  Don't pretend to handle aliases.
185         (init_varasm_once): Update weak_decls registry.
186         * Makefile.in: Update dependencies.
187
188 2002-03-14  Richard Henderson  <rth@redhat.com>
189
190         PR target/5312
191         * config/ia64/ia64.c: Include tm_p.h last.
192         (gen_nop_type): Remove duplicate definition.
193         (cycle_end_fill_slots): Set sched_data for second L slot.
194         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
195         (nop_cycles_until): Fix typos.
196
197 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
198
199         PR optimization/5891
200         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
201
202 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
203
204         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
205           descriptors correctly.
206
207 2002-03-14  Michael Meissner  <meissner@redhat.com>
208
209         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
210         100, allowing MAX_UNROLLED_INSNS to be overridden.
211
212         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
213         --param.
214
215         * unroll.c (params.h): Include.
216         (MAX_UNROLLED_INSNS): Delete, now in params.h.
217
218         * doc/invoke.texi (--param max-unroll-insns): Document.
219
220         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
221
222 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
223
224         * arm.md: Fix warnings about constraints in peepholes and splits.
225
226 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
227
228         * cpphash.h (struct lexer_state): Remove line_extension member.
229         * cpplib.c (dequote_string, do_linemarker): New functions.
230         (linemarker_dir): New data object.
231         (DIRECTIVE_TABLE): No longer need to interpret #line in
232         preprocessed source.  Delete obsolete comment about return
233         values of handlers.
234         (end_directive, directive_diagnostics, _cpp_handle_directive):
235         Don't muck with line_extension.
236         (directive_diagnostics): No need to issue warnings for
237         linemarkers here.
238         (_cpp_handle_directive): Issue warnings for linemarkers here,
239         when appropriate.  Dispatch linemarkers to do_linemarker, not
240         do_line.
241         (do_line): Code to handle linemarkers split out to do_linemarker.
242         Convert escape sequences in filename argument, both places.
243
244         * cppmacro.c (quote_string): Rename cpp_quote_string and
245         export.  All callers changed.
246         * cpplib.h (cpp_quote_string): Prototype.
247         * cppmain.c (print_line): Call cpp_quote_string on to_file
248         before printing it.
249
250         * doc/cpp.texi: Document that escapes are now interpreted in
251         #line and in linemarkers, and that non-printing characters are
252         converted to octal escapes when linemarkers are generated.
253
254 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
255
256         * emit-rtl.c (try_split): Use delete_insns.
257         * recog.c (split_all_insns): Fix terminating condition.
258
259 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
260             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
261
262         PR target/5828
263         * arm.c (arm_output_epilogue): Fix floating-point register save
264         adjustment when using a frame pointer.
265
266 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
267
268         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
269         * config/mips/mips.c (compute_frame_size): Retrofit them here.
270         (save_restore_insns, mips_expand_epilogue): And here.
271         (build_mips16_call_stub): And here.
272         (mips_function_value): Use the new macros to decide whether a single
273         or complex float can be returned in floating-point registers.  Return
274         a parallel rtx in the complex case.
275
276 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
277
278         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
279         call after liveness analysis.
280
281         * recog.c (split_insn): Use delete_insn_and_edges.
282
283         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
284         instructions to have branch prediction notes.
285         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
286
287 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
288
289         * configure.in: Don't pass -Wno-long-long to a ADA compiler
290         that doesn't support it.
291         * configure: Regenerate.
292
293 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
294
295         PR target/5626
296         * config/sparc/sparc.md (normal_branch, inverted_branch,
297         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
298         inverted_fp_branch): Adjust calls to output_cbranch.
299         Set length attribute.
300         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
301         output_v9branch.  Set length attribute.
302         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
303         predicates.
304         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
305         (output_cbranch): Likewise.  Handle far branches.
306         (output_v9branch): Handle far branches.
307         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
308         Adjust prototypes.
309         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
310         noov_compare64_op predicates.
311
312 2002-03-13  Jason Merrill  <jason@redhat.com>
313
314         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
315         into the function and constify it.
316         * gthr-dce.h, gthr-solaris.h: Likewise.
317
318 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
319
320         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
321         * config/rs6000/rs6000.c (rs6000_va_arg): Use
322         std_expand_builtin_va_arg if not ABI_V4.
323
324 2002-03-13  Jason Merrill  <jason@redhat.com>
325
326         * varasm.c (globalize_decl): New fn.
327         (assemble_start_function): Use it.
328         (asm_emit_uninitialized): Use it.
329         (assemble_alias): Use it.
330         (assemble_variable): Use it.
331
332 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
333
334         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
335         2002-03-12 internal visibility change.
336         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
337         visibility into SYMBOL_REF_FLAG.
338
339 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
340
341         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
342         VOIDmode operand.  Add compile-time optimization for constant results.
343
344 2002-03-12  Jason Merrill  <jason@redhat.com>
345
346         * c-typeck.c (convert_for_assignment): Don't allow conversions
347         between pointers and references.  Only allow lvalues to convert to
348         reference.
349
350 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
351
352         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
353         before prologue, to avoid scheduling problems.
354
355 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
356
357         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
358         (ELIMINABLE_REGS): Add sfp->sp.
359         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
360
361 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
362
363         PR optimization/5892
364         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
365
366 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
367
368         * loop.c (basic_induction_var): Don't call convert_modes if mode
369         classes are different.
370
371 2002-03-12  Richard Henderson  <rth@redhat.com>
372
373         PR optimization/5901
374         * function.c (reposition_prologue_and_epilogue_notes): Position
375         the markers after/before the last/first insn not deleted.
376
377 2002-03-12  Richard Henderson  <rth@redhat.com>
378
379         PR optimization/5878
380         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
381         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
382         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
383
384         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
385         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
386         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
387
388         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
389         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
390         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
391         also.  Don't set it if not flag_pic.
392         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
393         to be INVALID_REGNUM when not used.
394
395 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
396
397         * expmed.c (store_bit_field): Reset alias set for memory.
398         (extract_bit_field): Same.
399
400 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
401
402         * c-common.c (c_tree_code_type, c_tree_code_length,
403         c_tree_code_name, add_c_tree_codes): Delete.
404         * c-common.h (add_c_tree_codes): Delete.
405         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
406         Define.
407         * c-objc-common.c (c_objc_common_init): Don't call
408         add_c_tree_codes, instead set lang_unsafe_for_reeval.
409         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
410         objc_tree_code_name, add_objc_tree_codes): Delete.
411         (objc_init): Don't call add_objc_tree_codes.
412         * objc/objc-lang.c (tree_code_type, tree_code_length,
413         tree_code_name): Define.
414         * toplev.c (lang_independent_init): Don't set
415         tree_code_length[IDENTIFIER_NODE].
416         * tree.c (tree_code_type, tree_code_length, tree_code_name):
417         Delete definitions, moved to language front-ends.
418         * tree.def (IDENTIFIER_NODE): Hardwire the length.
419         * tree.h (tree_code_type, tree_code_length, tree_code_name):
420         Const-ify.
421         (tree_code_length): Change type to unsigned char.
422
423 2002-03-12  Richard Henderson  <rth@redhat.com>
424
425         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
426         internal visibility change.
427
428 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
429
430         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
431         validize_mem() instead of change_address to avoid clobbering
432         memory attributes.
433
434 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
435
436         * c-lex.h (position_after_whitespace): Remove.
437
438 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
439
440         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
441         (lex_string): Use unsigned char pointers.
442
443 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
444
445         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
446         is not a valid memory_operand.
447
448 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
449
450         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
451         * config/xtensa/lib1funcs.asm: Fix copyright to include
452         special case for libgcc files.
453         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
454         (__divsi3): Likewise.
455         (__umodsi3): Likewise.
456         (__modsi3): Likewise.
457         * config/xtensa/lib2funcs.S: Fix copyright to include
458         special case for libgcc files.
459
460 2002-03-12  Tom Rix  <trix@redhat.com>
461
462         * collect2.c (resolve_lib_name): Move outside of
463         OBJECT_FORMAT_COFF ifdef.
464         (ignore_library): Same.
465
466 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
467
468         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
469
470 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
471
472         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
473         to function_section before writing out the constant pool.
474
475 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
476
477         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
478         zero_constant.
479         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
480
481 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
482
483         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
484         (adddi3): Likewise.
485         (movdf): Likewise.
486         (movdi): Likewise.
487         (cmpsi splitter): Likewise.
488         (modsi3): Fail if <= 0.
489         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
490         redundant test when HOST_BITS_PER_WIDE_INT != 32.
491         (reg_or_sub_cint64_operand): Likewise.
492         (num_insns_constant_wide): Optimize sign extension.
493         (rs6000_legitimize_address): Likewise.
494
495 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
496
497         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
498         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
499
500 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
501
502         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
503         address calculation.
504
505 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
506
507         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
508         scratch register to DImode / TImode.
509         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
510         register used does not overlap the target.
511
512 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
513
514         * Makefile.in (debug.o): Depend on debug.h.
515         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
516         * debug.c (do_nothing_debug_hooks): Likewise.
517         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
518         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
519         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
520         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
521         * dwarfout.c (dwarf_debug_hooks): Likewise.
522         * integrate.c (output_inline_function): Likewise.
523         * objc/objc-act.c (synth_module_prologue): Likewise.
524         * sdbout.c (sdb_debug_hooks): Likewise.
525         * toplev.c (debug_hooks): Likewise.
526         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
527
528 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
529
530         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
531         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
532         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
533         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
534         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
535         * defaults.h (POINTER_SIZE): Define.
536         * doc/tm.texi (POINTER_SIZE): Document default.
537
538 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
539
540         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
541
542 2002-03-11  Richard Henderson  <rth@redhat.com>
543
544         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
545         if rebuild_label_notes_after_reload.
546
547 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
548
549         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
550         emit pic register load if "internal" visibility.
551         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
552         (cris_expand_builtin_va_arg): Do all computations on trees.
553
554 2002-03-11  Richard Henderson  <rth@redhat.com>
555
556         * rtlanal.c: Include recog.h.
557         (keep_with_call_p): Fix thinko.
558         * Makefile.in (rtlanal.o): Update dependencies.
559
560 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
561
562         * genflags.c (gen_insn): Use IS_VSPACE.
563         * genoutput.c (output_insn_data): Likewise.
564         (process_template): Likewise.
565
566 2002-03-11  Richard Henderson  <rth@redhat.com>
567
568         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
569
570 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
571
572         * Makefile.in: Update.
573         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
574         Update documentation.
575         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
576         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
577
578 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
579
580         * Makefile.in: Give texi2pod its input file as a command line
581         argument, not on stdin.
582
583 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
584             Daniel Berlin  <dan@dberlin.org>
585
586         C++ alias analysis improvement.
587         * alias.c (record_component_aliases): Record aliases for base
588         classes too.
589
590 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
591
592         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
593
594 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
595
596         * toplev.c (vms_fopen): Remove, not needed.
597
598         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
599
600         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
601
602         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
603         for FP, already done later.
604
605         * toplev.c (debug_args): Add entry for VMS_DEBUG.
606         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
607
608 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
609
610         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
611         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
612         LARGEST_EXPONENT_IS_NORMAL for the given mode.
613         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
614         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
615         (ediv, emul, eldexp, esqrt): Likewise.
616         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
617         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
618         (saturate): New function.
619         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
620         (make_nan): Use a saturation value instead of a NaN if
621         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
622         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
623         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
624         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
625         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
626         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
627         !ROUND_TOWARDS_ZERO.
628         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
629         (ROUND_TOWARDS_ZERO): Document.
630
631 2002-03-11  Andreas Jaeger  <aj@suse.de>
632
633         * cfg.c (dump_flow_info): Remove unused variable.
634
635 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
636
637         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
638         computations on trees.
639
640 2002-03-10  Richard Henderson  <rth@redhat.com>
641
642         PR 5693:
643         * reload.c (copy_replacements_1): New.
644         (copy_replacements): Use it to recurse through the rtx.
645
646 2002-03-10  Richard Henderson  <rth@redhat.com>
647
648         * loop.c (strength_reduce): Compute number of iterations as
649         unsigned HOST_WIDE_INT.
650
651 2002-03-10  Richard Henderson  <rth@redhat.com>
652
653         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
654         to move away from the end of the block.
655
656 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
657
658         PR preprocessor/5899
659         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
660
661 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
662
663         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
664
665         * attribs.c (decl_attributes): Fix signed/unsigned warning.
666
667 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
668
669         * config/mmix/mmix.c: Improve comments.
670         (mmix_target_asm_function_prologue): Drop variable
671         empty_stack_frame.  Don't allocate unused slot above fp.
672         (mmix_target_asm_function_epilogue): Mirror prologue changes.
673         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
674         brace in first column.
675         (enum reg_class): Ditto.
676         (FIRST_PARM_OFFSET): Now 0.
677         (USER_LABEL_PREFIX): Remove #if 0:d definition.
678
679 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
680
681         * combine.c (make_extraction): Fix error in last change.
682
683 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
684
685         * c4x.c (c4x_fp_reglist): Const-ify.
686         * cris.c (cris_print_operand): Likewise.
687         * i386.c (ix86_va_arg): Likewise.
688         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
689         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
690         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
691         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
692         * mcore.h (regno_reg_class): Likewise.
693         * mips.c (gen_int_relational): Likewise.
694         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
695         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
696         * pdp11.c (move_costs): Likewise.
697         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
698         * s390.c (s390_branch_condition_mnemonic, regclass_map):
699         Likewise.
700         * s390.h (regclass_map): Likewise.
701         * sh.c (shift_amounts): Likewise.
702         * sh.md (rotlsi3): Likewise.
703
704 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
705
706         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
707         (ne0+5): Use new clobber to generate proper shift pattern.
708         Patch by Michael Matz <matz@kde.org>.
709
710 2002-03-09  Andreas Schwab  <schwab@suse.de>
711
712         * gcc.c (validate_all_switches): Also handle `%W{...}'.
713
714 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
715
716         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
717
718 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
719
720         PR middle-end/5877
721         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
722         even for non-representable constants.
723
724 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
725
726         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
727         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
728         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
729         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
730         (pop_function_context): Compute MAY_SHARE parameter for
731         fixup_var_refs.
732         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
733         (gen_mem_addressof): Call fixup_var_refs with new parm.
734
735         * combine.c (make_extraction): Don't make extension of CONST_INT.
736
737 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
738
739         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
740         in o32 and o64 ABIs.
741         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
742         but getting fixed-size structs passed in registers regardless of
743         padding in o32 and o64 ABIs.
744
745         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
746         offset before loading address of argument passed by transparent
747         reference.
748
749 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
750
751         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
752
753 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
754
755         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
756         marker such that registers after it are saved.
757
758 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
759
760         * sparc.c (arith_4096_operand): Fix error in last change.
761
762 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
763
764         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
765         defaults for MEABI.
766
767 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
768
769         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
770         vectors.
771
772 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
773
774         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
775
776 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
777
778         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
779         removed; fix return value.
780         * combine.c (combine_instructions): Dirtify blocks where we failed to
781         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
782         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
783
784 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
785
786         * gcse.c (insert_insn_end_bb): Fix typo in last change.
787
788 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
789
790         * recog.c (peephole2_optimize): Re-distribute EH edges.
791
792 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
793
794         * expr.c (expand_expr): Use unsave lang hook.
795         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
796         (LANG_HOOKS_INITIALIZER): Update.
797         * langhooks.h (struct lang_hooks): New hook unsave.
798         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
799         (unsave_expr_1): Remove unused lang_unsave_expr_now.
800         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
801         (unsave_expr_now): Remove.
802         * tree.h (unsave_expr_now, lang_unsave,
803         lang_unsave_expr_now): Remove.
804         (lhd_unsave): New.
805
806 2002-03-08  Andreas Jaeger  <aj@suse.de>
807
808         * flow.c (propagate_block_delete_insn): Remove unused variable.
809
810 2002-03-08  Kazu Hirata  <kazu@hxi.com>
811
812         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
813         insn length for memory load/store.
814
815 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
816
817         * doc/install.texi (--with-libiconv-prefix): Document.
818
819 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
820
821         * doc/sourcebuild.texi: Fix typo.
822
823 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
824
825         PR c/3711
826         * builtins.c (std_expand_builtin_va_arg): Do all computations on
827         trees.
828
829 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
830
831         * rtl.c (copy_most_rtx): Move from here ...
832         * emit-rtl.c (copy_most_rtx): ... to here.
833
834 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
835
836         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
837         SUBTARGET_CPP_SIZE_SPEC.
838         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
839
840         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
841
842 2002-03-07  Matt Hiller  <hiller@redhat.com>
843
844         * gensupport.c (first_dir_md_include): Renamed from include;
845         change all references.
846         (last_dir_md_include): Renamed from last_include; change all
847         references.
848         (init_md_reader): Unconditionally initialize base_dir whether or
849         not filename is a relative path.
850
851 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
852
853         * config/fp-bit.c (_unord_f2): Compile it in even if
854         US_SOFTWARE_GOFAST is enabled.
855
856         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
857         NULL_RTX.  Set all HFmode operations as NULL_RTX.
858         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
859         NULL_RTX, try reversing the comparison and the operands.
860
861 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
862
863         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
864         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
865         and MATCH_OP_DUP.
866
867 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
868
869         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
870
871 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
872
873         * basic-block.h (fixup_abnormal_edges): Declare.
874         * reload1.c (fixup_abnormal_edges): New function.
875         * reg-stack.c (convert_regs): Use it.
876
877         * gcse.c (insert_insn_end_bb): Handle trapping insns.
878
879         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
880
881 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
882
883         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
884         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
885         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
886         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
887         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
888         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
889         unless x and y could be infinite.
890         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
891         Check that the common type of both arguments is a real, even for
892         targets without unordered comparisons.  Allow an integer argument
893         to be compared against a real.
894         (expand_tree_builtin): Use expand_unordered_cmp.
895         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
896         * cse.c (fold_rtx): Likewise.  Fix indentation.
897         * fold-const.c (fold_real_zero_addition_p): New.
898         (fold): Use it, and the new HONOR_... macros.
899         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
900         * jump.c (reversed_comparison_code_parts): After searching for
901         the true comparison mode, use HONOR_NANS to decide whether it
902         can be safely reversed.
903         (reverse_condition_maybe_unordered): Remove IEEE check.
904         * simplify-rtx.c (simplify_binary_operation): Use the new macros
905         to decide which simplifications are valid.  Allow the following
906         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
907         and (a - -b) to (a + b).
908         (simplify_relational_operation): Use HONOR_NANS.
909         * doc/tm.texi: Document the MODE_HAS_... macros.
910
911 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
912
913         * combine.c (simplify_comparison): If simplifying a logical shift
914         right and compare with constant, force the comparison to unsigned.
915
916 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
917
918         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
919
920         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
921         -mabi=no-altivec
922         (alt_reg_names): Remove % for vrsave.
923
924 2002-03-06  Richard Henderson  <rth@redhat.com>
925
926         PR optimization/5844
927         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
928         if used indicates we've already emitted one copy of an operand.
929         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
930         (gen_split): Supply a non-null used.
931
932 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
933
934         * reload1.c (reload): Unshare all rtl after reload is done.
935
936         * simplify-rtx.c (simplify_plus_minus): Do not abort,
937         but simply fail if the expression is too complex to simplify.
938         (simplify_gen_binary): Handle simplify_plus_minus failures.
939
940 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
941
942         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
943         consistently call delete_trivially_dead_insns after CSE and GCSE;
944         fix DFI_life dumping; do jump threading after liveness; do crossjumping
945         after liveness2; update comment in last crossjumping.
946         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
947
948 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
949
950         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
951         after completing fast dead code elimination.
952
953         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
954         COMPARE operator.
955
956 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
957
958         * version.c:  Fix misplaced leading blanks on first line.
959
960 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
961
962         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
963
964 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
965
966         * cfgcleanup.c (mentions_nonequal_regs): New function.
967         (thread_jump): Use it.
968         * toplev.c (rest_of_compilation): Run jump threading after
969         liveness.
970
971 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
972
973         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
974         patch.
975
976 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
977
978         * predict.c (estimate_bb_frequencies): Do not reload the
979         frequencies from notes.
980
981 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
982
983         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
984         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
985
986         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
987         delete_noop_moves): Return indeger.
988         * flow.c (ndead): New variable.
989         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
990         BB argument; update callers.
991         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
992         (life_analysis): Do not call purge_all_dead_edges.
993         (update_life_info): Return number of deleted insns; print statistics.
994         (update_life_info_in_dirty_blocks): likewise.
995         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
996         return number of insns deleted.
997
998         * cse.c: Include timevar.h
999         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
1000         iterate until stabilizes; print statistics; return number of killed
1001         insns.
1002         * Makefile.in: (cse.o): Add timevar.h dependency
1003         * rtl.h (delete_trivially_dead_insns): New.
1004         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
1005         * toplev.c (rest_of_compilation): Update callers.
1006
1007         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
1008         (try_optimize_cfg): Do not update liveness.
1009         (cleanup-cfg): Loop until try_optimize_cfg and dead code
1010         removal stabilizes; use delete_trivially_dead_insns.
1011
1012         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
1013
1014 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
1015
1016         * cppmain.c (setup_callbacks): Disable #pragma and #ident
1017         callbacks when processing assembly language.
1018
1019 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1020
1021         * pa.h (ASM_FILE_END): Define.
1022         * som.h (ASM_FILE_END): Delete.
1023
1024         * pa.c (function_arg): Don't pass floats in general registers in
1025         indirect calls if TARGET_ELF32.
1026
1027 2002-03-05  Richard Henderson  <rth@redhat.com>
1028
1029         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
1030
1031 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
1032
1033         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
1034
1035 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
1036
1037         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
1038         -r command line.  Don't hide any symbols if not building
1039         shared libgcc.
1040
1041 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
1042
1043         * cfg.c (dump_flow_info): Warn about profile mismatches.
1044         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
1045         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
1046
1047 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
1048
1049         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
1050         wide volatile memory by parts.
1051
1052 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
1053
1054         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
1055         is NULL.
1056
1057 2002-03-05  Richard Henderson  <rth@redhat.com>
1058
1059         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
1060
1061 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
1062
1063         * toplev.c (documented_lang_options): Document more
1064         language-specific options.
1065         * doc/invoke.texi (Warning Options): Correct documentation for
1066         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
1067         * c-decl.c (c_decode_option): Use a table to handle warning options.
1068
1069 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
1070
1071         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
1072         parameter to mmix_encode_section_info.
1073         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
1074         relocatably.  Always produce ELF, not mmo if linking relocatably.
1075         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
1076         first is non-zero, don't add symbol prefix.
1077         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
1078         prototype accordingly.
1079
1080 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
1081
1082         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
1083
1084 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
1085
1086         * configure.in: Increase required makeinfo version to 4.1.
1087         * configure: Regenerate.
1088
1089 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
1090
1091         * .cvsignore: Remove *.info* and genrtl*; these files are generated
1092         elsewhere now.
1093
1094 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1095
1096         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
1097         * doc/invoke.texi: Fix @math uses.
1098
1099 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
1100
1101         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
1102         removal
1103
1104 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
1105
1106         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
1107         (powerpc-*-eabisimaltivec*): Same.
1108
1109         * config/rs6000/t-ppcendian: New.
1110
1111 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1112
1113         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
1114         nonimmediate_src_operand and nonimmediate_lsrc_operand to
1115         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
1116
1117 2002-03-03  Richard Henderson  <rth@redhat.com>
1118
1119         * toplev.c (rest_of_decl_compilation): Revert last two changes.
1120
1121 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
1122
1123         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
1124         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
1125         tree.c, config/m68k/m68k.c:
1126         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
1127         REAL_ARITHMETIC blocks unconditional.  Delete some further
1128         #ifdef blocks predicated on REAL_ARITHMETIC.
1129         * flags.h, toplev.c: Delete remaining references to
1130         flag_pretend_float.
1131
1132         * doc/invoke.texi: Remove documentation of -fpretend-float.
1133         * doc/tm.texi: Describe the various REAL_* macros as provided by
1134         real.h, not by the target configuration files.
1135
1136         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
1137         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
1138         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
1139         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
1140         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
1141         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
1142         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
1143         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
1144         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
1145         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
1146         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
1147         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
1148         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
1149         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
1150         config/xtensa/xtensa.h:
1151         Do not define, undefine, or mention in comments any of
1152         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
1153         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
1154         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
1155         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
1156         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
1157         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
1158         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
1159         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
1160         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
1161
1162 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1163
1164         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
1165         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
1166         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
1167         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
1168         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
1169         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
1170         Delete.
1171         * defaults.h (BITS_PER_WORD): Define.
1172         * doc/tm.texi (BITS_PER_WORD): Document default value.
1173
1174         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
1175         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
1176         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
1177
1178 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1179
1180         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
1181         lieu of explicit sizeof/sizeof.
1182         * i386.c (override_options, ix86_init_mmx_sse_builtins,
1183         ix86_expand_builtin): Likewise.
1184         * mips.c (mips_add_gc_roots): Likewise.
1185         * mmix.c (mmix_output_condition): Likewise.
1186         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
1187         altivec_init_builtins): Likewise.
1188         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
1189         * cppexp.c (Nsuff, parse_number): Likewise.
1190         * cppinit.c (builtin_array_end): Likewise.
1191         * gcc.c (n_default_compilers, process_command): Likewise.
1192         * genpreds.c (output_predicate_decls): Likewise.
1193         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
1194         * lcm.c (N_ENTITIES): Likewise.
1195         * stor-layout.c (set_sizetype): Likewise.
1196
1197 2002-03-03  Richard Henderson  <rth@redhat.com>
1198
1199         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
1200         for types or labels.
1201
1202 2002-03-03  Richard Henderson  <rth@redhat.com>
1203
1204         * c-decl.c (start_decl): Initialized variables are not common.
1205
1206 2002-03-02  Per Bothner  <per@bothner.com>
1207
1208         * gcc.c (option_map):  Suport new --bootclasspath option.
1209         --CLASSPATH is now just an alias for --classpath.
1210
1211 2002-03-02  Richard Henderson  <rth@redhat.com>
1212
1213         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
1214         load if "internal" visibility.
1215         * doc/extend.texi: Document visibility meanings.
1216
1217 2002-03-02  Richard Henderson  <rth@redhat.com>
1218
1219         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
1220         to functions as well.
1221
1222 2002-03-02  Richard Henderson  <rth@redhat.com>
1223
1224         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
1225         (handle_visibility_attribute): Don't call assemble_visibility.
1226         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
1227         without asmspec.  Invoke assemble_alias when needed.
1228         * varasm.c (maybe_assemble_visibility): New.
1229         (assemble_start_function, assemble_variable, assemble_alias): Use it.
1230
1231 2002-03-02  Richard Henderson  <rth@redhat.com>
1232
1233         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
1234         invoke ENCODE_SECTION_INFO with first call flag.
1235
1236         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
1237         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
1238         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
1239         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
1240         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
1241         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
1242         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
1243         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
1244         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
1245         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
1246         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
1247         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
1248         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
1249         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
1250         config/mcore/mcore-protos.h, config/mcore/mcore.c,
1251         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
1252         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
1253         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
1254         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
1255         config/sh/sh.h, config/sparc/sparc.h,
1256         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
1257         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
1258         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
1259         FIRST argument.  As needed, examine it and do nothing.
1260
1261         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
1262         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
1263         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
1264
1265         * config/arm/t-pe (pe.o): Add dependencies.
1266
1267 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1268
1269         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
1270         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
1271         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
1272         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
1273         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
1274         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
1275         * defaults.h (BITS_PER_UNIT): Define.
1276         * doc/tm.texi (BITS_PER_UNIT): Document default value.
1277
1278 2002-03-02  Kazu Hirata  <kazu@hxi.com>
1279
1280         * config/h8300/h8300-protos.h: Add a prototype for
1281         compute_a_shift_length.
1282         * config/h8300/h8300.c (h8300_asm_insn_count): New.
1283         (compute_a_shift_length): Likewise.
1284         (h8300_adjust_insn_length): Do not adjust insn length of shift
1285         insns.
1286         * config/h8300/h8300.md (anonymous shift patterns): Use
1287         compute_a_shift_length.
1288
1289 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1290
1291         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
1292         trunc_int_for_mode.
1293
1294         * emit-rtl.c (offset_address): Call update_temp_slot_address.
1295
1296 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1297
1298         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
1299         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
1300         * flags.h (flag_zero_initialized_in_bss): Declare.
1301         * toplev.c (flag_zero_initialized_in_bss): New flag.
1302         (lang_independent_options): Add flag_zero_initialized_in_bss.
1303         * tree.c (initializer_zerop): New function.
1304         * tree.h (initializer_zerop): Declare.
1305         * varasm.c (assemble_variable): If we can emit bss, put zero
1306         initializers in the bss section.
1307
1308 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
1309
1310         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
1311         like more than one symbol per .weak directive.
1312
1313 2002-03-01  Richard Henderson  <rth@redhat.com>
1314
1315         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
1316         adjust argument_pointer by pretend_args_size.
1317         (ia64_va_start): Adjust va_start address by -pretend_args_size.
1318
1319 2002-03-01  Kazu Hirata  <kazu@hxi.com>
1320
1321         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
1322
1323 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
1324
1325         * toplev.c (rest_of_compilation): Delete dead jumptables before
1326         loop.
1327         * flow.c (delete_dead_jumptables): Make global.
1328         * rtl.h (delete_dead_jumptables): Declare.
1329
1330 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
1331
1332         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
1333         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
1334         * config/rs6000/xcoff.h (COLLET_EXPORT_LIST): Delete.
1335
1336 2002-03-01  Kazu Hirata  <kazu@hxi.com>
1337
1338         * config/h8300/h8300-protos.h: Fix formatting.
1339         * config/h8300/h8300.c: Likewise.
1340         * config/h8300/h8300.h: Likewise.
1341
1342 2002-03-01  Kazu Hirata  <kazu@hxi.com>
1343
1344         * config/h8300/h8300.c (print_operand): Support 16-bit
1345         constant addresses.
1346         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
1347
1348 2002-02-28  Richard Henderson  <rth@redhat.com>
1349
1350         * expmed.c (store_bit_field): Prevent generation of CONCATs;
1351         pun complex values as integers; use gen_lowpart instead of
1352         gen_rtx_SUBREG.
1353         (extract_bit_field): Likewise.
1354
1355 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
1356             David Edelsohn  <edelsohn@gnu.org>
1357
1358         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
1359         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
1360         (SUPPORTS_WEAK): Likewise.
1361         * output.h (add_weak): Add tree param.
1362         * varasm.c (add_weak): Likewise.  Save decl.
1363         (struct weak_syms): Add decl field.
1364         (mark_weak_decls): New function.
1365         (init_varasm_once): ggc_add_root mark_weak_decls.
1366         (assemble_start_function): Use ASM_WEAKEN_DECL.
1367         (assemble_variable): Likewise.
1368         (assemble_alias): Likewise.
1369         (declare_weak): Pass decl to add_weak.
1370         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
1371         (remove_from_pending_weak_list): Declare and define for
1372         ASM_WEAKEN_DECL.
1373         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
1374         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
1375         * defaults.h (SUPPORTS_WEAK): Likewise.
1376         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
1377         .weak for code sym.  Do emit .size for descriptor sym.
1378         (ASM_DECLARE_FUNCTION_SIZE): Define.
1379         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
1380         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
1381         .lglobl unless TARGET_XCOFF.  Formatting fixes.
1382         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
1383         .weak for code sym.
1384         (HANDLE_PRAGMA_WEAK): Remove.
1385         (ASM_WEAKEN_LABEL): Remove.
1386         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
1387
1388 2002-03-01  Jason Merrill  <jason@redhat.com>
1389
1390         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
1391         (TARGET_EXPR_CLEANUP): New macro.
1392
1393 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
1394
1395         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
1396         to take ptr_extend into account as third type of extension.
1397         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
1398         fields used by SUBREG_PROMOTED_UNSIGNED_P.
1399         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
1400         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
1401         * calls.c (precompute_arguments): Use new macro.
1402         (expand_call): Ditto.
1403         * combine.c (nonzero_bits): Ditto.
1404         (record_promoted_value): Ditto.
1405         * expr.c (store_expr): Ditto.
1406         (expand_expr): Ditto.
1407         * function.c (assign_parms): Ditto.
1408
1409 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
1410
1411         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
1412         override -shared and -shared-libgcc.
1413
1414 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
1415
1416         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
1417         of "ultrasparc".
1418         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
1419         to be broken.
1420
1421 2002-02-28  Richard Henderson  <rth@redhat.com>
1422
1423         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
1424         4 cycle latency from MM producers.
1425         (ia64_internal_sched_reorder): Likewise with pipeline flush.
1426
1427 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
1428
1429         * mklibgcc.in: Don't use GNU make extension.
1430
1431 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1432
1433         * c-parse.in (STATIC): New terminal.
1434         (scspec): New non-terminal.  Update productions accordingly.
1435         (program): Remove bogus ifc / end ifc.
1436         (array_declarator): Simplify production using STATIC.
1437
1438 2002-02-28  Jim Meyering  <meyering@lucent.com>
1439
1440         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
1441         \a still means TARGET_BELL.
1442
1443 2002-02-28  Richard Henderson  <rth@redhat.com>
1444
1445         * haifa-sched.c (sched_emit_insn): New.
1446         (schedule_block): Use last_scheduled_insn to track last insn.
1447         * sched-int.h (sched_emit_insn): Prototype.
1448         * config/ia64/ia64.c (last_issued): Remove.
1449         (ia64_variable_issue): Don't set it.
1450         (nop_cycles_until): Use sched_emit_insn.
1451
1452 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
1453
1454         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
1455         extended constants.
1456
1457 2002-02-28  Kazu Hirata  <kazu@hxi.com>
1458
1459         * config/h8300/h8300.c: Fix formatting.
1460         * config/h8300/h8300.h: Likewise.
1461
1462 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1463
1464         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
1465         which may overwrite the high byte of the frame pointer.
1466
1467 2002-02-28  Bo Thorsen  <bo@suse.de>
1468
1469         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
1470         (STARTFILE_SPEC): Add 64 bit files.
1471         (ENDFILE_SPEC): Likewise.
1472
1473 2002-02-28  Jason Merrill  <jason@redhat.com>
1474
1475         * c-decl.c (finish_function): Only warn about missing return
1476         statement with -Wreturn-type.
1477
1478 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
1479
1480         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
1481
1482         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
1483         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
1484
1485 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
1486
1487         * basic-block.h (BB_REACHABLE): Renumber.
1488         (BB_DIRTY, BB_NEW): New flags.
1489         (clear_bb_flags): Declare.
1490         (update_life_info_in_dirty_blocks): Declare.
1491         * cfg.c (clear_bb_flags): New function.
1492         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
1493         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
1494         reorder_insns, emit_insn_after): Mark block as dirty.
1495         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
1496         (update_life_info_in_dirty_blocks): New function.
1497         * recog.c (apply_change_group): Dirtify block.
1498
1499         * cse.c (cse_insn): Reorder emitting of jump insn to keep
1500         cfg consistent.
1501         * gcse.c (delete_null_pointer_checks): Likewise.
1502
1503         * toplev.c (dump_file_index): Move cse2 after bp,
1504         add DFI_null
1505         (dump_file_info): Similary.
1506         (rest_of_compilation): Avoid most of CFG rebuilds;
1507         do first if converision after null pointer checks, do cse2
1508         after branch prediction; avoid full liveness rebuild after
1509         initializing subregs.
1510         * invoke.texi (-d options): Document -du, renumber.
1511
1512         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
1513         (notice_new_block): Do not set BB_UPDATE_LIFE.
1514         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
1515          merge_blocks_move_successor_nojumps, merge_blocks,
1516          try_crossjump_to_edge): Likewise.
1517         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
1518         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
1519         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
1520         (merge_of_block): Do not use life_data_ok.
1521         (find_if_case_1): Do not use SET_UPDATE_LIFE.
1522         (if_convert): Use BB_DIRTY mechanizm to update life.
1523         * lcm.c (optimize_mode_switching): Update
1524         update_life_info_in_dirty_blocks
1525
1526 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1527
1528         * Makefile.in (integrate.o): Update.
1529         * c-decl.c (copy_lang_decl): Rename.
1530         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
1531         * integrate.c: Include langhooks.h.
1532         (copy_decl_for_inlining): Update to use langhook.
1533         * langhooks-def.h (lhd_do_nothing_t,
1534         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
1535         (LANG_HOOKS_INITIALIZER): Update.
1536         * langhooks.c (lhd_do_nothing_t): New.
1537         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
1538         * tree.h (copy_lang_decl): Remove.
1539 objc:
1540         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
1541
1542 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
1543
1544         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
1545         POST_DEC, and POST_MODIFY.
1546
1547 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
1548
1549         * c-typeck.c (digest_init): Remove unused parameter; all
1550         callers changed.
1551
1552 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
1553
1554         * expmed.c (expand_shift): Correctly test for low part of a
1555         subreg.
1556
1557 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
1558
1559         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
1560         insn UIDs with insn addresses.
1561
1562 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
1563
1564         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
1565         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
1566         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
1567         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
1568         gcc.c, toplev.c: Delete code implementing -traditional mode.
1569
1570         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
1571         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
1572         Document removal of -traditional mode for compilation, and
1573         remove documentation only relevant to that mode.
1574
1575         * config/nextstep.h, config/ptx4.h, config/svr4.h,
1576         config/convex/convex.h, config/d30v/d30v.h,
1577         config/i386/dgux.h, config/i386/osf1elf.h,
1578         config/i386/osfelf.h, config/i386/osfrose.h,
1579         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
1580         config/m68k/hp310.h, config/m88k/dgux.h,
1581         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
1582         config/m88k/m88k.h, config/m88k/openbsd.h,
1583         config/mips/abi64.h, config/mips/osfrose.h,
1584         config/mips/svr4-5.h, config/mips/svr4-t.h,
1585         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1586         config/stormy16/stormy16.h: Remove all references to
1587         -traditional from target specs.  Delete all mention of the
1588         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
1589         delete a couple of commented-out definitions of
1590         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
1591         to -traditional.
1592
1593         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
1594         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
1595
1596 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
1597
1598         * mklibgcc.in: Don't use \n in a line subject to
1599         interpretation by echo.
1600
1601 2002-02-27  Graham Stott  <grahams@redhat.com>
1602
1603         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
1604         Constify NAME.
1605
1606         * loop.c (prescan_loop): Handle PARALLEL.
1607
1608         * unroll.c (loop_iterations): Return 0 if the add_val for
1609         a BIV is REG.
1610
1611         * final.c (output_operand_lossage): Constify PFX_STR.
1612
1613         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
1614
1615 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
1616
1617         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
1618         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
1619
1620 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
1621
1622         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
1623
1624 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1625
1626         * cpplex.c (_cpp_lex_token): Handle directives in macro
1627         arguments.
1628         * cpplib.c (_cpp_handle_directive): Save and restore state
1629         if parsing macro args when entering a directive.
1630         * cppmacro.c (collect_args): No need to handle directives
1631         in macro arguments.
1632         (enter_macro_context, replace_args): Use the original macro
1633         definition in case it was redefined whilst collecting arguments.
1634 doc:
1635         * cpp.texi: Update.
1636
1637 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
1638
1639         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
1640         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
1641         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
1642         method on AIX.
1643         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
1644         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
1645         (load_toc_v4_PIC_2): Same.
1646
1647 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
1648
1649         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
1650
1651 2002-02-26  Richard Henderson  <rth@redhat.com>
1652
1653         * config/alpha/alpha.md (ashldi_se): Re-enable.
1654
1655 2002-02-26  Richard Henderson  <rth@redhat.com>
1656
1657         * config/alpha/alpha.c (alpha_encode_section_info): Examine
1658         MODULE_LOCAL_P; improve commentary.
1659
1660 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
1661
1662         * doc/cpp.texi: Clarify documentation of relationship between
1663         #line and #include.
1664
1665 2002-02-26  Kazu Hirata  <kazu@hxi.com>
1666
1667         * config/h8300/h8300-protos.h: Update the prototype for
1668         compute_logical_op_length.  Add the prototype for
1669         compute_logical_op_cc.
1670         * config/h8300/h8300.c (compute_logical_op_length): Figure out
1671         code from operands.
1672         (compute_logical_op_cc): New.
1673         * config/h8300/h8300.md: Combine all the logical op patterns
1674         in HImode and SImode.  Use compute_logical_op_cc.
1675
1676 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
1677
1678         * config/i386/i386.c (print_operand): Don't append ATT-style
1679         length suffixs to x87 opcodes when in Intel mode.
1680
1681 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
1682
1683         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
1684         (init_emit_once): Update calls.
1685         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
1686         (init_syntax_once): Prototype.
1687
1688 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1689
1690         * pa-linux.h (LIB_SPEC): Update definition.
1691         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
1692
1693 2002-02-26  Richard Henderson  <rth@redhat.com>
1694
1695         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
1696         if we emitted a stop bit.
1697
1698 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
1699
1700         * configure.in (libgcc_visibility): Substitute.
1701         * configure: Rebuilt.
1702         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
1703         defined symbols .hidden.
1704
1705 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
1706
1707         * attribs.c (c_common_attribute_table): Add visibility.
1708         (handle_visibility_attribute): New function.
1709         * varasm.c (assemble_visibility): New function.
1710         * output.h (assemble_visibility): Add prototype.
1711         * tree.h (MODULE_LOCAL_P): Define.
1712         * crtstuff.c (__dso_handle): Use visibility attribute.
1713         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
1714         for MODULE_LOCAL_P symbols too.
1715         * config/ia64/ia64.c (ia64_encode_section_info): Handle
1716         MODULE_LOCAL_P symbols the same way as local symbols.
1717         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
1718         into .sdata/.sbss by the user.
1719         * doc/extend.texi (Function Attributes): Document visibility
1720         attribute.
1721
1722 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
1723
1724         PR debug/5770
1725         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
1726         STRING_CST initializer spanning the whole variable without
1727         embedded zeros.
1728         If expand_expr returned MEM, don't use it.
1729
1730 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
1731
1732         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
1733         generate a die for the lexical block.
1734
1735 2002-02-26  Kazu Hirata  <kazu@hxi.com>
1736
1737         * config/h8300/h8300-protos.h: Add a prototype for
1738         compute_logical_op_length.
1739         * config/h8300/h8300.c (compute_logical_op_length): New.
1740         * config/h8300/h8300.md (anonymous logical patterns): Use
1741         compute_logical_op_length for length.
1742
1743 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
1744
1745         * dwarf2out.c (modified_type_die): Do not call type_main_variant
1746         for vectors.
1747         (gen_type_die): Same.
1748
1749         * attribs.c (handle_vector_size_attribute): Set debug information.
1750
1751 2002-02-26  Daniel Egger  <degger@fhm.edu>
1752
1753         * config/rs6000/rs6000.md: Swap define_insn attributes to
1754         fix incorrect generation of merge high instructions instead
1755         of merge low.
1756
1757 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
1758
1759         * c-typeck.c (really_start_incremental_init): Use
1760         bitsize_zero_node for vectors.
1761
1762 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
1763
1764         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
1765         ("*set_vrsave_internal"): Same.
1766
1767 2002-02-25  Richard Henderson  <rth@redhat.com>
1768
1769         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
1770         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
1771
1772 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
1773
1774         PR target/5755
1775         * config/i386/i386.c (ix86_return_pops_args): Only pop
1776         fake structure return argument if it was passed on the stack.
1777
1778 2002-02-25  Jason Merrill  <jason@redhat.com>
1779
1780         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
1781         RESULT_DECL.
1782
1783 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
1784
1785         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
1786         link with shared_name only.
1787         * doc/invoke.texi (Link Options): Document new behavior.
1788
1789 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
1790
1791         * c-typeck.c (push_init_level): Handle vectors.
1792
1793 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
1794
1795         * config/sparc/sparc.c (const64_high_operand): Zero-extend
1796         operands of SPARC_SETHI_P.
1797         (input_operand): Likewise.
1798         (sparc_emit_set_const32): Likewise.
1799         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
1800         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
1801         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
1802         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
1803         (movdi_insn_sp64_vis): Likewise.
1804         (movdi split, movdf split): Use SETHI32.
1805         * doc/md.texi: Document SPARC constraints L, M and N.
1806
1807 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
1808
1809         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
1810         ("*set_vrsave_internal"): use mfspr for Darwin.
1811
1812         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
1813         gen_get_vrsave_internal.
1814
1815 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1816
1817         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
1818
1819 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1820
1821         * cpplex.c (cpp_interpret_charconst): Get signedness or
1822         otherwise of wide character constants correct.
1823         * cppexp.c (lex): Get signedness of wide charconsts correct.
1824
1825 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1826
1827         * optabs.c (widen_operand): Only call convert_modes for
1828         promoted SUBREG if signedness matches.
1829         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
1830
1831 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1832
1833         * cpplib.c (glue_header_name): Use local buffer to build up
1834         header name.
1835
1836 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1837
1838         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
1839
1840 2002-02-23  Kazu Hirata  <kazu@hxi.com>
1841
1842         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
1843         H8/300[HS] separately.
1844         * config/h8300/h8300.md: Remove the early clobber constraint
1845         from bit field patterns.
1846
1847 2002-02-23  Kazu Hirata  <kazu@hxi.com>
1848
1849         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
1850         register_operand.
1851         (mulhisi3): Likewise.
1852         (umulqisi3): Likewise.
1853         (umulhisi3): Likewise.
1854
1855 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1856
1857         * cppinit.c (output_deps): Correct test for stdout output.
1858         (init_dependency_output): Cure warning.
1859
1860 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1861
1862         * expr.c (store_expr): When converting expression to promoted
1863         equivalent type, allow using SUBREG_REG of TARGET as the target
1864         of the expansion of EXP.
1865         * loop.c (basic_induction_var, case SUBREG): Always look inside.
1866         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
1867         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
1868         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
1869         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
1870
1871 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1872
1873         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
1874         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
1875         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
1876
1877 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
1878
1879         PR optimization/5747
1880         * loop.c (scan_loop): Update reg info if move_movables created new
1881         pseudos.
1882
1883 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
1884
1885         * gcc.c (init_gcc_spec): Revert last change.
1886
1887 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
1888
1889         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
1890         gpc_reg_operand constraint.
1891
1892 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
1893
1894         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
1895         Simplify comparison of `low'.
1896         (add_operand): Fix formatting.
1897         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
1898         (mask_operand): Disallow mask to wrap in 64-bit mode.
1899         (rs6000_stack_info): Remove redundant test setting push_p.
1900         (output_toc): Fix formatting.
1901         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
1902         cc_reg_not_cr0_operand constraint.
1903         (booldi3, boolcdi3 splitters): Same.
1904
1905 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
1906
1907         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
1908
1909 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
1910
1911         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
1912         gcc invoked with -shared-libgcc.
1913
1914 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
1915
1916         PR c++/5748
1917         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
1918         decl if any of elements was TREE_USED.
1919
1920 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
1921
1922         * config/sparc/sol2.h: Don't include sys/mman.h.
1923         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
1924         (arith_4096_operand): Don't throw high bits away.
1925         (const64_operand): Take sign extension of CONST_INTs into account.
1926         (const64_high_operand, sparc_emit_set_const32): Likewise.
1927         (GEN_HIGHINT64): Likewise.
1928         (sparc_emit_set_const64_quick1): Likewise.
1929         (const64_is_2insns): Likewise.
1930         (print_operand): Use trunc_int_for_mode for sign extension.
1931         * config/sparc/sparc.h (SMALL_INT32): Likewise.
1932         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
1933         chars.  Assume CONST_INT is already properly sign-extended.
1934         (movdi split): Sign-extend each SImode part.
1935         (andsi3 split): Don't mask high bits off, so that result
1936         remains properly sign-extend.
1937         (iorsi3 split): Likewise.
1938         (xorsi3 split): Likewise.
1939
1940 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
1941
1942         * fold-const.c (fold): Fix typo in comments.
1943
1944 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
1945
1946         * Makefile.in (langhooks.o): Update dependencies.
1947
1948 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
1949
1950         * langhooks.c: Include flags.h.
1951
1952 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
1953
1954         * testsuite/gcc.dg/attr-alwaysinline.c: New.
1955
1956         * c-common.c (c_common_post_options): Set inline trees by
1957         default.
1958
1959         * doc/extend.texi (Function Attributes): Document always_inline
1960         attribute.
1961         Update documentation about inlining when not optimizing.
1962
1963         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
1964
1965         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
1966         unless DECL_ALWAYS_INLINE.
1967
1968         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
1969         unless DECL_ALWAYS_INLINE.
1970         (c_disregard_inline_limits): Disregard if always_inline set.
1971
1972         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
1973         Disregard if always_inline set.
1974         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
1975         unless DECL_ALWAYS_INLINE.
1976
1977         * attribs.c (handle_always_inline_attribute): New.
1978         (c_common_attribute_table): Add always_inline.
1979
1980         * config/rs6000/altivec.h: Add prototypes for builtins
1981         requiring the always_inline attribute.
1982
1983 2002-02-21  Eric Christopher  <echristo@redhat.com>
1984
1985         * expmed.c (store_bit_field): Try to simplify the subreg
1986         before generating a new one when when the mode size of
1987         value is less than maxmode.
1988
1989 2002-02-21  Richard Henderson  <rth@redhat.com>
1990
1991         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
1992         than gen_rtx_PLUS to form the sum.
1993         * explow.c (force_reg): Rearrange to not allocate new pseudo
1994         when force_operand returns a register.
1995         * expr.c (expand_assignment): Allow offset_rtx expansion to
1996         return a sum.  Do not force addresses into registers.
1997         (expand_expr): Likewise.
1998         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
1999         to canonicalize arithmetic that didn't simpify.
2000         (simplify_plus_minus): New argument force; update
2001         all callers.  Don't split CONST unless we can do something with it,
2002         and wouldn't lose the constness of the operands.
2003
2004         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
2005         that we generated earlier.
2006
2007 2002-02-21  Tom Tromey  <tromey@redhat.com>
2008
2009         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2010         (output_line_info): Use constant `1', with a long explanatory
2011         comment.
2012         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
2013
2014 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
2015
2016         * jump.c (redirect_jump): If old label has no UID, don't try to
2017         delete it.
2018
2019 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
2020
2021         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
2022         If input is constant, do shifts at compile time.
2023
2024 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
2025
2026         * doc/extend.texi: Fix some more overfull hboxes.
2027
2028 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
2029
2030         PR optimization/4994
2031         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
2032         register moves.
2033
2034 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
2035
2036         PR c++/4574
2037         * expr.h (expand_and): Add mode argument.
2038         * expmed.c (expand_and): Add mode argument.
2039         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
2040         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
2041         * except.c (expand_builtin_extract_return_addr): Likewise.
2042         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
2043         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
2044         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
2045         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
2046         * config/c4x/c4x.md: Use GEN_INT (x) instead of
2047         gen_rtx (CONST_INT, VOIDmode, x).
2048
2049 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
2050
2051         PR c/4697:
2052         * stmt.c (warn_if_unused_value): Move side effects test once more.
2053
2054 2002-02-20  Torbjorn Granlund  <tege@swox.com>
2055
2056         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
2057         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
2058
2059 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
2060
2061         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
2062         SUBREG or ZERO_EXTEND.
2063
2064 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
2065
2066         * sh.h (current_function_anonymous_args): Remove.
2067         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
2068         of current_function_varargs and current_function_stdarg is set.
2069         * sh.c (sh_expand_prologue): Check current_function_varargs /
2070         current_function_stdarg / TARGET_SH5 instead of
2071         current_function_anonymous_args.
2072
2073         * sh64.h (TARGET_VERSION): Define.
2074
2075 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
2076
2077         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
2078         VRSAVE_REGNO on TARGET_ALTIVEC.
2079
2080 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
2081
2082         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
2083         bits of SImode const_int.
2084         (includes_rshift_p): Likewise.
2085         (print_operand): Call mask_operand and mask64_operand with correct
2086         mode.
2087         (rs6000_output_function_epilogue): Pad traceback table to word.
2088         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
2089         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
2090         mask64_operand with correct mode.
2091         (FUNCTION_ARG_REGNO_P): Correct parentheses.
2092
2093 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
2094
2095         PR debug/4461
2096         * varasm.c (get_pool_constant_mark): New.
2097         * rtl.h (get_pool_constant_mark): Add prototype.
2098         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
2099         be represented if it has not been output.
2100
2101 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
2102
2103         * combine.c (do_SUBST): Sanity check substitutions of
2104         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
2105         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
2106         CONST_INT into its operand.
2107         (known_cond): Likewise, for ZERO_EXTEND.
2108         * simplify-rtx.c (simplify_unary_operation): Fix condition to
2109         allow for simplification of wide modes.  Reject CONST_INTs in
2110         ZERO_EXTEND when their actual mode is not given.
2111
2112 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
2113
2114         * c-decl.c (pushdecl): If no global declaration is found for an
2115         extern declaration in block scope, try a limbo one.
2116
2117 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
2118
2119         PR c++/4401
2120         * c-common.c (pointer_int_sum): Moved from...
2121         * c-typeck.c (pointer_int_sum): ...here.
2122         * c-common.h (pointer_int_sum): Add prototype.
2123
2124 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
2125
2126         PR c++/5713
2127         * c-decl.c (duplicate_decls): Return 0 if issued error about
2128         redeclaration.
2129
2130 2002-02-20  Roger Sayle  <roger@eyesopen.com>
2131             Jakub Jelinek  <jakub@redhat.com>
2132
2133         PR c/4389
2134         * tree.c (host_integerp): Ensure that the constant integer is
2135         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
2136         when pos is zero or non-zero respectively.  Clarify comment.
2137         * c-format.c (check_format_info_recurse): Fix host_integerp
2138         usage; the pos argument should be zero when assigning to a
2139         signed HOST_WIDE_INT.
2140
2141 2002-02-20  Richard Henderson  <rth@redhat.com>
2142
2143         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
2144         of the operand, rather than assuming TImode.
2145         (ix86_expand_binop_builtin): Cope with commutative patterns
2146         using nonimmediate_operand for both operands.
2147         (ix86_expand_timode_binop_builtin): Likewise.
2148         (ix86_expand_store_builtin): Validate operand 1.
2149         (ix86_expand_unop1_builtin): Likewise.
2150
2151 2002-02-20  Philip Blundell  <philb@gnu.org>
2152
2153         PR 5705
2154         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
2155
2156 2002-02-20  Richard Henderson  <rth@redhat.com>
2157
2158         PR c/5615
2159         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
2160
2161 2002-02-20  Tom Tromey  <tromey@redhat.com>
2162
2163         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2164         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2165         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2166         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2167         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
2168         unconditionally.
2169
2170 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
2171
2172         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
2173           for (const_int 0) in X not just INTVAL.
2174
2175 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
2176
2177         * doc/extend.texi: Avoid or reduce overfull hboxes.
2178
2179 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
2180
2181         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
2182         operations if the field does not start at a mode boundary.
2183
2184 2001-02-20      Joel Sherrill <joel@OARcorp.com>
2185
2186         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
2187         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
2188         Also done for -Acpu and -Amachine.
2189
2190 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2191
2192         * cppinit.c (init_dependency_output): Take deps output file
2193         from -o if none given with -MF.  Suppress normal output.
2194         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
2195         * doc/cpp.texi, doc/invoke.texi: Update.
2196
2197 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
2198
2199         * toplev.c (output_quoted_string): Write unprintable
2200         characters with octal escapes.
2201
2202 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
2203
2204         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
2205         really_call_used[VRSAVE_REGNO] if not Altivec.
2206
2207 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
2208
2209         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
2210         MODE_MASK.
2211         (constant_pool_expr_1): Fix formatting.
2212         (rs6000_legitimize_reload_address): Likewise.
2213
2214 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2215
2216         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
2217         now that we have one.
2218
2219 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
2220
2221         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
2222         end of first block of bitfields (which was only seven bits);
2223         rename dummy to unused_1; remove comment which is no longer true.
2224
2225 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
2226
2227         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
2228
2229 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
2230
2231         PR 5399
2232         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
2233         if generating PIC.
2234
2235         PR 5054
2236         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
2237         arm_is_longcall_p rather than inspecting call-type cookie
2238         directly.
2239         (call_value_insn) [TARGET_THUMB]: Likewise.
2240
2241 2002-02-19  Graham Stott  <grahams@redhat.com>
2242
2243         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
2244
2245 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
2246
2247         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
2248         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
2249         (FP_SAVE_INLINE): Delete.
2250
2251         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
2252         * config/rs6000/eabi.asm: Remove ABI save restore routines.
2253         * config/rs6000/t-ppccomm: Build crtsavres.o.
2254         * config/rs6000/crtsavres.asm: New file.
2255
2256 2002-02-19  Philip Blundell  <philb@gnu.org>
2257
2258         * config/arm/arm.c (use_return_insn): Don't reject interrupt
2259         functions.
2260         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
2261         (output_return_instruction): Allow interrupt functions to return with
2262         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
2263         (arm_expand_prologue): Subtract 4 before stacking LR in an
2264         interrupt function.
2265
2266 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
2267
2268         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
2269         decl, not just FUNCTION_DECL.
2270         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
2271         (arm_assemble_integer): Likewise.
2272         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
2273         marked local.
2274
2275 2002-02-19  matthew green  <mrg@eterna.com.au>
2276
2277         * config.gcc (sparc-*-netbsdelf*): Enable target.
2278         (sparc64-*-netbsd*): New target.
2279         * config/sparc/netbsd-elf.h: New file.
2280         * config/sparc/t-netbsd64: New file.
2281
2282 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
2283
2284         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
2285
2286 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
2287
2288         * doc/invoke.texi: explicitly list the style guidelines that
2289         -Weffc++ checks for.
2290
2291 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
2292
2293         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
2294
2295 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
2296
2297         PR other/5718
2298         * gcc.c (cpp_unique_options): Treat -o as indicating object file
2299         only if not -E.  If -E, pass -o through to the preprocessor.
2300
2301 2002-02-19  Kazu Hirata  <kazu@hxi.com>
2302
2303         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
2304         register number with an appropriate macro.
2305
2306 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2307
2308         * doc/rtl.texi (Constants): Close @code tag.
2309
2310 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
2311
2312         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
2313         ("mmx_uavgv4hi3"): Same.
2314         ("pmulhrwv4hi3"): Same.
2315
2316         * tree-inline.c (walk_tree): Handle vectors.
2317
2318         * c-common.c (constant_expression_warning): Handle vectors.
2319         (overflow_warning): Same.
2320
2321         * sched-deps.c (sched_analyze_2): Handle vectors.
2322
2323         * rtlanal.c (rtx_unstable_p): Handle vectors.
2324         (rtx_varies_p): Same.
2325         (count_occurrences): Same.
2326         (regs_set_between_p): Same.
2327         (modified_between_p): Same.
2328         (modified_in_p): Same.
2329         (volatile_insn_p): Same.
2330         (volatile_refs_p): Same.
2331         (side_effects_p): Same.
2332         (may_trap_p): Same.
2333         (inequality_comparisons_p): Same.
2334         (replace_regs): Same.
2335         (computed_jump_p_1): Same.
2336
2337         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
2338         argument.
2339         (inner_mode_array): New.
2340         (copy_rtx): Handle vectors.
2341         (copy_most_rtx): Same.
2342         (rtx_equal_p): Same.
2343         (get_mode_alignment): Adjust for vectors.
2344
2345         * resource.c (mark_referenced_resources): Handle vectors.
2346         (mark_set_resources): Same.
2347
2348         * reload1.c (eliminate_regs): Handle vectors.
2349         (elimination_effects): Same.
2350         (scan_paradoxical_subregs): Same.
2351
2352         * reload.c (subst_reg_equivs): Handle vectors.
2353
2354         * regrename.c (scan_rtx): Handle vectors.
2355
2356         * regclass.c (reg_scan_mark_refs): Handle vectors.
2357
2358         * recog.c (find_single_use_1): Handle vectors.
2359
2360         * local-alloc.c (equiv_init_varies_p): Handle vectors.
2361         (contains_replace_regs): Same.
2362         (memref_referenced_p): Same.
2363
2364         * integrate.c (copy_rtx_and_substitute): Handle vectors.
2365         (subst_constants): Same.
2366
2367         * genattrtab.c (attr_copy_rtx): Handle vectors.
2368         (encode_units_mask): Same.
2369         (clear_struct_flag): Same.
2370         (count_sub_rtxs): Same.
2371
2372         * gcse.c (want_to_gcse_p): Handle vectors.
2373         (oprs_unchanged_p): Same.
2374         (hash_expr_1): Same.
2375         (oprs_not_set_p): Same.
2376         (expr_killed_p): Same.
2377         (compute_transp): Same.
2378         (store_ops_ok): Same.
2379
2380         * function.c (purge_addressof_1): Do not allow paradoxical subregs
2381         of vectors.
2382         (fixup_var_refs_1): Same.
2383         (instantiate_virtual_regs_1): Same.
2384
2385         * fold-const.c (operand_equal_p): Handle vectors.
2386         (fold): Same.
2387         (rtl_expr_nonnegative_p): Same.
2388
2389         * flow.c (mark_used_regs): Handle vectors.
2390
2391         * df.c (df_uses_record): Handle vectors.
2392
2393         * cselib.c (cselib_subst_to_values): Handle vectors.
2394         (cselib_mem_conflict_p): Same.
2395         (hash_rtx): Same.
2396
2397         * cse.c (canon_reg): Handle vectors.
2398         (fold_rt): Same.
2399         (cse_process_notes): Same.
2400         (count_reg_usage): Same.
2401         (canon_hash): Same.
2402
2403         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
2404
2405         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
2406
2407         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
2408         (gen_rtx): Handle CONST_VECTOR.
2409         (gen_const_vector_0): New.
2410         (copy_rtx_if_shared): CONST_VECTORs can be shared.
2411         (reset_used_flags): Same.
2412         (copy_insn_1): Same.
2413         (initializer_constant_valid_p): Handle VECTOR_CST.
2414
2415         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
2416
2417         * doc/rtl.texi (Constants): Document const_vector.
2418         (CONST0_RTX): Update for vectors.
2419         (RTL sharing): Same.
2420
2421         * print-tree.c (print_node): Add case for VECTOR_CST.
2422
2423         * tree.h (TREE_VECTOR_CST_ELTS): New.
2424         (struct tree_vector): New.
2425         (union tree_node): Add vector node.
2426         (build_vector): Add prototype.
2427
2428         * tree.def (VECTOR_CST): New.
2429
2430         * tree.c (build_vector): New.
2431
2432         * expmed.c (make_tree): Handle CONST_VECTOR.
2433
2434         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
2435         (CONST_VECTOR_ELT): New.
2436         (CONST_VECTOR_NUNITS): New.
2437
2438         * machmode.h (GET_MODE_INNER): New.
2439         (DEF_MACHMODE): Accept 8th arg.
2440
2441         * machmode.def: Add 8th argument for vector inner mode.
2442         Add inner vector modes for vectors.
2443
2444         * rtl.def (VEC_CONST): Remove.
2445         (CONST_VECTOR): New.
2446
2447         * expr.c (clear_storage): Allow vectors.
2448         (is_zeros_p): Handle VECTOR_CST.
2449
2450         * varasm.c (output_constant_pool): Handle vectors.
2451         (rtx_const): Add veclo and vechi fields.
2452         (kind): Add RTX_VECTOR.
2453         (decode_rtx_const): Add case for vector.
2454
2455         * config/rs6000/rs6000-protos.h: Add zero_constant.
2456
2457         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
2458         constants.  Force easy vector constants into memory.
2459         (easy_vector_constant): New.
2460         (emit_easy_vector_constant): New.
2461         (rs6000_legitimize_reload_address): Do not generate bad reloads on
2462         darwin.
2463
2464         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
2465         instruction does.
2466         ("altivec_lvxl"): Same.
2467         (altivec_lvebx): Same.
2468         (altivec_lvehx): Same.
2469         (altivec_lvewx): Same.
2470         ("*movv4si_const0"): New.
2471         ("*movv4sf_const0"): New.
2472         ("*movv8hi_const0"): New.
2473         ("*movv16qi_const0"): New.
2474
2475 2002-02-18  Kazu Hirata  <kazu@hxi.com>
2476
2477         * config/h8300/h8300.c (notice_update_cc): Use
2478         cc_status.value2.
2479
2480 2002-02-18  Kazu Hirata  <kazu@hxi.com>
2481
2482         * config/h8300/h8300.md (divmod patterns): Change the
2483         constraints for operands[1] to register_operand.
2484
2485 2002-02-18  Kazu Hirata  <kazu@hxi.com>
2486
2487         * config/h8300/h8300-protos.h: Remove the prototype for
2488         p_operand.
2489         * config/h8300/h8300.c (p_operand): Remove.
2490         * config/h8300/h8300.md: Replace p_operand with
2491         const_int_operand.
2492
2493 2002-02-18 Philip Blundell <pb@nexus.co.uk>
2494
2495         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
2496         comment.
2497         (output_return_instruction): Allow use of LDR to unstack
2498         return addresss even for interrupt handlers or when
2499         interworking.  If compiling for ARMv5, use interworking-safe
2500         return instructions by default.  Remove duplicated code and
2501         lengthy "strcat" sequences.
2502
2503 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2504
2505         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
2506         (LINK_EH_SPEC): Define.
2507         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
2508
2509 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
2510
2511         * config/s390/s390.c (s390_emit_prologue): Do not set the
2512         frame_related flag for call-clobbered registers.
2513
2514 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
2515
2516         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
2517         (construct_container): Fix handling of SSE operands.
2518         (ix86_expand_builtin): Fix handling of 64bit pointers.
2519         (mmx_maskmovq_rex): New pattern.
2520
2521 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
2522
2523         * regrename.c (kill_set_value): Handle subregs properly.
2524
2525 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
2526
2527         * objc/objc-act.c (handle_impent): Remove leading '*'
2528         from objc_class_name.
2529
2530 2002-02-17  Richard Henderson  <rth@redhat.com>
2531
2532         * config/alpha/alpha.c (some_small_symbolic_operand,
2533         some_small_symbolic_operand_1, split_small_symbolic_operand,
2534         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
2535         Handle small SYMBOL_REFs anywhere, not just inside memories.
2536         * config/alpha/alpha-protos.h: Update.
2537         * config/alpha/alpha.h (PREDICATE_CODES): Update.
2538         * config/alpha/alpha.md (small symbolic operand splitter): Update.
2539
2540 2002-02-17  Roland McGrath  <roland@frob.com>
2541
2542         * config.gcc (powerpc-*-gnu-gnualtivec*,
2543         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
2544         * config/rs6000/gnu.h: New file.
2545         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
2546         Grok "gnu" in rs6000_abi_name.
2547         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
2548         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
2549         Grok -mcall-gnu analogous to -mcall-linux et al.
2550         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
2551         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
2552         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
2553
2554 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
2555
2556         PR c/3444:
2557         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
2558         shortening.
2559
2560 2002-02-17  Philipp Thomas  <pthomas@suse.de>
2561
2562         * config/cris/cris.h: Undefine STARTFILE_SPEC and
2563         ENDFILE_SPEC before (re)defining them.
2564
2565 2002-02-17  Kazu Hirata  <kazu@hxi.com>
2566
2567         * config/h8300/h8300.c: Fix formatting.
2568         * config/h8300/h8300.h: Likewise.
2569
2570 2002-02-17  Philipp Thomas  <pthomas@suse.de>
2571
2572         * doc/tm.texi: Explain why empty strings should not be
2573         marked for translation.
2574
2575 2002-02-17  Philipp Thomas  <pthomas@suse.de>
2576
2577         * final.c (output_operand_lossage): Changed to accept
2578         printf style arguments. Change calls where necessary.
2579         * output.h (output_operand_lossage): Change declaration
2580         accordingly. Update copyright.
2581         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
2582         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
2583         Update copyright date where necessary.
2584
2585         * config/i386/i386.c (print_operand): Likewise. Remove use of
2586         sprintf.
2587
2588         * config/cris/cris.c (cris_operand_lossage): Likewise.
2589         Rename parameter so that exgettext recognizes it as
2590         translatable message.
2591         (LOSE_AND_RETURN): Rename parameter to msgid.
2592
2593 2002-02-17  Kazu Hirata  <kazu@hxi.com>
2594
2595         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
2596         hard coded register number with an appropriate macro.
2597         (HARD_REGNO_MODE_OK): Likewise.
2598         (ARG_POINTER_REGNUM): Likewise.
2599         (STATIC_CHAIN_REGNUM): Likewise.
2600         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
2601         * config/h8300/h8300.md (define_constants): Define more
2602         register numbers.
2603
2604 2002-02-17  Philipp Thomas  <pthomas@suse.de>
2605
2606         * config/i386/i386.h: Don't mark empty strings for translation.
2607
2608 2002-02-16  H.J. Lu <hjl@gnu.org>
2609
2610         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
2611
2612 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
2613
2614         * cppinit.c (merge_include_chains): Check for brack being
2615         NULL before attempting to merge it with qtail.
2616
2617 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
2618
2619         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
2620         DBX_DEBUG.
2621
2622 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2623
2624         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
2625
2626 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2627
2628         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
2629         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
2630         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
2631
2632 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2633
2634         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
2635         now only if !TARGET_FIX.
2636         (*movsi_nt_vms_fix): New pattern.
2637
2638 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
2639
2640         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
2641         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
2642         (alpha_sa_mask, alpha_sa_size): Reflect above change.
2643         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
2644         (alpha_start_function, alpha_expand_epilogue): Likewise.
2645         (unicosmk_gen_dsib): Likewise.
2646
2647 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2648
2649         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
2650
2651 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
2652
2653         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
2654         check_and_change_labels, s390_final_chunkify): Delete.
2655         (s390_split_branches, s390_chunkify_pool): New functions.
2656         (s390_function_prologue): Call them.
2657
2658         * config/s390/s390.h (S390_REL_MAX): Delete.
2659         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
2660
2661         * config/s390/s390.md (cjump, icjump, jump): Fix length
2662         attribute calculation.
2663
2664
2665 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
2666
2667         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
2668         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
2669
2670 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2671
2672         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
2673         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
2674         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
2675
2676 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
2677
2678         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
2679
2680 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
2681
2682         * reload.c (find_dummy_reload): Check that an output register
2683         is valid for its mode.
2684
2685 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
2686
2687         * combine.c (known_cond): After replacing the REG of a SUBREG, try
2688         to simplify it.
2689
2690         * function.c (assign_parms): Demote promoted argument passed by
2691         transparent reference.
2692
2693 2001-02-14      Joel Sherrill <joel@OARcorp.com>
2694
2695         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
2696         -Acpu() and -Amachine() to eliminate warnings.
2697
2698 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
2699
2700         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
2701
2702 2002-02-14  Kazu Hirata  <kazu@hxi.com>
2703
2704         * config/h8300/h8300-protos.h: Update the prototype for
2705         const_costs.
2706         * config/h8300/h8300.c (const_costs): Treat SET as a little
2707         more expensive operation.
2708         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
2709         reference to const_costs.
2710
2711 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
2712
2713         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
2714
2715 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
2716
2717         PR c/5503:
2718         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
2719         use arguments from newtype.
2720
2721 2002-02-13  Eric Christopher  <echristo@redhat.com>
2722
2723         * config/mips/mips.c (override_options): Add check for march/mipsX
2724         on the same command line. Fix error message in cpu processing.
2725         Remove architecture and ISA checks.
2726
2727 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
2728
2729         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
2730
2731         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
2732
2733 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
2734
2735         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
2736         alternatives.
2737         ("*movv8hi_internal1"): Same.
2738         ("*movv16qi_internal1"): Same.
2739         ("*movv4sf_internal1"): Same.
2740
2741         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
2742         not push_reload for altivec modes.
2743
2744 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
2745
2746         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
2747         all RTEMS targets including removal of #includes from config/*/rtems*.h
2748         file and adding them to tm_file setting. Added xm_defines=POSIX to
2749         many targets.
2750         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
2751         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
2752         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
2753         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
2754         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
2755         config/m68k/rtemself.h: Ditto.
2756         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
2757         config/mips/rtems64.h: Ditto.
2758         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
2759         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
2760         Ditto.
2761         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
2762         config/sparc/rtemself.h: Ditto.
2763         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
2764         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
2765         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
2766         more like arm-elf.
2767         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
2768         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
2769         target made more similar to i386-elf.
2770         * config/i386/t-rtems-i386: Added soft float support and multilibs.
2771         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
2772         be similar to config/m68k/t-m68kelf.
2773         * gthr-rtems.h: Encapsulate with extern "C" for C++.
2774
2775 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
2776
2777         * regmove.c (kill_value): Handle subregs.
2778
2779 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
2780
2781         * i386.md (mul patterns): Allow memory operand to be first;
2782         add expanders where needed; fix constraints.
2783         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
2784         Allow memory operand to be the first.
2785
2786         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
2787         operands.
2788
2789 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
2790
2791         PR c/5681:
2792         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
2793         GET_MODE (x).
2794
2795 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
2796
2797         PR optimization/5547:
2798         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
2799         all valid IA-32 address modes involving non-scaled %ebx and
2800         GOT/GOTOFF as displacement.
2801
2802 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
2803
2804         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
2805         after emitting ltorg insns.
2806
2807         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
2808         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
2809         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
2810         *abssf2): Fix "op_type" attribute.
2811
2812 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
2813
2814         * mkconfig.sh: Avoid using a subshell redirect.
2815         ($output.T): Change to $(output)T.
2816         (ENABLE_NLS): Remove unneeded undef.
2817
2818         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
2819         * config/alpha/x-vms (libsubdir): Define.
2820
2821         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
2822         register frame procedures. Optimize retrieving context.
2823
2824         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
2825         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
2826         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
2827
2828 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2829
2830         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
2831         Make same change as for find_base_value.
2832
2833 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2834
2835         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
2836         of QImode and SImode.
2837
2838 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2839
2840         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
2841         length computation of movsi.
2842         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
2843
2844 2002-02-13  Kazu Hirata  <kazu@hxi.com>
2845
2846         * config/h8300/h8300.md (subqi3): Tighten the predicate for
2847         operands[2] to register_operand.
2848
2849 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
2850
2851         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
2852
2853 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
2854
2855         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
2856         for altivec_lvx* and altivec_stvx*.
2857         ("*movv4si_internal"): Add constraint for loading from GPRs.
2858         ("*movv8hi_internal1"): Same.
2859         ("*movv16qi_internal1"): Same.
2860         ("*movv4sf_internal1"): Same.
2861
2862         * config/rs6000/rs6000.c (altivec_register_operand): New.
2863
2864         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
2865         altivec_register_operand.
2866
2867 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
2868
2869         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
2870         handle SYMBOL_REF.
2871
2872 2002-02-13  Stan Shebs  <shebs@apple.com>
2873
2874         * c-typeck.c (digest_init): Handle vectors.
2875         (really_start_incremental_init): Same.
2876         (pop_init_level): Same.
2877         (process_init_element): Same.
2878
2879         * varasm.c (output_constant): Same.
2880
2881         * expr.c (clear_storage): Same.
2882         (store_constructor): Same.
2883
2884 2002-02-12  Eric Christopher  <echristo@redhat.com>
2885
2886         * explow.c (hard_function_value): Add comment explaining
2887         signed/unsigned comparison.
2888
2889 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
2890
2891         * jump.c (never_reached_warning): Add finish argument.
2892         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
2893         real insn after end.
2894         * rtl.h (never_reached_warning): Adjust prototype.
2895         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
2896         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
2897         never_reached_warning.
2898
2899 2002-02-12  Graham Stott  <grahams@redhat.com>
2900
2901         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
2902
2903 2002-02-12  Kazu Hirata  <kazu@hxi.com>
2904
2905         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
2906         logical shifts on H8/300.
2907         (shift_alg_si): Improve several shifts on H8/300.
2908         (get_shift_alg): Likewise.
2909
2910 2002-02-12  Graham Stott  <grahams@redhat.com>
2911
2912         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
2913
2914 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2915
2916         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
2917         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
2918
2919 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
2920
2921         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
2922         non-CONST_INT through default_assemble_integer.
2923         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
2924         <case 8>: Abort for CONST_DOUBLE.
2925
2926 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2927
2928         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
2929         is specified.
2930         * config/pa/pa-linux.h (LIB_SPEC): Delete.
2931         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
2932
2933 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
2934
2935         * config/stormy16/stormy16.md (zero_extendqihi2): New.
2936
2937 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
2938
2939         * regrename.c (regrename_optimize): Don't accept a
2940         part-clobbered register if the replaced register is not part
2941         clobbered.
2942
2943         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
2944         take padding into account when computing the argument value.
2945
2946         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
2947
2948         * combine.c (try_combine): Apply substitutions in
2949         CALL_INSN_FUNCTION_USAGE too.
2950
2951 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
2952
2953         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
2954         __builtin_altivec_abs*.
2955         (bdesc_abs): New.
2956
2957         * config/rs6000/rs6000.h (rs6000_builtins): Add
2958         ALTIVEC_BUILTIN_ABS*.
2959
2960         * config/rs6000/altivec.h: Use const char for builtins expecting
2961         literals.
2962         (vec_abs): New versions for C and C++.
2963         (vec_abss): Same.
2964
2965 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2966
2967         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
2968         using Pmode.
2969
2970 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2971
2972         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
2973         constant definition from h8300.md.
2974         (FRAME_POINTER_REGNUM): Likewise.
2975         * config/h8300/h8300.md (define_constants): Add FP_REG.
2976
2977 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2978
2979         * config/h8300/h8300.c (print_operand): Remove redundant code.
2980
2981 2002-02-10  Kazu Hirata  <kazu@hxi.com>
2982
2983         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
2984         * config/h8300/h8300.c (byte_reg): Make it static.
2985
2986 2002-02-10  Richard Henderson  <rth@redhat.com>
2987
2988         PR c/5623
2989         * c-typeck.c (incomplete_type_error): Handle flexible array members.
2990
2991 2002-02-10  Richard Henderson  <rth@redhat.com>
2992
2993         PR c++/5624
2994         * tree.c (append_random_chars): Don't abort if main_input_filename
2995         does not exist.
2996
2997 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
2998
2999         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
3000
3001 2002-02-10  Kazu Hirata  <kazu@hxi.com>
3002
3003         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
3004         (pushhi1): Likewise.
3005
3006 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3007
3008         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
3009         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
3010
3011 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
3012
3013         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
3014         remove MASK_VIS.
3015         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
3016
3017 2002-02-09  Kazu Hirata  <kazu@hxi.com>
3018
3019         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
3020         a half of an SImode register on H8/300.
3021
3022 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
3023
3024         * i386.md (movdi_2): Add missing '!'.
3025
3026 2002-02-09  Kazu Hirata  <kazu@hxi.com>
3027
3028         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
3029         definitions.
3030
3031 2002-02-09  Kazu Hirata  <kazu@hxi.com>
3032
3033         * config/h8300/h8300.md (length): Correct the distance valid
3034         for the short branch.
3035
3036 2002-02-09  Kazu Hirata  <kazu@hxi.com>
3037
3038         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
3039
3040 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
3041
3042         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
3043         registers in SImode.
3044         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
3045         part-clobbered.
3046
3047         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
3048         patch.
3049
3050         Contribute sh64-elf.
3051         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
3052         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
3053         (sh_cannot_modify_jumps_p): New function.
3054         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
3055         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
3056         (sh_ms_bitfield_layout_p): New function.
3057         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
3058                     Zack Weinberg  <zack@codesourcery.com>
3059         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
3060         expand_simple_binop instead of expand_binop.
3061         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
3062         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
3063         use of .quad and .uaquad.
3064         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
3065         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
3066         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3067         * config/sh/sh.md (movdi_const, movdi_const_32bit,
3068         movdi_const_16bit): Make sure all CONSTs have modes.
3069         (sym2PIC): Ditto, but by adjusting all callers.
3070         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
3071         if the prologue calls the SHmedia argument decoder or register
3072         saver.
3073         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3074         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
3075         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
3076         (sh_expand_epilogue): Don't emit USE of return target register.
3077         (prepare_move_operands): Legitimize DImode PIC addresses.
3078         (sh_media_register_for_return): Skip tr0, used to initialize the
3079         PIC register.
3080         (sh_expand_prologue): Remove explicit USE of return register.
3081         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
3082         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
3083         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
3084         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
3085         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
3086         EXTRA_CONSTRAINT_T.
3087         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
3088         (MOVI_SHORI_BASE_OPERAND_P): New.
3089         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
3090         (EXTRA_CONSTRAINT_T): Define in terms of them.
3091         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
3092         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
3093         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
3094         alternatives supporting TARGET_REGS.
3095         (UNSPEC_GOTPLT): New constant.
3096         (movdi split): Move incrementing of LABEL_NUSES...
3097         (movdi_const, movdi_const_32bit): Here.  Use
3098         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
3099         (movdi_const_16bit): New.
3100         (call, call_value) [flag_pic]: Use GOTPLT.
3101         (call_pop, call_value_pop): New expands.
3102         (call_pop_compact, call_pop_rettramp): New insns.
3103         (call_value_pop_compact, call_value_pop_rettramp): New insns.
3104         (sibcall) [flag_pic]: Use GOT.
3105         (builtint_setjmp_receiver): Remove bogus, unused expand.
3106         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
3107         (*pt, *ptb, ptrel): New insns.
3108         (sym2GOT): Handle DImode GOT.
3109         (sym2GOTPLT, symGOTPLT2reg): New expands.
3110         (sym2PIC): New expand.
3111         (shcompact_return_tramp): Use GOTPLT to return trampoline.
3112         (shcompact_return_tramp_i): Use return register explicitly.
3113         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
3114         disable flag_reorder_blocks.
3115         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
3116         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
3117         clobbers, for clarity.
3118         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
3119         restoring of r0 in macl as MAYBE_DEAD.
3120         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
3121         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
3122         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
3123         alter_subreg all over.
3124         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
3125         reload, instead of emitting instructions that would require
3126         reloading.
3127         (casesi_load_media): Add missing modes.
3128         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
3129         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
3130         as used if the argument decoder is called.
3131         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
3132         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
3133         Pmode, then extend it to DImode if necessary.
3134         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
3135         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
3136         constants in FPU-enabled SHmedia, let them be loaded from memory.
3137         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
3138         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
3139         Adjust whitespace in assembly output templates.
3140         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
3141         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
3142         mode of if_then_else.
3143         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
3144         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
3145         sh.h.
3146         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
3147                     Joern Rennecke <amylaar@redhat.com>
3148         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
3149         (SUBTARGET_CPP_PTR_SPEC): New.
3150         (SUBTARGET_CPP_SPEC): Remove.
3151         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
3152         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
3153         Fix typo in previous checkin.
3154         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
3155         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
3156         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
3157                     Alexandre Oliva  <aoliva@redhat.com>
3158         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
3159         what single FP register can hold for SHmedia target.
3160         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
3161                     Alexandre Oliva  <aoliva@redhat.com>
3162         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
3163         Do not split into SUBREG.
3164         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
3165         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
3166         and added new functions as specified in SH5 ABI r9.
3167         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
3168         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
3169         8-byte boundary.
3170         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
3171         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
3172         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
3173         and consttable_window_ends.
3174         2001-06-03  Graham Stott  <grahams@redhat,com>
3175         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
3176         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
3177         * config/sh/sh.c (print_operand): Handle floating-point pair,
3178         vector and matrix registers.
3179         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
3180         vector modes into account.
3181         * config/sh/sh.md (movv2sf): Split move between registers into
3182         movdf.
3183         (movv4sf, movv16sf): Introduce insns that get split only after
3184         reload.
3185         * config/sh/shmedia.h: Fix Copyright dates.
3186         * config/sh/ushmedia.h: Likewise.  Move loop counter
3187         declarations into conditionals that uses them.
3188         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
3189         loop boundary.
3190         * config/sh/sshmedia.h: Fix Copyright dates.
3191         (sh_media_PUTCFG): Fix constraints.
3192         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
3193         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
3194         ptrmemfunc_vbit_in_delta for SH5.
3195         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
3196         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
3197         * invoke.texi: Likewise.
3198         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
3199         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
3200         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
3201         GCC_pop_shmedia_regs_nofpu): New global symbols.
3202         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
3203         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
3204         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
3205         compact function with nonlocal labels.
3206         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
3207         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
3208         (initial_elimination_offset): Account for their stack space.
3209         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
3210         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
3211         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
3212         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
3213         least one of the operands to be a register.
3214         (movv2sf): Likewise.  Renamed to movv2sf_i.
3215         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
3216         prepare_move_operands() before emitting SHmedia insns.
3217         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
3218         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
3219         Don't save nor initialize r12.  Don't mis-align the stack.
3220         Pad the code with a nop.
3221         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
3222         stack.
3223         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
3224         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
3225         [__SHMEDIA__]: Implement.
3226         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
3227         * config/sh/sh.md: Set latency of `pt' closer to reality.
3228         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
3229         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
3230         Set move, load and store type attributes.
3231         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
3232         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
3233         profiling.
3234         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
3235         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
3236         * config/sh/sh.c (sh_media_register_for_return): New function.
3237         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
3238         branch-target register.
3239         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
3240         * config/sh/sh.md (return_media_i): Use any call-clobbered
3241         branch-target register.
3242         (return_media): If r18 wasn't copied in the prologue, copy it
3243         here.
3244         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
3245         Clear class FP0_REGS.
3246         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
3247         from elf.h.
3248         2001-03-08  DJ Delorie  <dj@redhat.com>
3249         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
3250         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
3251         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
3252         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
3253         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
3254         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
3255         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
3256         return value correctly for call_cookie.
3257         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
3258         * config/sh/crt1.asm (start): Modified so as to call
3259         ___setup_argv_and_call_main.
3260         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
3261         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
3262         SHmedia mode.
3263         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
3264         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
3265         (STRIP_NAME_ENCODING): Use it.
3266         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
3267         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
3268         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
3269         prepare_scc_operands().
3270         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
3271         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
3272         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
3273         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
3274         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
3275         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
3276         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
3277         used in shcompact_incoming_args.
3278         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
3279         change.
3280         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
3281         mode.
3282         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
3283         Adjust accordingly.
3284         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3285         Simplify.  Adjust.  Add sanity check.
3286         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
3287         FPU_SINGLE_BIT.
3288         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
3289         TARGET_SHCOMPACT.
3290         (udivsi3, divsi3): Use them.
3291         (force_mode_for_call): New insn.
3292         (call, call_value, sibcall_value): Emit it before SHcompact
3293         calls.
3294         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
3295         * config/sh/sh.md (call, call_value, sibcall): Make sure the
3296         call cookie is non-NULL before taking its value.
3297         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
3298         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
3299         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
3300         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
3301         block.
3302         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
3303         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
3304         temporary for stack adjusts.  Use MACL and MACH to pass
3305         arguments to shcompact_incoming_args.
3306         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
3307         clobber r1.
3308         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
3309         (nested_trampoline): Load static chain address into r1.
3310         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
3311         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
3312         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
3313         fp_arith_reg_operand().
3314         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
3315         * config/sh/sh.md (casesi): Sign-extend the first two operands,
3316         and use signed compares for them.
3317         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
3318         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
3319         ones properly aligned.
3320         (find_barrier): Account for extra alignment needed for 8-byte wide
3321         constants.
3322         (machine_dependent_reorg): Require a label for the second 4-byte
3323         constant after an 8-byte one.
3324         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
3325         change.
3326         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
3327         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
3328         last_float when switching float modes.
3329         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
3330         auto-increment for general-purpose registers.
3331         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
3332         result.
3333         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
3334         for stack adjust.
3335         * config/sh/sh.c (sh_builtin_saveregs): Support using all
3336         registers for varargs.
3337         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
3338         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
3339         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
3340         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
3341         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
3342         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
3343         call_cookie accordingly.
3344         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
3345         (SHCOMPACT_BYREF): Likewise.
3346         (SHCOMPACT_FORCE_ON_STACK): New macro.
3347         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
3348         (sh_builtin_saveregs): Likewise.
3349         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
3350         shcompact_incoming_args): Use new shift values.  Support
3351         sequences of consecutive and non-consecutive pushes/pops.
3352         * config/sh/sh.md (return): Don't explicitly use PR_REG.
3353         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
3354         * config/sh/sh.h (TEXT_SECTION): Define.
3355         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
3356         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
3357         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
3358         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
3359         return values on FPU-enabled SHmedia.
3360         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
3361         FPU-enabled SHmedia.
3362         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
3363         value is returned in a non-FP reg and is not returned by
3364         reference.
3365         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
3366         jump_ind.
3367         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
3368         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
3369         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
3370         quad-aligned to be passed by callee-copy reference.
3371         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
3372         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
3373         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
3374         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
3375         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
3376         copying low-numbered FP regs to r7 and r8.
3377         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
3378         FP regs to general-purpose regs only if the copy was passed on the
3379         stack.
3380         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
3381         copying FP reg to r9.
3382         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
3383         copy FP regs to general-purpose regs only in outgoing calls.
3384         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
3385         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
3386         HOST_WIDE_INT.
3387         * config/sh/sh.h (struct sh_args): Document all fields.
3388         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
3389         passed partially on the stack should not consider making
3390         sibcalls.
3391         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
3392         stack_regs only for incoming calls.  When passing FP args,
3393         make sure there are FP regs available before modifying
3394         call_cookie.
3395         (SHCOMPACT_BYREF): Pass double args in general-purpose
3396         registers by reference.
3397         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
3398         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
3399         attempt to generate sibcalls if the caller got any arguments
3400         by reference.
3401         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
3402         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
3403         to 8-byte boundaries.
3404         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
3405         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
3406         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
3407         stored in the stack.
3408         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
3409         for the offsets to have the ISA bit set.
3410         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
3411         invocation.  Use beq instead of bgt to mark end of sequence of
3412         loads.
3413         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
3414         bgt to mark end of sequence of stores.
3415         * config/sh/sh.c (arith_operand): Don't check whether
3416         CONST_OK_FOR_J for now.
3417         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
3418         instead of long for conversion.
3419         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
3420         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
3421         before passing it to fprintf.
3422         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
3423         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
3424         Call set_fpscr before reading/writing SR.
3425         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
3426         Call set_fpscr.
3427         * config/sh/lib1funcs.asm: Add `.align 2' directives before
3428         SHmedia code.
3429         (FMOVD_WORKS): Define on SH5 with FPU.
3430         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
3431         setting.
3432         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
3433         _fpscr_values.
3434         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
3435         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
3436         address.
3437         (ia_main_table): Ditto.
3438         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
3439         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
3440         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
3441         the definitions from sh.h.
3442         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
3443         TARGET_SH5.
3444         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
3445         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
3446         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
3447         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
3448         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
3449         Increment LABEL_NUSES.
3450
3451         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
3452         TARGET_SH5.
3453         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
3454         defined.
3455         * config/sh/elf.h (SIZE_TYPE): Likewise.
3456         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
3457         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
3458         shcompact_incoming_args): Load switch table addresses using
3459         datalabel.
3460         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
3461         (NO_BUILTIN_SIZE_TYPE): Define.
3462         (SIZE_TYPE): Don't define.
3463         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
3464         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
3465         definition of __SH5__=32 for -m5-compact-nofpu.
3466         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
3467         ADDR_DIFF_VEC.
3468         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
3469         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
3470         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
3471         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
3472         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
3473         (INSN_LENGTH_ALIGNMENT): Likewise.
3474         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
3475         * config/sh/sh.md (call, call_value, sibcall): Simplify
3476         copying of non-branch-target register.
3477         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
3478         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
3479         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
3480         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
3481         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
3482         floating-point values as structs.
3483         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
3484         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
3485         general-purpose register.
3486         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
3487         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
3488         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
3489         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
3490         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
3491         (ENCODE_SECTION_INFO): Enclose variables and constants in
3492         DATALABEL unspecs.
3493         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
3494         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
3495         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
3496         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
3497         only for LABEL_REFs.  For SYMBOL_REFs, prepend
3498         SH_DATALABEL_ENCODING to the symbol name.
3499         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
3500         convert_mode().
3501         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
3502         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
3503         UNSPEC_DATALABEL.
3504         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
3505         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
3506         (DATALABEL_REF_P): Don't require CONST.
3507         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
3508         REL label.
3509         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
3510         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
3511         right.
3512         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
3513         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
3514         Use shallow_copy_rtx and PUT_MODE to change the mode of
3515         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
3516         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
3517         on SHmedia using GENERAL_REGs.
3518         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
3519         bltu_media_i): Fix reversion of conditions.
3520         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
3521         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
3522         * config/sh/sh.c (output_far_jump): Save r13 in macl.
3523         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
3524         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
3525         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
3526         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
3527         (GCC_nested_trampoline): Likewise.
3528         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
3529         * config/sh/sh.c (gen_datalabel_ref): Define.
3530         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
3531         (INITIALIZE_TRAMPOLINE): Likewise.
3532         (TRAMPOLINE_ADJUST_ADDRESS): Define.
3533         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
3534         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
3535         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
3536         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
3537         (ic_invalidate): Adjust for SH5.
3538         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
3539         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
3540         _nested_trampoline.
3541         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
3542         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
3543         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
3544         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
3545         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
3546         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
3547         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
3548         * config/sh/sh.c (target_reg_operand): Match only target-branch
3549         registers and pseudos that aren't virtual registers.
3550         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
3551         Copy operands that don't match target_reg_operand to pseudos.
3552         (call_media, call_value_media, sibcall_media): Use
3553         target_reg_operand instead of target_operand.
3554         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
3555         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
3556         * config/sh/sh.c (target_reg_operand): Match hardware registers
3557         other than branch-target registers.
3558         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
3559         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
3560         (fpscr_values) [SH5 == 32]: Define.
3561         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
3562         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
3563         Handle function addresses coming in SUBREGs.
3564         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
3565         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
3566         shcompact_return_trampoline): Use datalabel where appropriate.
3567         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
3568         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
3569         general-purpose register to copy one branch-target register to
3570         another.
3571         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
3572         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
3573         SYMBOL_REFs with VOIDmode.
3574         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
3575         bltu_media_i): New insns.
3576         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
3577         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
3578         (INIT_CUMULATIVE_ARGS): Likewise.
3579         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
3580         * machmode.def (V16SFmode): New mode.
3581         * c-common.c (type_for_mode): Support V2SF and V16SF.
3582         * tree.c (build_common_tree_nodes_2): Likewise.
3583         * tree.h (tree_index): Likewise.
3584         * calls.c (emit_call_1): Take args_so_far.  Adjust all
3585         callers.  Introduce CALL_POPS_ARGS.
3586         * tm.texi (CALL_POPS_ARGS): Document.
3587         * config/sh/crt1.asm: Implement in SHmedia mode.
3588         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
3589         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
3590         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
3591         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
3592         Implement divsi and udivsi in SHmedia mode.  Introduce
3593         SHcompact trampolines.
3594         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
3595         only in SHmedia64.
3596         (regno_reg_class): Rewrite.
3597         (fp_reg_names): Remove.
3598         (sh_register_names, sh_additional_register_names): New.
3599         (print_operand): Added `u'.  Support SUBREGs in addresses.
3600         Add parentheses around shifted CONSTs.
3601         (output_file_start): Output .mode and .abi directives.
3602         (shiftcosts, addsubcosts, multcosts): Adjust.
3603         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
3604         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
3605         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
3606         bytes, not registers.  Take into account the need for the
3607         SHcompact incoming args trampoline.  Adjust all callers.
3608         (sh_expand_prologue): Take stack_regs into account.  Call
3609         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
3610         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
3611         stack aligned as per SH5 ABI.
3612         (sh_builtin_saveregs): Support SH5 ABI.
3613         (sh_build_va_list, sh_va_start): Likewise.
3614         (initial_elimination_offset): Take alignment into account.
3615         Compute location of PR according to the SH5 stack frame.
3616         (arith_reg_operand): Reject branch-target registers.
3617         (shmedia_6bit_operand): New.
3618         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
3619         (target_reg_operand): Match DImode only.  Accept SUBREGs.
3620         (target_operand): New.
3621         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
3622         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
3623         SIBCALL_REGS for SHmedia.
3624         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
3625         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
3626         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
3627         (TARGET_SWITCHES): New SH5 flags.
3628         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
3629         VALID_REGISTER_P to disable unsupported registers.
3630         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
3631         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
3632         (FUNCTION_ARG_PADDING): Define.
3633         (FASTEST_ALIGNMENT): Adjust.
3634         (SH_REGISTER_NAMES_INITIALIZER): New.
3635         (sh_register_names): Declare.
3636         (DEBUG_REGISTER_NAMES): Define.
3637         (REGISTER_NAMES): Define based on sh_register_names.
3638         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
3639         (sh_additional_register_names): Declare.
3640         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
3641         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
3642         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
3643         (REGISTER_NATURAL_MODE): Define.
3644         (FIRST_PSEUDO_REGISTER): Adjust.
3645         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
3646         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
3647         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
3648         (VECTOR_MODE_SUPPORTED_P): Define.
3649         (REG_CLASS_CONTENTS): Adjust.
3650         (SMALL_REGISTER_CLASSES): Adjust.
3651         (REG_ALLOC_ORDER): Adjust.
3652         (INDEX_REG_CLASS): Adjust.
3653         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
3654         (CONST_OK_FOR_LETTER_P): Adjust.
3655         (PREFERRED_RELOAD_CLASS): Adjust.
3656         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
3657         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
3658         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
3659         (FIRST_FP_PARM_REG): Adjust.
3660         (CALL_POPS_ARGS): Define.
3661         (FUNCTION_ARG_REGNO_P): Adjust.
3662         (struct sh_args): New fields.
3663         (GET_SH_ARG_CLASS): Adjust.
3664         (INIT_CUMULATIVE_ARGS): Adjust.
3665         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
3666         (FUNCTION_ARG_ADVANCE): Adjust.
3667         (FUNCTION_ARG): Adjust.
3668         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
3669         (FUNCTION_ARG_CALLEE_COPIES): Define.
3670         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
3671         (STRICT_ARGUMENT_NAMING): Define.
3672         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
3673         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
3674         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
3675         (SETUP_INCOMING_VARARGS): Adjust.
3676         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
3677         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
3678         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
3679         (SUBREG_OK_FOR_INDEX_P): Adjust.
3680         (EXTRA_CONSTRAINT_S): Update.
3681         (EXTRA_CONSTRAINT_T): New.
3682         (EXTRA_CONSTRAINT): Adjust.
3683         (GO_IF_LEGITIMATE_INDEX): Adjust.
3684         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
3685         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
3686         (MOVE_MAX): Adjust.
3687         (MAX_MOVE_MAX): Define.
3688         (Pmode): Adjust.
3689         (CONST_COSTS): Adjust.
3690         (REGISTER_MOVE_COST): Adjust.
3691         (BRANCH_COST): Adjust.
3692         (TEXT_SECTION_ASM_OP): Adjust.
3693         (DBX_REGISTER_NUMBER): Adjust.
3694         (ASM_OUTPUT_DOUBLE_INT): New.
3695         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
3696         (PREDICATE_CODES): Adjust.
3697         (PROMOTE_MODE): Adjust.
3698         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
3699         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
3700         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
3701         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
3702         (DR0_REG, DR2_REG, DR4_REG): Renumber.
3703         (TR0_REG, TR1_REG, TR2_REG): New.
3704         (XD0_REG): Renumber.
3705         (UNSPEC_COMPACT_ARGS): New.
3706         (type): Added pt and ptabs.
3707         (length): Default to 4 on SHmedia.  Default pt length to 12
3708         and     20 on SHmedia32 and SHmedia64, respectively.
3709         (pt): New function unit.
3710         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
3711         Add whitespace between operands of SHmedia instructions.
3712         (movdicc): Fix.
3713         (adddi3_media, addsi3_media): Adjust constraints.
3714         (subsi3) [SHmedia]: Force operand 1 into a register.
3715         (udivsi3_i1_media, udivsi3_i4_media): New.
3716         (udivsi3): Support SHmedia.
3717         (divsi3_i1_media, divsi3_i4_media): New.
3718         (divsi3): Support SHmedia.
3719         (anddi3, iordi3, xordi3): Adjust constraints.
3720         (zero_extendhidi2, zero_extendqidi2): New.
3721         (extendsidi2, extendhidi2, extendqidi2): New.
3722         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
3723         (pop_e, pop_fpul, pop_4): Likewise.
3724         (movsi_media): Support FP and BT registers.
3725         (movsi_media_nofpu): New.  Adjust splits to DImode.
3726         (lduw, ldub): Renamed to zero_extend* above.
3727         (movqi_media): Fix typo.
3728         (movdi_media): Support FP and BT registers.
3729         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
3730         (movdi_const_32bit): New.
3731         (shori_media): Require immediate operand.  Use `u' for output.
3732         (movdf_media, movsf_media): Simplified.
3733         (movdf_media_nofpu, movsf_media_nofpu): New.
3734         (movdf, movsf): Adjust
3735         (movv2sf, movv2sf, movv16sf): New.
3736         (beq_media, beq_media_i): Adjust constraints.  Don't use
3737         scratch BT register.
3738         (bne_media, bne_media_i): Likewise.
3739         (bgt_media, bgt_media_i): Likewise.
3740         (bge_media, bge_media_i): Likewise.
3741         (bgtu_media, bgtu_media_i): Likewise.
3742         (bgeu_media, bgeu_media_i): Likewise.
3743         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
3744         bunordered): Emit jump insn.  Force operands to registers when
3745         needed.
3746         (jump_media, jump): Simplify.
3747         (call_compact, call_compact_rettramp): New.
3748         (call_value_compact, call_value_compact_rettramp): New.
3749         (call_media, call_value_media): Simplify.
3750         (sibcall_compact, sibcall_media): New.
3751         (call, call_value): Adjust for SHmedia and SHcompact.
3752         (sibcall, sibcall_value, untyped_call): Likewise.
3753         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
3754         (indirect_jump): Adjust for SHmedia.
3755         (casesi_jump_media): New.
3756         (nop): Re-enable for SHmedia.
3757         (call_site): Restrict to SH1.
3758         (casesi): Adjust for SHmedia.
3759         (casesi_shift_media, casesi_load_media): New.
3760         (return): Explicitly use PR register.  Call return trampoline
3761         on SHcompact.
3762         (return_i): Explicitly use PR register.
3763         (shcompact_return_tramp, shcompact_return_tramp_i): New.
3764         (return_media): Adjust.
3765         (shcompact_incoming_args): New.
3766         (epilogue): Adjust.
3767         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
3768         (movstrsi): Disable on SH5.
3769         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
3770         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
3771         (subsf3, subsf3_media): Likewise.
3772         (mulsf3, mulsf3_media, mac_media): Likewise.
3773         (divsf3, divsf3_media): Likewise.
3774         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
3775         (floatsisf2, fux_truncsfsi2): Likewise.
3776         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
3777         constraints.
3778         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
3779         (cmpunsf_media, cmpsf): Likewise.
3780         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
3781         (abssf2, abssf2_media): Likewise.
3782         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
3783         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
3784         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
3785         (floatsidf2, fix_truncdfsi2): Likewise.
3786         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
3787         constraints.
3788         (cmpeqdf_media, cmpgtdf_media): Likewise.
3789         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
3790         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
3791         (absdf2, absdf2_media): Likewise.
3792         (extendsfdf2, extendsfdf2_media): Likewise.
3793         (truncsfdf2, truncsfdf2_media): Likewise.
3794         * config/sh/sh64.h: New file.
3795         * config/sh/t-sh64: New file.
3796         * config/sh/shmedia.h: New file.
3797         * config/sh/ushmedia.h: New file.
3798         * config/sh/sshmedia.h: New file.
3799         * configure.in: Added sh64-*-elf.
3800         * configure: Rebuilt.
3801         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
3802         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
3803         (reg_class_from_letter): Use `b' for TARGET_REGS.
3804         (print_operand): Support `%M', `%m', `AND' and
3805         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
3806         (andcosts): Adjust for SHmedia.
3807         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
3808         Likewise.
3809         (target_reg_operand): New function.
3810         * config/sh/sh-protos.h (target_reg_operand): Declare.
3811         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
3812         FP registers on SH5.
3813         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
3814         on SH4.
3815         (TARGET_REGISTER_P): New macro.
3816         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
3817         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
3818         (EXTRA_CONSTRAINT_S): New macro.
3819         (EXTRA_CONSTRAINT): Adjust.
3820         (FLOAT_TYPE_SIZE): Define to 32.
3821         (Pmode): DImode on SHmedia.
3822         (CONST_COSTS): Adjust for SHmedia literals.
3823         (PREDICATE_CODES): Added target_reg_operand.
3824         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
3825         * config/sh/sh.md: Remove all attrs from SHmedia insns.
3826         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
3827         (cmpdi): Accept SHmedia.
3828         (movdicc_false, movdicc_true): New insns.
3829         (movdicc): New expand.
3830         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
3831         no_new_pseudos.
3832         (addsi3_media): Match `S' constraint.
3833         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
3834         (negdi2): Expand for SHmedia.
3835         (one_cmpldi2): New expand.
3836         (zero_extendsidi2): Change from expand to insn.
3837         (extendsidi2): Add constraints.
3838         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
3839         LD/ST address.  Fix SI immediate loading split.
3840         (movhi_media, movqi_media, lduw, ldub): New insns.
3841         (movhi, movqi): Accept SHmedia.
3842         (shori_media, movdi_media): Relax input constraints.  Split
3843         symbolic constants.
3844         (movdf_media, movsf_media): New insn.  New split to movdi.
3845         (movdf, movsf): Match on SHmedia.
3846         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
3847         bgeu_media): New insns and splits.  New insns with `_i' suffix.
3848         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
3849         (bunordered): New expand.
3850         (jump_compact): Renamed from `jump'.
3851         (jump_media): New insn.
3852         (jump): New expand.
3853         (call_media, call_value_media): New insns.
3854         (call, call_value): Adjust.
3855         (indirect_jump_compact): Renamed from `indirect_jump'.
3856         (indirect_jump_media): New insn.
3857         (indirect_jump): New expand.
3858         (untyped_call, return): Accept SHmedia.
3859         (return_media): New insn.
3860         (prologue, epilogue, blockage): Accept SHmedia.
3861         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
3862         (sunordered): New expand.
3863         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
3864         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
3865         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
3866         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
3867         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
3868         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
3869         abssf2_media): New insns.
3870         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
3871         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
3872         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
3873         floatdidf2, floatsidf2_media, fix_truncdfdi2,
3874         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
3875         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
3876         absdf2_media): New insns.
3877         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
3878         (extendsfdf2_media, truncdfsf2_media): New insns.
3879         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
3880         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
3881         * config/sh/sh.h (CONST_OK_FOR_J): Document.
3882         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
3883         * config/sh/sh.md (adddi3): New expand.
3884         (adddi3_media, adddi3z_media): New insns.
3885         (adddi3_compact): Renamed from adddi3.
3886         (addsi3_media): Use add.l r63 to add constant zero.
3887         (subdi3): New expand.
3888         (subdi3_media): New insn.
3889         (subdi3_compact): Renamed from subdi3.
3890         (mulsidi3): New expand.
3891         (mulsidi3_media): New insn.
3892         (mulsidi3_compact): Renamed from mulsidi3.
3893         (umulsidi3): New expand.
3894         (umulsidi3_media): New insn.
3895         (umulsidi3_compact): Renamed from umulsidi3.
3896         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
3897         (ashlsi3, ashrsi3, lshrsi3): Use them.
3898         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
3899         (ashldi3, ashrdi3, lshrdi3): Use them.
3900         (zero_extendsidi2): New expand.
3901         (extendsidi2): New insn.
3902         (movsi_media): New insn.  Split to movdi to load constants.
3903         (movsi): Enable for shmedia.
3904         (movdi_media): New insn.  Use shori_media to load wide constants.
3905         (short_media): New insn.
3906         (movdi): Enable for shmedia.
3907         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
3908         * config/sh/sh.h (CPP_SPEC): Added `m5'.
3909         (SUBTARGET_CPP_SPEC): Added `!m5'.
3910         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
3911         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
3912         to all other SH variants.
3913         (TARGET_DEFAULT): Set to SH1_BIT.
3914         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
3915         (BITS_PER_WORD): Raise to 64 on shmedia.
3916         (MAX_BITS_PER_WORD): Change to 64.
3917         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
3918         (INT_TYPE_SIZE): Keep as 32.
3919         (UNITS_PER_WORD): Raise to 8 on shmedia.
3920         (MIN_UNITS_PER_WORD): Keep as 4.
3921         (POINTER_SIZE): Raise to 64 on shmedia.
3922         (CONST_OK_FOR_J): New macro.
3923         (CONST_OK_FOR_LETTER_P): Use it.
3924         (processor_type): Add PROCESSOR_SH5.
3925         * config/sh/sh.md: Conditionalize all expands, insns and
3926         splits to TARGET_SH1.
3927         (cpu): Added sh5.
3928         (addsi3_compact): Renamed from...
3929         (addsi3): Now an expand.
3930         (addsi3_media, subsi3_media): New insns.
3931         (subsi3): Don't negate constants with SHmedia.
3932
3933         * hooks.c: New file.
3934         * hooks.h: New file.
3935         * Makefile.in (HOOKS_H): New.
3936         (TARGET_DEF_H): Added $(HOOKS_H).
3937         (OBJS): Added hooks.o.
3938         (cfgcleanup.o, bb-reorder.o): Added target.h.
3939         (hooks.o): Added dependencies.
3940         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
3941         (TARGET_INITIALIZER): this.
3942         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
3943         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
3944         * bb-reorder.c: Include target.h.
3945         (reorder_basic_blocks): Skip if cannot modify jumps.
3946         * cfgcleanup.c: Include target.h.
3947         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
3948
3949 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
3950
3951         * config/mips/mips.md (casesi_internal, casesi_internal_di):
3952         Protect jump delay slot instructions with .set noreorder and
3953         .set nomacro.
3954
3955 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
3956
3957         * config/mips/mips.md (casesi_internal_di): Calculate
3958         the index into the target offset table correctly.
3959
3960 2002-02-08  Richard Henderson  <rth@redhat.com>
3961
3962         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
3963         * final.c (output_addr_const): Accept and discard SUBREG.
3964         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
3965         mark them unknown instead.
3966         (simplify_subtraction): Handle RTX_UNKNOWN.
3967         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
3968
3969 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
3970
3971         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
3972
3973 2002-02-08  Richard Henderson  <rth@redhat.com>
3974
3975         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
3976
3977 2002-02-08  Andreas Jaeger  <aj@suse.de>
3978
3979         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
3980         * config/i386/t-linux64: New file.
3981
3982 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
3983
3984         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
3985         * c-parse.in (compstmt): Clear last_expr_type.
3986
3987 2002-02-07  Richard Henderson  <rth@redhat.com>
3988
3989         * loop.c (strength_reduce): Sink final_value when not
3990         eliminating a biv.
3991
3992 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
3993
3994         * config/sparc/freebsd.h: Fix mismatched spec {.
3995
3996 2002-02-07  Richard Henderson  <rth@redhat.com>
3997
3998         * cfgrtl.c: Include recog.h and insn-config.h.
3999         (keep_with_call_p): Fix general_operand invocation.
4000         * Makefile.in (cfgrtl.o): Update dependencies.
4001
4002 2002-02-07  Kazu Hirata  <kazu@hxi.com>
4003
4004         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
4005         comment.  Accept HImode only if TARGET_H8300.
4006
4007 2002-02-07  Eric Christopher  <echristo@redhat.com>
4008
4009         * config/mips/crtn.asm: Cleanup #ifdefs.
4010
4011 2002-02-07  Eric Christopher  <echristo@redhat.com>
4012
4013         * config/mips/crti.asm: Add changes for mips16. mips16 uses
4014         register 7 as RA instead of $31.
4015         * config/mips/crtn.asm: Ditto.
4016         * config/mips/mips.c (mips_move_2words): Add case for
4017         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
4018         (compute_frame_size): Fix typo.
4019         (save_restore_insns): Ditto.  Make documentation about using
4020         register $7 as return register more precise.
4021         (mips_expand_epilogue): Fix comment. Add code to work around not
4022         being able to add to the stack pointer directly.
4023         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
4024         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
4025         epilogue.
4026
4027 2002-02-07  Tom Rix  <trix@redhat.com>
4028
4029         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
4030         immediates in ldu and stdu DS opcode field.
4031         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
4032         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
4033         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
4034
4035 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
4036
4037         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
4038         offset for stack bias.
4039
4040 2002-02-07  H.J. Lu <hjl@gnu.org>
4041
4042         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
4043
4044 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
4045
4046         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
4047
4048 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
4049
4050         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
4051         * i386.c (x86_order_regs_for_local_alloc): New global function.
4052         * i386.h (REG_ALLOC_ORDER): CLeanup.
4053         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
4054
4055 2002-02-07  Richard Henderson  <rth@redhat.com>
4056
4057         PR optimization/2463
4058         * alias.c (find_base_value): Recall base values for fixed hard regs.
4059         * loop.c (loop_regs_update): Don't use single_set on non-insns.
4060
4061 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
4062
4063         * config/mips/mips.md (define_delay) [mips16]: Adjust required
4064         length.
4065
4066 2002-02-06  Richard Henderson  <rth@redhat.com>
4067
4068         PR c/5609
4069         * stmt.c (resolve_operand_name_1): Take more care with mixed
4070         named and unnamed operands.
4071
4072 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
4073             Jan Hubicka  <jh@suse.cz>
4074
4075         * loop.c (remove_constant_addition): Avoid clobbering a shared
4076         CONST expression.
4077
4078 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
4079
4080         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
4081         * config/s390/t-linux64: New file.
4082         * config/s390/libgcc-glibc.ver: New file.
4083
4084 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
4085
4086         * config/s390/linux64.h: Delete file.
4087         * config/s390/s390x.h: New file.
4088         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
4089         as target header file.
4090         * config/s390/linux.h (TARGET_VERSION): Define depending on
4091         DEFAULT_TARGET_64BIT.
4092         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
4093         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
4094         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
4095         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
4096         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
4097         (EXTRA_SPEC): New define.
4098         * config/s390/s390.h (TARGET_VERSION): Define depending on
4099         DEFAULT_TARGET_64BIT.
4100         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
4101
4102 2002-02-06  Jason Merrill  <jason@redhat.com>
4103
4104         * c-decl.c (finish_function): Warn about a non-void function with
4105         no return statement and no abnormal exit.
4106         (current_function_returns_abnormally): New variable.
4107         (start_function): Clear it.
4108         (struct c_language_function): Add returns_abnormally.
4109         (push_c_function_context): Save it.
4110         (pop_c_function_context): Restore it.
4111         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
4112         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
4113         an explicit return type.
4114         * c-tree.h: Declare current_function_returns_abnormally.
4115         (C_FUNCTION_IMPLICIT_INT): New macro.
4116         * c-typeck.c (build_function_call): Set it.
4117         (c_expand_return): Set current_function_returns_value even if the
4118         value is erroneous.
4119
4120 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
4121
4122         PR c/5420:
4123         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
4124         unsafe for reevaluation.
4125
4126 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
4127
4128         PR c/5482:
4129         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
4130         EXPR_STMT, but COMPOUND_STMT, recurse into it.
4131
4132 2002-02-06  Richard Henderson  <rth@redhat.com>
4133
4134         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
4135         be a general_operand.  Dest for function value must be a pseudo.
4136
4137 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
4138
4139         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
4140         as SYMBOL_REFs from the constant pool.
4141
4142 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
4143
4144         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
4145         passed by invisible reference.
4146
4147 2002-02-05  Richard Henderson  <rth@redhat.com>
4148
4149         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
4150
4151 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
4152
4153         Implement using "base addresses" in insn operands as default.
4154         * config/mmix/mmix.c (mmix_conditional_register_usage): if
4155         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
4156         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
4157         used to read the rtx value.
4158         (mmix_target_asm_function_epilogue): Fix spacing.
4159         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
4160         (mmix_legitimate_address): Ditto.
4161         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
4162         should be loaded with a GETA insn.  Don't allocate needless extra
4163         char for nul termination and fix misleading comment.
4164         (mmix_print_operand_address): Handle constants if
4165         TARGET_BASE_ADDRESSES.
4166         (mmix_output_register_setting): Use base addressing if
4167         TARGET_BASE_ADDRESSES and the number of insns is 3.
4168         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
4169         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
4170         to use R as constraint, add LDA to match s.
4171         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
4172         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
4173         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
4174         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
4175         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
4176         order with other fixed registers.
4177         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
4178         other parameter/call-clobbered registers.
4179         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
4180         -mbase-addresses, -mno-base-addresses.
4181         (MMIX Options): Ditto.
4182
4183 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4184
4185         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
4186
4187 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
4188
4189         * config/rs6000/altivec.h: Change elem to _S_elem.
4190
4191 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
4192
4193         * config/netbsd.h (WCHAR_TYPE): Define.
4194         (WCHAR_TYPE_SIZE): Ditto.
4195         (WINT_TYPE): Ditto.
4196         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
4197         (WCHAR_UNSIGNED): Ditto.
4198         (WCHAR_TYPE_SIZE): Ditto.
4199         (WINT_TYPE): Ditto.
4200         * config/arm/netbsd.h: Likewise.
4201         * config/i386/netbsd-elf.h: Likewise.
4202         * config/i386/netbsd.h: Likewise.
4203         * config/m68k/netbsd-elf.h: Likewise.
4204         * config/m68k/netbsd.h: Likewise.
4205         * config/ns32k/netbsd.h: Likewise.
4206         * config/sparc/netbsd.h: Likewise.
4207         * config/vax/netbsd.: Likewise.
4208
4209 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
4210
4211         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
4212         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
4213         (TARGET_INITIALIZER): this.
4214         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
4215         (BITFIELD_NBYTES_LIMITED): Markup fix.
4216         * tree.h (default_ms_bitfield_layout_p): Declare.
4217         (record_layout_info): Added prev_field.
4218         * tree.c (default_ms_bitfield_layout_p): New fn.
4219         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
4220         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
4221         * stor-layout.c: Include target.h.
4222         (start_record_layout): Initialize prev_field.
4223         (place_field): Handle MS bit-field layout, and disregard
4224         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
4225         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
4226         * Makefile.in (stor-layout.o): Adjust dependencies.
4227
4228 2002-02-05  Jason Merrill  <jason@redhat.com>
4229
4230         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
4231
4232 2002-02-05  Andreas Jaeger  <aj@suse.de>
4233
4234         * crtstuff.c: Fix comments.
4235
4236 2002-02-05  Richard Henderson  <rth@redhat.com>
4237
4238         PR fortran/3393
4239         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
4240         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
4241
4242         PR fortran/3392
4243         * config/mips/mips.c (function_arg): Handle TImode.
4244         (function_arg_advance): Likewise.
4245
4246 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
4247
4248         * config/rs6000/altivec.h (vec_step_help): Rename to
4249         __vec_step_help.
4250
4251 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
4252
4253         * config/rs6000/altivec.h: Fix typos.
4254
4255 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
4256
4257         * config/arm/netbsd.h: Correct a comment.
4258
4259 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
4260
4261         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
4262         building void typed builtins.
4263
4264         * config/rs6000/altivec.h (vec_ld*): Fix typos.
4265         (vec_step): Implement for C++.
4266
4267 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4268
4269         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
4270
4271 2002-02-04  Richard Henderson  <rth@redhat.com>
4272
4273         * combine.c (nonzero_bits): Re-introduce special case for
4274         sp/fp/ap wrt REGNO_POINTER_ALIGN.
4275
4276 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
4277
4278         * doc/extend.texi: Warn about unsupported usage of altivec
4279         builtins.
4280
4281         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
4282         (altivec_predicate_*): New.
4283
4284         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
4285         Add C++ version of vec_*() functions.
4286
4287         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
4288         (bdesc_2arg): Remove altivec predicates.
4289         (altivec_expand_builtin): Handle predicates.
4290         (altivec_init_builtins): Handle predicates.
4291         (altivec_expand_predicate_builtin): New.
4292
4293 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4294
4295         * pa.c (DO_FRAME_NOTES): Move forward.
4296         (store_reg): Revise handling of frame notes.
4297         (load_reg): Likewise.
4298         (set_reg_plus_d): Likewise.
4299         (hppa_expand_prologue): Likewise.
4300         (hppa_expand_epilogue): Likewise.
4301
4302 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4303
4304         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
4305
4306 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
4307
4308         PR c/4475, c++/3780:
4309         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
4310         * c-common.h (SWITCH_TYPE): Define.
4311         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
4312         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
4313         Rename spareness variable to sparseness.
4314         (expand_end_case_type): Renamed from expand_end_case, use orig_type
4315         if non-NULL instead of TREE_TYPE (orig_index).
4316         * tree.h (expand_end_case_type): Renamed from expand_end_case.
4317         (expand_end_case): Define using expand_end_case_type.
4318         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
4319         to expand_end_case_type.
4320         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
4321
4322 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4323
4324         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
4325         (BIGGEST_ALIGNMENT): Change to 128.
4326
4327 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4328
4329         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
4330
4331 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4332
4333         * pa.md (call_internal_reg_64bit): Remove unused variable.
4334
4335 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
4336
4337         * config/arm/arm.h (machine_function): Add uses_anonymous_args
4338         field.
4339         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
4340         * config/arm/arm.c (current_function_anonymous_args): Delete,
4341         replace uses with cfun->machine->uses_anonymous_args.
4342         (arm_reorg): Do not reset uses_anonymous_args.
4343
4344         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
4345         any geenral register.
4346
4347 2001-02-04  Bernd Schmidt  <bernds@redhat.com>
4348
4349         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
4350         the entry block.
4351
4352 2002-02-04  Richard Henderson  <rth@redhat.com>
4353
4354         * combine.c (force_to_mode): Remove STACK_BIAS code.
4355         (nonzero_bits): Likewise.  Replace sp/fp special case with
4356         REGNO_POINTER_ALIGN.
4357
4358         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
4359         (HARD_FRAME_POINTER_REGNUM): New.
4360         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
4361         (FIXED_REGS, CALL_USED_REGS): Update.
4362         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
4363         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
4364         (HARD_REGNO_NREGS): Update for SFP.
4365         (STACK_POINTER_OFFSET): Include bias here ...
4366         (FIRST_PARM_OFFSET): ... not here.
4367         (STACK_BIAS): Remove.
4368         (INIT_EXPANDERS): New.
4369         (STARTING_FRAME_OFFSET): Do not include bias.
4370         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
4371         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
4372         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
4373         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
4374         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
4375         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
4376         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
4377         (MUST_SAVE_REGISTER): Likewise.
4378         (sparc_flat_function_prologue): Likewise.
4379         (sparc_flat_function_epilogue): Likewise.
4380         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
4381         (sparc_init_modes): SFP is GENERAL_REGS.
4382         (sparc_builtin_saveregs): SFP does not have bias applied.
4383
4384 2002-02-04  Richard Henderson  <rth@redhat.com>
4385
4386         * config/alpha/alpha.c (current_function_is_thunk): Don't check
4387         current_function_is_thunk.
4388         (alpha_sa_mask): Distinguish between current_function_is_thunk
4389         called from ASM_OUTPUT_MI_THUNK and not.
4390         (alpha_does_function_need_gp): Thunks always need gp.
4391         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
4392         (alpha_output_mi_thunk_osf): New.
4393         * config/alpha/alpha-protos.h: Update.
4394         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
4395
4396 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
4397
4398         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
4399         function types, not when they're taken away.
4400
4401 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
4402
4403         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
4404         CODE_LABEL and jump table when replacing a table jump with a
4405         simple jump.
4406
4407 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
4408
4409         * config/s390/s390-protos.h (legitimize_la_operand,
4410         s390_secondary_input_reload_class, s390_plus_operand,
4411         s390_expand_plus_operand): Add prototypes.
4412
4413         config/s390/s390.c (s390_secondary_input_reload_class,
4414         s390_plus_operand, s390_expand_plus_operand): New functions.
4415
4416         (struct s390_address): New member 'pointer'.
4417         (s390_decompose_address): Compute it.
4418         (legitimate_la_operand_p): Use it.
4419         (legitimize_la_operand): New function.
4420         (movti, movdi, movdf splitters): Call it.
4421
4422         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
4423         (PREDICATE_CODES): Add s390_plus_operand.
4424
4425         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
4426         (la_ccclobber): Allow GENERAL_REGS as output operand.
4427
4428         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
4429         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
4430         (*la_64, *la_31, reload_indi, reload_insi): ... these.
4431
4432 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
4433
4434         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
4435         register names for regular asm () construct.
4436
4437 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
4438
4439         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
4440         registers.
4441
4442 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
4443
4444         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
4445         pat for recog.
4446
4447 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
4448
4449         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
4450         constant pool to be identical by string address and index.
4451
4452 2002-02-04  Anthony Green  <green@redhat.com>
4453
4454         * output.h (SECTION_OVERRIDE): Define.
4455         * varasm.c (named_section): Obey SECTION_OVERRIDE.
4456
4457 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
4458
4459         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
4460         by existing arm*-*-netbsd* (a.out) target.
4461         (ns32k-*-netbsdelf*): Likewise.
4462         (sparc-*-netbsdelf*): Likewise.
4463         (vax-*-netbsdelf*): Likewise.
4464
4465 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
4466
4467         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
4468         headers and libobjc headers.
4469
4470 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
4471
4472         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
4473         (_mingw.h): Remove duplicate include.
4474
4475 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
4476
4477         * config.gcc: Set cpu_type to m68k for 68010, as well.
4478         (m68010-*-netbsdelf*): New...
4479         (m68k*-*-netbsdelf*): ...targets.
4480         * config/m68k/netbsd-elf.h: New file.
4481
4482 2002-02-02  Kazu Hirata  <kazu@hxi.com>
4483
4484         * config/h8300/h8300.c (hand_list): Move inside function_arg.
4485
4486 2002-02-02  Kazu Hirata  <kazu@hxi.com>
4487
4488         * config/h8300/h8300.c (h8_push_ops): Move inside
4489         h8300_init_once.
4490         (h8_pop_ops): Likewise.
4491         (h8_move_ops): Likewise.
4492
4493 2002-02-02  Kazu Hirata  <kazu@hxi.com>
4494
4495         * config/h8300/h8300.c (os_task): Make it static.
4496         (monitor): Likewise.
4497         (pragma_saveall): Likewise.
4498
4499 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
4500
4501         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
4502         constant is a valid sign-extension for Pmode.
4503
4504 2002-02-02  Kazu Hirata  <kazu@hxi.com>
4505
4506         * config/h8300/h8300.c: Fix formatting.
4507
4508 2002-02-02  Kazu Hirata  <kazu@hxi.com>
4509
4510         * config/h8300/h8300.md: Fix formatting.
4511
4512 2002-02-02  Kazu Hirata  <kazu@hxi.com>
4513
4514         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
4515         predicates of operands[1].  Split the patterns for each
4516         processor variant.
4517
4518 2002-02-02  Kazu Hirata  <kazu@hxi.com>
4519
4520         * config/h8300/h8300.md (xor patterns): Tighten the predicates
4521         of operands[1] to register_operand.
4522
4523 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4524
4525         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
4526         * cpphash.c (_cpp_init_hashtable): Similarly.
4527         * cppinit.c (cpp_create_reader): Default the signed_char flag.
4528         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
4529         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
4530         (cpp_handle_option): Handle the new options.
4531         * cpplex.c (cpp_interpret_charconst): Use new flag.
4532         * cpplib.h (struct cpp_options): New member signed_char.
4533         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
4534         (cpp_options): Handle -fsigned-char and -funsigned-char.
4535         (static_specs): Remove signed_char_spec.
4536         (do_spec1): Don't handle %c.
4537         * system.h: Poison SIGNED_CHAR_SPEC.
4538         * tradcif.y (yylex): Use flag_signed_char.
4539         * tradcpp.h (flag_signed_char): New.
4540         * tradcpp.c (flag_signed_char): New.
4541         (main): Handle new command-line options.
4542         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
4543 config:
4544         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
4545         * avr/avr.h: Remove old comments.
4546         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
4547         (CC1_SPEC): Pass -fsigned-char if -mic*.
4548         (SIGNED_CHAR_SPEC): Remove.
4549 doc:
4550         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
4551
4552 2002-02-01  Eric Christopher  <echristo@redhat.com>
4553
4554         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
4555         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
4556         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
4557         (ASM_OUTPUT_REG_POP): Ditto.
4558
4559 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4560
4561         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
4562         patch.
4563
4564 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
4565
4566         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
4567
4568 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
4569
4570         PR c/5304:
4571         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
4572         unconditionally.
4573
4574 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
4575
4576         * cfganal.c: Include tm_p.h.
4577         (keep_with_call_p): Fix the test that determines if a register holds
4578         the return value of a call.
4579
4580 2002-02-01  DJ Delorie  <dj@redhat.com>
4581
4582         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
4583         we are given conflicting registers, switch to the other one we
4584         had allocated for us.
4585         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
4586         as TImode so we know when the "other" register is available.
4587
4588 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
4589
4590         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
4591         sparc/sparc_bi.h.
4592
4593 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
4594
4595         * cfganal.c (keep_with_call_p): New function.
4596         (flow_call_edges_add): Prevent splitting a block between a call and
4597         a single-set instruction that should be kept in the same block.
4598
4599 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4600
4601         * doc/install.texi (avr): Update outdated URL.
4602
4603 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
4604
4605         * config/stormy16/stormy16.md (pushqi): New.
4606         (popqi): New.
4607         (pushhi): New.
4608         (pophi): New.
4609         (movhi): Remove stack operands.
4610         (movqi): Likewise.
4611         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
4612         nonimmediate_nonstack_operand.
4613         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
4614         New.
4615         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
4616         New.
4617
4618 2002-01-31  Jason Merrill  <jason@redhat.com>
4619
4620         * Makefile.in (c-parse.c): Handle .output file.
4621         * objc/Make-lang.in (objc-parse.c): Likewise.
4622
4623 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
4624
4625         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
4626         the -me[lb] option is given.  Don't output the default flag
4627         twice.
4628
4629 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
4630
4631         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
4632         the primary source file; this has not been done yet.
4633         * c-decl.c (c_expand_body): Reset input_filename from
4634         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
4635
4636 2002-01-31  Kazu Hirata  <kazu@hxi.com>
4637
4638         * rtlanal.c (subreg_regno_offset): Do not use
4639         SUBREG_REGNO_OFFSET.
4640         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
4641         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
4642
4643 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
4644
4645         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
4646         version rather than GNATS version in --version output.
4647
4648 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
4649
4650         * ifcvt.c (noce_process_if_block): Make a copy of the destination
4651         when copying back from a temporary.
4652
4653 2002-01-30  Richard Henderson  <rth@redhat.com>
4654
4655         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
4656         and new_dest are the same.
4657
4658 2002-01-30  Richard Henderson  <rth@redhat.com>
4659
4660         PR opt/5076
4661         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
4662         * rtl.c (note_insn_name): Update.
4663         * emit-rtl.c (remove_unnecessary_notes): Kill it.
4664         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
4665         to perform loop rotation.
4666         (expand_exit_loop_top_cond): New.
4667         * tree.h (expand_exit_loop_top_cond): Declare it.
4668         * c-semantics.c (genrtl_while_stmt): Use it.
4669         (genrtl_for_stmt): Likewise.
4670
4671 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
4672
4673         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
4674         arguments to 64-bit boundaries on 64-bit ABIs.
4675
4676 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
4677
4678         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
4679
4680 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
4681
4682         * c-decl.c (grokdeclarator): Handle type being a typedef for an
4683         invalid type.
4684
4685 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
4686
4687         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
4688         * config/sparc/sparc_bi.h: Remove file.
4689         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
4690
4691 2002-01-30  Richard Henderson  <rth@redhat.com>
4692
4693         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
4694
4695 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
4696
4697         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
4698
4699 2002-01-30  Jason Merrill  <jason@redhat.com>
4700
4701         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
4702         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
4703         (reg_save): Use DW_CFA_offset_extended_sf instead.
4704
4705         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
4706
4707 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
4708
4709         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
4710         in cselib_lookup.
4711
4712 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
4713
4714         * rs6000.md ("*call_value_local32"): Remove constraints.
4715         ("*call_value_local64"): Same.
4716         ("*call_value_indirect_nonlocal_aix32"): Same.
4717         ("*call_value_nonlocal_aix32"): Same.
4718         ("*call_value_indirect_nonlocal_aix64"): Same.
4719         ("*call_value_nonlocal_aix64"): Same.
4720         ("*call_value_nonlocal_sysv"): Same.
4721
4722 2002-01-29  Richard Henderson  <rth@redhat.com>
4723
4724         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
4725
4726 2002-01-29  Richard Henderson  <rth@redhat.com>
4727
4728         * expr.c (force_operand): Ignore flag_pic for detecting pic
4729         address loads.
4730         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
4731         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
4732         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
4733         instead of open-coded loop.
4734         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
4735         be fixed when in use.
4736
4737 2002-01-29  Richard Henderson  <rth@redhat.com>
4738
4739         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
4740         * sched-rgn.c (propagate_deps): Update them.
4741         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
4742         clobbers list when either gets too long.
4743
4744 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
4745
4746         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
4747         and INDEX_REGS the same as GENERAL_REGS.
4748         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
4749
4750 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4751
4752         * tree.c (build_nonstandard_integer_type): Correct prototype.
4753
4754 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
4755
4756         * config/s390/s390.md (movstrsico, movstrdix_64,
4757         movstrsix_31): Remove, replace by ...
4758         (movstrdi_short, movstrsi_short, movstrdi_long,
4759         movstrsi_long): ... these.  New.
4760         (movstrdi, movstrsi): Adapt.
4761
4762         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
4763         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
4764         Remove unnecessary CC clobber.
4765         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
4766         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
4767
4768         (divmoddi4): Don't partially initialize TImode register.
4769
4770 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
4771
4772         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
4773
4774 2002-01-29  Richard Henderson  <rth@redhat.com>
4775
4776         * flow.c (print_rtl_and_abort): Remove.
4777         (print_rtl_and_abort_fcn): Remove.
4778         (verify_local_live_at_start): Use dump_bb instead.
4779         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
4780         (verify_wide_reg_1): Return 2 on mode test failure.
4781
4782 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4783
4784         PR c/3325, c/3326, c/2511, c/3347
4785         * c-decl.c (enum_decl_context): Remove BITFIELD.
4786         (grokdeclarator): Take bitfield width as an input.
4787         Ensure bitfields are given the correct type.  Perform
4788         bitfield width validation with build_bitfield_integer_type
4789         rather than waiting for finish_struct.
4790         (grok_typename, grok_typename_in_parm_context, start_decl,
4791         push_parmdecl, grokfield, start_function): Update calls to
4792         grokdeclarator.
4793         (build_bitfield_integer_type): New function.
4794         (finish_struct): Move bitfield validation to grokdeclarator
4795         and build_bitfield_integer_type.
4796         * tree.c (build_nonstandard_integer_type): New function.
4797         * tree.h (build_nonstandard_integer_type): New prototype.
4798 objc:
4799         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
4800
4801 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
4802
4803         PR other/1502:
4804         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
4805         don't ignore unrecognized -W* options.
4806         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
4807         * cpplib.h (cpp_handle_option): Adjust prototype.
4808         * c-decl.c (c_decode_options): Pass 0 as last argument to
4809         cpp_handle_option.
4810
4811         PR c/2896:
4812         * gcc.c (cpp_unique_options): Split from cpp_options.
4813         (cpp_options): Source cpp_unique_options.
4814         (default_compilers): Use cpp_unique_options instead of cpp_options
4815         when used together with cc1_options.
4816         (static_specs): Add cpp_unique_options.
4817         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
4818         when used together with cc1_options.
4819
4820 2002-01-29  Kazu Hirata  <kazu@hxi.com>
4821
4822         * config/h8300/h8300-protos.h: Update the prototype of
4823         output_a_shift.
4824         * config/h8300/h8300.c (output_a_shift): Remove an unused
4825         argument 'insn'.  Remove redundant code.
4826         * config/h8300/h8300.md: Adust to the new prototype of
4827         output_a_shift.
4828
4829 2002-01-29  Kazu Hirata  <kazu@hxi.com>
4830
4831         * config/h8300/h8300-protos.h: Update the prototypes of
4832         emit_a_rotate and expand_a_rotate.
4833         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
4834         first argument to 'enum rtx_code'.
4835         (expand_a_rotate): Likewise.
4836
4837 2002-01-28  Kazu Hirata  <kazu@hxi.com>
4838
4839         * config/h8300/h8300-protos.h: Update the prototype of
4840         output_simode_bld.
4841         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
4842         'log2'.
4843         * config/h8300/h8300.md: Adjust to the new prototype.
4844
4845 2002-01-28  Kazu Hirata  <kazu@hxi.com>
4846
4847         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
4848         redundant code.
4849
4850 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4851
4852         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
4853         is a fixed register before returning pic_offset_table_rtx.
4854         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
4855         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
4856
4857 2002-01-28  Jason Merrill  <jason@redhat.com>
4858
4859         * dwarf2.h: Sync with src version.
4860
4861 2002-01-28  Paul Koning  <pkoning@equallogic.com>
4862
4863         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
4864         BT_FN_VOID_PTR_VAR.
4865         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
4866         * doc/extend.texi (__builtin_prefetch): Update documentation:
4867         first argument is now const void ptr.
4868
4869 2002-01-28  Kazu Hirata  <kazu@hxi.com>
4870
4871         * config/h8300/h8300-protos.h: Remove an unused prototype.
4872
4873 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
4874
4875         * toplev.c (lang_independent_init): Round up identifier size.
4876
4877 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
4878
4879         * config.gcc: Revert previous change.
4880
4881 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
4882
4883         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
4884
4885 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
4886
4887         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
4888         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
4889         other non-elf netbsd config frags.
4890         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
4891         collect2 will does that.
4892         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
4893         shared-lib frobbing will work.
4894
4895 2002-01-28  Kazu Hirata  <kazu@hxi.com>
4896
4897         * config/h8300/h8300.h: Fix formatting.
4898         * config/h8300/h8300.md: Likewise.
4899
4900 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
4901
4902         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
4903         the old, removed AAA_standards fix.
4904         * fixinc/fixincl.x: Rebuilt.
4905
4906 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
4907
4908         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
4909         atexit call in crtbegin, hooked in after call to frame_dummy;
4910         register EH before registering __fini__start.
4911
4912 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
4913
4914         * config/rs6000/altivec.h: Remove spurious semicolons.
4915
4916 2002-01-27  Kazu Hirata  <kazu@hxi.com>
4917
4918         * config/h8300/h8300.md: Replace dead bit extraction patterns
4919         with ones that work.
4920
4921 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4922
4923         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
4924         if not STRICT_ALIGNMENT.
4925         * rtl.h (MEM_ALIGN): Likewise.
4926
4927 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4928
4929         * doc/invoke.texi (-fdump-translation-unit): Revert this
4930         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4931
4932 2002-01-27  Kazu Hirata  <kazu@hxi.com>
4933
4934         * config/h8300/h8300.md (define_constants): New.
4935         (anonymous patterns) Use defined constants appropriately.
4936
4937 2002-01-27  Kazu Hirata  <kazu@hxi.com>
4938
4939         * config/h8300/h8300.c (function_arg): Remove redundant code.
4940
4941 2002-01-26  Richard Henderson  <rth@redhat.com>
4942
4943         * sched-deps.c (reg_pending_uses_head): New.
4944         (reg_pending_barrier): Rename from reg_pending_sets_all.
4945         (find_insn_list): Don't mark inline.
4946         (find_insn_mem_list): Remove.
4947         (add_dependence_list, add_dependence_list_and_free): New.
4948         (flush_pending_lists): Replace only_write param with separate
4949         for_read and for_write parameters.  Update all callers.  Use
4950         add_dependence_list_and_free.
4951         (sched_analyze_1): Do not add reg dependencies here; just set
4952         the pending bits.  Use add_dependence_list.
4953         (sched_analyze_2): Likewise.
4954         (sched_analyze_insn): Replace schedule_barrier_found with
4955         reg_pending_barrier.  Add all dependencies for pending reg
4956         uses, sets, and clobbers.
4957         (sched_analyze): Don't add reg dependencies for calls, just
4958         set pending bits.  Use regs_invalidated_by_call.  Treat
4959         sched_before_next_call as a normal list, not a fake insn.
4960         (init_deps): No funny init for sched_before_next_call.
4961         (free_deps): Free pending mems lists.  Don't zero reg_last.
4962         (init_deps_global): Init reg_pending_uses.
4963         (finish_deps_global): Free it.
4964         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
4965         (find_insn_mem_list): Remove.
4966         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
4967         (propagate_deps): Use them.  Zero temp mem lists.
4968
4969 2002-01-26  Richard Henderson  <rth@redhat.com>
4970
4971         * Makefile.in (CRTSTUFF_CFLAGS): New.
4972         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
4973         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
4974         crtstuff.c instead of alpha assembly version.
4975         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
4976         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
4977         not FORCE_{INIT,FINI}_SECTION_ALIGN.
4978         (__do_global_dtors_aux): Mark used.
4979         (frame_dummy, __do_global_ctors_aux): Mark used.
4980         (fini_dummy, init_dummy): Remove.
4981
4982         * config/alpha/crtbegin.asm: Remove file.
4983         * config/alpha/crtend.asm: Remove file.
4984         * config/alpha/t-crtbe: Remove file.
4985         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
4986         (LINK_EH_SPEC): New.
4987
4988         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
4989         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
4990         calling constructors.
4991         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
4992
4993         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
4994         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
4995         CRT_END_INIT_DUMMY hack.
4996         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
4997         FORCE_{INIT,FINI}_SECTION_ALIGN.
4998
4999         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
5000         FORCE_{INIT,FINI}_SECTION_ALIGN.
5001
5002         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
5003         invocation sequence.
5004         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
5005
5006         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
5007         (FORCE_CODE_SECTION_ALIGN): New.
5008
5009 2002-01-26  Richard Henderson  <rth@redhat.com>
5010
5011         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
5012
5013 2002-01-26  Richard Henderson  <rth@redhat.com>
5014
5015         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
5016         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
5017
5018 2002-01-26  Kazu Hirata  <kazu@hxi.com>
5019
5020         * config/h8300/h8300.md: Remove bit extraction patterns that
5021         cannot be triggered.
5022         Restrict each bit extraction pattern to a variant on which the
5023         pattern is tested.
5024
5025 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
5026
5027         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
5028
5029 2002-01-26  Kazu Hirata  <kazu@hxi.com>
5030
5031         * config/h8300/h8300.md: Remove bit test patterns that cannot
5032         be triggered.
5033         Restrict each bit test pattern to a variant on which the
5034         pattern is tested.
5035
5036 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5037
5038         * builtins.c (expand_builtin_strncat): Remove redundant check for
5039         INTEGER_CST.
5040
5041 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
5042
5043         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
5044         default setting.
5045         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
5046         existing setting.
5047
5048 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
5049
5050         * dbxout.c (dbxout_init): Use assemble_name rather than just
5051         stripping off the first character.
5052         (dbxout_source_file): Likewise.
5053
5054 2002-01-25  DJ Delorie  <dj@redhat.com>
5055
5056         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
5057         using rtx_equal_p, not by comparing pointers.
5058
5059 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
5060
5061         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
5062         for PIC_OFFSET_TABLE_REGNUM.
5063         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
5064
5065 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
5066
5067         * config.gcc (x86_64-*-freebsd*): New target.
5068         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
5069         value.
5070         (i[34567]86-*-freebsd*): Don't include svr4.h.
5071         * config/i386/freebsd64.h: New file.
5072
5073 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
5074
5075         * config/alpha/x-vms (version): Make static.
5076
5077         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
5078         in previous checkin.
5079
5080         * Makefile.in (install-headers-cp): New target.
5081         * config.gcc (alpha-dec-*vms*): Install headers with
5082         install-headers-cp
5083
5084 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
5085
5086         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
5087         avoid it's copies.
5088
5089 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5090
5091         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
5092         of compare_tree_int.
5093         (expand_builtin_strncat): Likewise.
5094         * c-decl.c (finish_struct): Use tree_low_cst.
5095         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
5096         * tree.c (compare_tree_int): Likewise.
5097
5098 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
5099
5100         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
5101         adjustments even if they are implemented by more than two insns.
5102
5103 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
5104
5105         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
5106         * df.h (struct ref): Kill B.
5107         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
5108
5109         * basic-block.h (PROP_EQUAL_NOTES): New flag.
5110         * flow.c (propagate_one_insn): Use it.
5111         (mark_used_regs): Handle NIL.
5112
5113 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
5114
5115         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
5116         to help folding.
5117
5118 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
5119
5120         * rs6000.md (prefetch): Make address V4SI mode so that the address
5121         is restricted to legitimate form for instruction.
5122
5123 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
5124
5125         * doc/install.texi (xtensa-*-elf): New target.
5126         (xtensa-*-linux*): New target.
5127         * doc/contrib.texi: Add myself.
5128
5129 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
5130
5131         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
5132         purpose register to hold an SImode (or smaller) value.
5133
5134 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
5135
5136         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
5137         registry only.
5138         * crtstuff.c: Likewise.
5139
5140 2002-01-25  Kazu Hirata  <kazu@hxi.com>
5141
5142         * config/h8300/h8300.md (negation patterns): Tighten
5143         predicates to register_operand.
5144
5145 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
5146
5147         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
5148         mode, not Pmode.
5149
5150         * builtins.c (expand_builtin_prefetch): Same.
5151
5152 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
5153
5154         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
5155         modes.
5156
5157 2002-01-24  Kazu Hirata  <kazu@hxi.com>
5158
5159         * config/h8300/h8300.c (print_operand): Remove support for
5160         operand character 'A'.
5161         * config/h8300/h8300.md (three anonymous patterns): Replace
5162         operand character 'A' with either 'T' or 'S'.
5163
5164 2002-01-24  Kazu Hirata  <kazu@hxi.com>
5165
5166         * config/h8300/h8300.c (print_operand): Remove support for
5167         operand character 'U'.
5168
5169 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
5170
5171         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
5172
5173 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
5174
5175         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
5176         values to be assigned to the stack pointer.
5177
5178 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
5179
5180         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
5181         to const_double needs to be done right for big-endian systems.
5182
5183 2002-01-24  Jason Merrill  <jason@redhat.com>
5184
5185         PR c++/2432
5186         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
5187         to can_throw_internal.
5188
5189 2002-01-23  Richard Henderson  <rth@redhat.com>
5190
5191         * fold-const.c (fold): Change UINT_MAX test to check vs precision
5192         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
5193
5194 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
5195
5196         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
5197         (symGOT2reg): Use them, then set as GOT value as unchanging.
5198         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
5199         as a temporary, if possible.
5200         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
5201         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
5202
5203 2002-01-23  Kazu Hirata  <kazu@hxi.com>
5204
5205         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
5206         accept to accept 0x80 as operands[2].
5207
5208 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
5209
5210         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
5211
5212 2002-01-23  Richard Henderson  <rth@redhat.com>
5213
5214         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
5215
5216 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
5217
5218         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
5219         (parmlist_or_identifiers_1): Verify that only a parmlist follows
5220         an attribute.
5221
5222 2002-01-23  Richard Henderson  <rth@redhat.com>
5223
5224         * expr.c (move_by_pieces_1): Extend size before negation.
5225
5226         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
5227         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
5228         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
5229         * config/m68k/t-m68kelf: Likewise.
5230
5231 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
5232
5233         * config/xtensa/elf.h: New file.
5234         * config/xtensa/lib1funcs.asm: New file.
5235         * config/xtensa/lib2funcs.S: New file.
5236         * config/xtensa/linux.h: New file.
5237         * config/xtensa/t-xtensa: New file.
5238         * config/xtensa/xtensa-config.h: New file.
5239         * config/xtensa/xtensa-protos.h: New file.
5240         * config/xtensa/xtensa.c: New file.
5241         * config/xtensa/xtensa.h: New file.
5242         * config/xtensa/xtensa.md: New file.
5243         * config.gcc (xtensa-*-elf*): New target.
5244         (xtensa-*-linux*): New target.
5245         * cse.c (canon_hash): Compare rtx pointers instead of register
5246         numbers.  This is required for the Xtensa port.
5247         * integrate.c (copy_insn_list): Handle case where the static
5248         chain is in memory and the memory address has to be copied to
5249         a register.
5250         * doc/invoke.texi (Option Summary): Add Xtensa options.
5251         (Xtensa Options): New node.
5252         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
5253
5254 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
5255
5256         * diagnostic.c (internal_error): Do ICE suppression only
5257         when ENABLE_CHECKING is not defined.
5258
5259         * c-typeck.c (require_complete_type): Return error_mark_node
5260         if type is error_mark_node.
5261
5262 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
5263
5264         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
5265         -Os and issue a warning.
5266
5267 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
5268
5269         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
5270         current (lack of) need for host configuration by hand.
5271
5272         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
5273         references.  Documentation of some target macros moved from
5274         hostconfig.texi to tm.texi.
5275
5276 2002-01-23  Will Cohen  <wcohen@redhat.com>
5277
5278         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
5279         defined.
5280
5281 2002-01-23  Kazu Hirata  <kazu@hxi.com>
5282
5283         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
5284         operand[3].
5285
5286 2002-01-23  Jason Merrill  <jason@redhat.com>
5287
5288         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
5289
5290         * function.c (assign_parms): Don't put args of inline functions
5291         into registers when not optimizing.
5292
5293 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
5294
5295         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
5296         (prologue_use): New pattern.
5297         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
5298         preference to gen_rtx_USE.
5299         (thumb_expand_prologue): Use gen_prologue_use in preference to
5300         gen_rtx_USE.
5301         (thumb_expand_epilogue): Use gen_prologue_use in preference to
5302         gen_rtx_USE.
5303
5304 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
5305
5306         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
5307
5308 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5309
5310         PR c/3504
5311         * doc/extend.texi: Correct documentation of __alignof__.
5312
5313 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
5314
5315         * params.h: Rename arguments of DEFPARAM so that it will be
5316         recognized as a translation keyword.
5317
5318 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
5319
5320         * extend.texi: Document altivec functions.
5321         Fix N-bit adjectives in X86 builtin documentation.
5322
5323 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
5324
5325         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
5326         auto_inc_dec values.
5327
5328 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
5329
5330         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
5331         after backslash.
5332         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
5333
5334 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
5335
5336         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
5337
5338 2002-01-22  Richard Henderson  <rth@redhat.com>
5339
5340         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
5341         copy_insn not copy_rtx.
5342
5343 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
5344
5345         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
5346         "nonzero" as that might add "1" bits.  Ensure "constop" is
5347         properly sign extened.
5348         (force_to_mode): Tweak for sign extended constop.
5349
5350 2002-01-22  Richard Henderson  <rth@redhat.com>
5351
5352         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
5353         for_each_rtx instead of assuming we're already looking at the MEM.
5354         (split_small_symbolic_mem_operand): Likewise.
5355         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5356         * config/alpha/alpha.md (small symbolic memory splitters): Update.
5357
5358 2002-01-22  Richard Henderson  <rth@redhat.com>
5359
5360         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
5361         sequence number for the literal.
5362         (divmoddi_internal_er): Likewise.
5363
5364 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5365
5366         PR java/4972
5367         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
5368         in LIBICONV variable.
5369         * configure: Regenerated.
5370
5371 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
5372
5373         * dependence.c (build_def_use): Remove array_idx.
5374
5375         * dwarfout.c (last_filename): Remove.
5376         (output_compile_unit_die): Remove last_filename.
5377
5378 2002-01-22  Roger Sayle  <roger@eyesopen.com>
5379             Richard Henderson  <rth@redhat.com>
5380
5381         PR opt/3640
5382         * fold-const.c (fold): Optimize unsigned comparisons against
5383         UINT_MAX (and similar unsigned constants).
5384
5385 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
5386
5387         * Makefile.in (loop.o): Depend on OPTABS_H.
5388         * loop.c (emit_prefetch_instructions): Check the prefetch operand
5389         against the predicate.
5390
5391         PR target/5379
5392         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
5393         for the address operand.
5394
5395 2002-01-22  Richard Henderson  <rth@redhat.com>
5396
5397         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
5398
5399 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5400
5401         PR other/5450
5402         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
5403         preprocessor flags.
5404
5405 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
5406
5407         * config.gcc (x86_64-*-netbsd*): New target.
5408         * config/i386/netbsd64.h: New file.
5409
5410 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
5411
5412         * regrename.c (kill_value): Fix typo.
5413
5414 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
5415
5416         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
5417
5418         * config/rs6000/rs6000.h: Same.
5419
5420         * function.c (instantiate_virtual_regs): Remove
5421         STARTING_FRAME_PHASE.
5422         (assign_stack_local_1): Same.
5423         Calculate frame phase.
5424
5425 2002-01-22  Nick Clifton  <nickc@redhat.com>
5426
5427         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
5428         variable declaration to outer scope in order to simplify
5429         future extensions.
5430         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
5431         arm_hard_regno_mode_ok.
5432         * config/arm/arm-protos.h: Add a prototype for
5433         arm_hard_regno_mode_ok.
5434         * config/arm/arm.c (soft_df_operand): Remove now redundant
5435         check for DImode values using IP_REGNUM.
5436         (nonimmediate_soft_df_operand): Remove now redundant check for
5437         DImode values using IP_REGNUM.
5438         (arm_hard_regno_mode_ok): New function. New check: make sure
5439         that DImode values are not stored in IP_REGNUM.
5440
5441         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
5442         note with a USE.
5443         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
5444
5445 2002-01-22  Jason Merrill  <jason@redhat.com>
5446
5447         * c-semantics.c (genrtl_compound_stmt): Only check nesting
5448         consistency if this COMPOUND_STMT is scoped.
5449
5450 2002-01-22  Kazu Hirata  <kazu@hxi.com>
5451
5452         * predict.c: Fix formatting.
5453         * print-tree.c: Likewise.
5454         * protoize.c: Likewise.
5455         * real.h: Likewise.
5456         * rtl.h: Likewise.
5457         * sbitmap.h: Likewise.
5458         * scan.c: Likewise.
5459         * sched-deps.c: Likewise.
5460         * sched-vis.c: Likewise.
5461         * sdbout.c: Likewise.
5462         * sibcall.c: Likewise.
5463         * ssa.c: Likewise.
5464         * ssa-ccp.c: Likewise.
5465         * ssa-dce.c: Likewise.
5466         * stmt.c: Likewise.
5467         * stor-layout.c: Likewise.
5468         * system.h: Likewise.
5469
5470 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5471
5472         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
5473         if fits in bounds of base type.
5474
5475         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
5476         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
5477         (add_bound_info, default): If can't find a context, make a
5478         SAVE_EXPR.
5479         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
5480
5481 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
5482
5483         * c-typeck.c (parser_build_binary_op): If result from
5484         build_binary_op is ERROR_MARK just return error_mark_node without
5485         further processing.
5486
5487 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
5488
5489         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
5490         Split a.out-specific bits into...
5491         * config/netbsd-aout.h: ...this.
5492         * config/netbsd-elf.h: New file.
5493         * config/alpha/netbsd-elf.h: Remove.
5494         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
5495         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
5496         (STARTFILE_SPEC): Remove redundant definition.
5497         (ENDFILE_SPEC): Likewise.
5498         (LINK_SPEC): Likewise.
5499         (CPP_SPEC): Likewise.
5500         (ASM_SPEC): Likewise.
5501         (LIB_SPEC): Likewise.
5502         (SWITCH_TAKES_ARG): Likewise.
5503         (TARGET_MEM_FUNCTIONS): Likewise.
5504         (CPP_PREDEFINES): Redefine.
5505         (ASM_FINAL_SPEC): Remove redefinition.
5506         (ASM_COMMENT_START): Redefine.
5507         (FUNCTION_PROFILER): Define.
5508         (TARGET_VERSION): Redefine.
5509         Comment and formatting cleanup.
5510         * config/i386/netbsd.h: Include <netbsd-aout.h>.
5511         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
5512         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
5513         big- or little-endian.
5514         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
5515         * config.gcc (*-*-netbsd*): Add definitions common to all
5516         NetBSD configs.
5517         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
5518         gnu_ld definitions.  Add netbsd-elf.h to and remove
5519         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
5520         tmake_file, and don't lose previous tmake_file contents.
5521         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
5522         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
5523         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
5524         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
5525         (mipsel-*-netbsd*): Rename this to...
5526         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
5527         mips/little.h to tm_file for mips*el-*.
5528         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
5529         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
5530         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
5531
5532 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5533
5534         * pa-protos.h (reg_before_reload_operand): New function prototype.
5535         * pa.c (reg_before_reload_operand): New function implementation.
5536         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
5537         contraints to "*m".
5538
5539 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5540
5541         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
5542
5543 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5544
5545         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
5546         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
5547         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
5548         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
5549         (ENDFILE_SPEC): Undefine.
5550         (STARTFILE_SPEC): Redefine for PA.
5551
5552 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5553
5554         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
5555
5556 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
5557
5558         * config.gcc: Add entries to supported PowerPC --with-cpu
5559         types.
5560
5561 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
5562
5563         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
5564         true for 64-bit mode only SSE registers in 32-bit mode.
5565
5566 2002-01-21  Kazu Hirata  <kazu@hxi.com>
5567
5568         * unwind-dw2.c: Fix formatting.
5569         * unwind-dw2-fde.c: Likewise.
5570         * unwind-dw2-fde.h: Likewise.
5571         * unwind-pe.h: Likewise.
5572         * varasm.c: Likewise.
5573         * varray.h: Likewise.
5574
5575 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
5576
5577         Remove workaround for register stack overwrite bug in mmix.
5578         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
5579         support for TARGET_REG_STACK_FILL_BUG.
5580         * config/mmix/mmix.h: Remove member has_call_without_parameters.
5581         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
5582         Delete.
5583         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
5584         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
5585         -mno-reg-stack-fill-bug-workaround.
5586         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
5587         machine member has_call_without_parameters.
5588         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
5589         -mreg-stack-fill-bug-workaround and
5590         -mno-reg-stack-fill-bug-workaround.
5591         (MMIX Options): Ditto.
5592
5593 2002-01-21  Kazu Hirata  <kazu@hxi.com>
5594
5595         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
5596         as appropriate.
5597         Remove redundant code.
5598
5599 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5600
5601         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
5602         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
5603         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
5604         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
5605         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
5606         out target macro definitions and non-target-specific comments
5607         mostly taken from old versions of the manual.
5608
5609 2002-01-20  Kazu Hirata  <kazu@hxi.com>
5610
5611         * config/h8300/h8300.h: Fix comment formatting.
5612         * config/ia64/aix.h: Likewise.
5613         * config/ia64/ia64-protos.h: Likewise.
5614         * config/ia64/ia64.c: Likewise.
5615         * config/ia64/ia64.h: Likewise.
5616         * config/ia64/ia64intrin.h: Likewise.
5617         * config/ia64/linux.h: Likewise.
5618         * config/ia64/unwind-aix.c: Likewise.
5619         * config/ia64/unwind-ia64.c: Likewise.
5620
5621 2002-01-20  Kazu Hirata  <kazu@hxi.com>
5622
5623         * config/h8300/h8300.c: Revise comments about shift code.
5624
5625 2002-01-20  Kazu Hirata  <kazu@hxi.com>
5626
5627         * config/h8300/h8300.c (function_arg): Update a comment.
5628
5629 2002-01-20  Kazu Hirata  <kazu@hxi.com>
5630
5631         * config/h8300/h8300.md: Update the comments at the beginning
5632         of the file.
5633
5634 2002-01-20  Kazu Hirata  <kazu@hxi.com>
5635
5636         * config/i370/i370.c: Fix comment formatting.
5637         * config/i370/i370.h: Likewise.
5638         * config/i370/i370.md: Likewise.
5639         * config/i370/linux.h: Likewise.
5640
5641 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5642
5643         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
5644
5645         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
5646         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
5647         in incomplete case.
5648
5649 2002-01-20  Graham Stott  <grahams@redhat.com>
5650
5651         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
5652
5653 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5654
5655         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
5656
5657 2002-01-19  Tom Rix  <trix@redhat.com>
5658
5659         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
5660
5661 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
5662
5663         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
5664
5665         * function.c (assign_stack_local_1): Adjust x_frame_offset with
5666         STARTING_FRAME_PHASE.
5667         (STARTING_FRAME_PHASE): New.
5668         (instantiate_virtual_regs): Check saneness of
5669         STARTING_FRAME_PHASE.
5670
5671         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
5672
5673 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
5674
5675         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
5676
5677 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5678
5679         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
5680         be used for bootstrapping GCC 3.0.
5681
5682 2002-01-18  Kazu Hirata  <kazu@hxi.com>
5683
5684         * config/h8300/h8300.md: Fix an insn length.
5685
5686 2002-01-18  Kazu Hirata  <kazu@hxi.com>
5687
5688         * bitmap.h: Fix comment formatting.
5689         * combine.c: Likewise.
5690         * cppfiles.c: Likewise.
5691         * c-pragma.h: Likewise.
5692         * c-typeck.c: Likewise.
5693         * df.c: Likewise.
5694         * dwarf2out.c: Likewise.
5695         * function.c: Likewise.
5696         * gcc.c: Likewise.
5697         * genattrtab.c: Likewise.
5698         * gthr-win32.h: Likewise.
5699         * haifa-sched.c: Likewise.
5700         * predict.c: Likewise.
5701         * rtlanal.c: Likewise.
5702         * rtl.h: Likewise.
5703         * unwind-dw2-fde.h: Likewise.
5704         * unwind-pe.h: Likewise.
5705         * vmsdbgout.c: Likewise.
5706
5707 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5708
5709         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
5710         if type_required and passed decl.
5711
5712 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
5713
5714         * config.gcc (cpu_type): Include altivec.h in powerpc
5715         extra_headers.
5716         Same for darwin.
5717
5718         * config/rs6000/altivec.h: New.
5719
5720 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
5721
5722         * doc/install.texi (*-ibm-aix*): Update assembler and exception
5723         handling information.
5724         * doc/trouble.texi (Interoperation): Add libstdc++ information
5725         for AIX.
5726         (Misunderstandings): Add template instantiation and static template
5727         member information for AIX.
5728
5729 2002-01-17  Jason Merrill  <jason@redhat.com>
5730
5731         * dbxout.c (dbxout_type): Support const and volatile.
5732
5733         * except.c (add_partial_entry): Remove backwards compatibility code.
5734         (end_protect_partials): Likewise.
5735
5736 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
5737
5738         * config/ia64/ia64.md (prologue_use): New.
5739         * config/ia64/ia64.c (ia64_expand_prologue): Use
5740         gen_prologue_use instead of gen_rtx_USE.
5741         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
5742         as CODE_FOR_pred_rel_mutex.
5743         (ia64_sched_reorder2): Likewise.
5744
5745 2002-01-16  Eric Christopher  <echristo@redhat.com>
5746
5747         * config/mips/r3900.h: Reformat.
5748         (SUBTARGET_CPP_SIZE_SPEC): Remove.
5749         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
5750         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
5751         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
5752         * config/mips/t-elf: Remove mips3 multilib.
5753
5754 2002-01-16  H.J. Lu <hjl@gnu.org>
5755
5756         * config/mips/linux.h: Include "mips/abi64.h".
5757
5758 2002-01-16  H.J. Lu <hjl@gnu.org>
5759
5760         * config/mips/t-linux: New.
5761
5762         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
5763
5764         * config/mips/linux.h: Don't include "gofast.h".
5765         (INIT_SUBTARGET_OPTABS): Removed.
5766
5767 2002-01-16  Kazu Hirata  <kazu@hxi.com>
5768
5769         * config/h8300/h8300-protos.h: Replace emit_a_shift with
5770         output_a_shift.
5771         * config/h8300/h8300.c: Likewise.
5772         * config/h8300/h8300.md: Likewise.
5773
5774 2002-01-16  Kazu Hirata  <kazu@hxi.com>
5775
5776         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
5777         spaces after an opcode name.
5778         (pushqi1_h8300hs): Likewise.
5779         (pushhi1_h8300hs): Likewise.
5780
5781 2002-01-16  Kazu Hirata  <kazu@hxi.com>
5782
5783         * doc/extend.texi: Replace "option" with "attribute"
5784         appropriately.
5785
5786 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
5787
5788         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
5789         (and:DI () (const_int -8)).
5790         (split_small_symbolic_mem_operand): Split
5791         (mem (and:DI () (const_int -8)).
5792
5793 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
5794
5795         PR target/5309:
5796         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
5797         same way as TYPE_IMUL.
5798         (ultrasparc_sched_reorder): Likewise.
5799         * config/sparc/sparc.md (type): Add comment to update
5800         ultrasparc_sched_reorder when making changes.
5801
5802 2002-01-16  Kazu Hirata  <kazu@hxi.com>
5803
5804         * doc/invoke.texi: Change the dump file name of block
5805         reordering pass from 28.bbro to 29.bbro.
5806         Mention -dk option.
5807
5808 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
5809
5810         * i386.md (minsf splitter): Fix pasto.
5811
5812 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
5813
5814         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
5815         to frame pointer initialisation instruction.
5816         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
5817         initialisation instruction.
5818         (soft_df_operand): Do not accept the IP register.
5819         (nonimmediate_soft_df_operand): Do not accept the IP register.
5820
5821 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
5822
5823         PR target/5357:
5824         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
5825         MASK_V8 being both set.
5826
5827 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
5828
5829         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
5830         insn for GOT register; add REG_MAYBE_DEAD notes instead.
5831         config/s390/s390.md (call, call_value): Add GOT register to
5832         CALL_INSN_FUNCTION_USAGE where needed.
5833         (call_exp, call_value_exp): New.
5834
5835 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
5836
5837         * config/arm/arm.c: General formatting tidy up.
5838
5839 2002-01-16  Graham Stott  <grahams@redhat.com>
5840
5841         * calls.c (try_to_integrate): Use "(size_t)" intermediate
5842         cast and when casting an integer literal to "rtx" pointer.
5843         (expand_call): Likewise.
5844         * flow.c (try_pre_increment): Likewise.
5845         (find_use_as_address): Likewise.
5846         * integrate.c (expand_iline_function): Likewise.
5847         * regmove.c (try_auto_increment): Likewise.
5848
5849 2002-01-16  Graham Stott  <grahams@redhat.com>
5850
5851         * sched-rgn.c (passed): Use sbitmap_free.
5852         (header): Likewise.
5853         (inner): Likewise.
5854         (in_queue): Likewise.
5855         (in_stack): Likewise.
5856
5857 2002-01-15  Eric Christopher  <echristo@redhat.com>
5858
5859         * flow.c (propagate_one_insn): Change to use fatal_insn.
5860
5861 2002-01-15  Kazu Hirata  <kazu@hxi.com>
5862
5863         * expmed.c (extract_fixed_bit_field): Remove unused code.
5864         * system.h: Poison SLOW_ZERO_EXTEND.
5865         * doc/tm.texi: Remove.
5866         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
5867         * config/arm/arm.h: Likewise.
5868         * config/avr/avr.h: Likewise.
5869         * config/clipper/clipper.h: Likewise.
5870         * config/convex/convex.h: Likewise.
5871         * config/d30v/d30v.h: Likewise.
5872         * config/dsp16xx/dsp16xx.h: Likewise.
5873         * config/elxsi/elxsi.h: Likewise.
5874         * config/fr30/fr30.h: Likewise.
5875         * config/h8300/h8300.h: Likewise.
5876         * config/i370/i370.h: Likewise.
5877         * config/i386/i386.h: Likewise.
5878         * config/m68k/m68k.h: Likewise.
5879         * config/mips/mips.h: Likewise.
5880         * config/ns32k/ns32k.h: Likewise.
5881         * config/pdp11/pdp11.h: Likewise.
5882         * config/pj/pj.h: Likewise.
5883         * config/s390/s390.h: Likewise.
5884         * config/sh/sh.h: Likewise.
5885         * config/stormy16/stormy16.h: Likewise.
5886         * config/v850/v850.h: Likewise.
5887         * config/vax/vax.h: Likewise.
5888         * config/we32k/we32k.h: Likewise.
5889
5890 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
5891
5892         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
5893         (altivec_lvsl): Change constraint to b.
5894         (altivec_lvsr): Same.
5895         (altivec_lvebx): Same.
5896         (altivec_lvehx): Same.
5897         (altivec_lvewx): Same.
5898         (altivec_lvxl): Same.
5899         (altivec_lvx): Same.
5900         (altivec_stvx): Add parallel.
5901         (altivec_stvxl): Same.
5902         (altivec_stvehx): Same.
5903         (altivec_stvebx): Same.
5904         (altivec_stvebx): Same.
5905
5906 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
5907
5908         * config.gcc: Change altivec.h to altivec-defs.h.
5909
5910         * config/rs6000/altivec.h: Delete.
5911
5912         * config/rs6000/altivec-defs.h: Add.
5913
5914 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5915
5916         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
5917         and UMOD modes.
5918
5919         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
5920         less than or equal to eight bytes.
5921
5922         * vax.md (andsi3): Remove constraints and change SET destination
5923         operand type to nonimmediate_operand.
5924         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
5925         when it is a CONST_INT.
5926
5927 2002-01-15  Jason Merrill  <jason@redhat.com>
5928
5929         * c-common.def (FILE_STMT): New code.
5930         * c-common.c (statement_code_p): It's a statement.
5931         * c-common.h (stmt_tree_s): Add x_last_filename.
5932         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
5933         (last_expr_filename): New macro.
5934         * c-semantics.c (begin_stmt_tree): Initialize it.
5935         (add_stmt): If the filename changed, also insert a
5936         FILE_STMT.
5937         (expand_stmt): Handle seeing one.
5938
5939 2002-01-15  Eric Christopher  <echristo@redhat.com>
5940
5941         * flow.c (propagate_one_insn): Add error message and print out
5942         insn for debugging.
5943
5944 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
5945
5946         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
5947         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
5948         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
5949         TRAMPOLINE_ALIGNMENT.
5950         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
5951         to be in bits.
5952         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
5953         PCC_BITFIELD_TYPE_MATTERS.
5954         * config/interix.h (STDC_VALUE): Remove.  Use
5955         STDC_0_IN_SYSTEM_HEADERS.
5956         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
5957         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
5958         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
5959
5960 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5961
5962         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
5963         not work on this platform currently.
5964
5965 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
5966
5967         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
5968         readonly_warning in _().
5969
5970 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
5971
5972         * gcc.c (delete_if_ordinary): Backout previous change.
5973
5974 2002-01-15  Kazu Hirata  <kazu@hxi.com>
5975
5976         * config/h8300/h8300.c (print_operand): Remove support for
5977         unused operand characters.
5978
5979         * read-rtl.c: Fix formatting.
5980         * real.c: Likewise.
5981         * recog.c: Likewise.
5982         * regclass.c: Likewise.
5983         * regmove.c: Likewise.
5984         * reg-stack.c: Likewise.
5985         * reload1.c: Likewise.
5986         * rtlanal.c: Likewise.
5987
5988 2002-01-15  Kazu Hirata  <kazu@hxi.com>
5989
5990         * config/i386/i386.c: Fix formatting.
5991
5992 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
5993
5994         * c-typeck.c (process_init_element): Don't save_expr
5995         COMPOUND_LITERAL_EXPR if just its initializer will be used.
5996
5997 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
5998
5999         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
6000         emit optional traceback table if optimize_size or TARGET_ELF.
6001         * config/rs6000/rs6000.md (prefetch): New.
6002
6003 2002-01-15  Andreas Jaeger  <aj@suse.de>
6004
6005         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
6006
6007 2002-01-15  Kazu Hirata  <kazu@hxi.com>
6008
6009         * mips-tfile.c: Fix formatting.
6010
6011 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
6012
6013         * unroll.c (final_reg_note_copy): Fix previous commit.
6014
6015 2002-01-14  Kazu Hirata  <kazu@hxi.com>
6016
6017         * config/h8300/h8300-protos.h: Remove the prototype for
6018         eq_operator.
6019         * config/h8300/h8300.c (eq_operator): Remove.
6020
6021 2002-01-14  Richard Henderson  <rth@redhat.com>
6022
6023         * config/i386/i386.md (prefetch): Tidy.
6024         (prefetch_3dnow): Fix locality operand.
6025
6026 2002-01-14  Richard Henderson  <rth@redhat.com>
6027
6028         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
6029         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
6030
6031 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
6032
6033         * reload1.c (reload_combine): Pass reg_sum replacement through
6034         copy_rtx in loop performing multiple changes.
6035
6036 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
6037
6038         * except.c (remove_unreachable_regions): New.
6039         (free_eh_status): Clear exception_handler_labels.
6040         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
6041         (find_exception_handler_labels): Don't add the same label more than
6042         once.
6043         (remove_exception_handler_label): Don't die if
6044         find_exception_handler_labels hasn't been called for the current
6045         function yet.
6046
6047 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
6048
6049         * toplev.c (rest_of_compilation): Rebuild jump labels after
6050         gcse.
6051
6052 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
6053
6054         * doc/extend.texi: Move documentation of X86 built-in functions
6055         here.
6056         * doc/invoke.texi: From here.
6057         * doc/sourcebuild.texi: Document location of documentation for
6058         machine built-in functions.
6059
6060 2002-01-13  Christopher Faylor  <cgf@redhat.com>
6061
6062         * cppfiles.c (TEST_THRESHOLD): New macro.
6063         (SHOULD_MMAP): Ditto.
6064         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
6065         be used.
6066
6067 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
6068
6069         * unroll.c (final_reg_note_copy): Properly handle
6070         REG_LABEL
6071         (unroll_loops): Fix LOOP_CONDITION heuristics.
6072
6073 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
6074
6075         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
6076         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
6077
6078 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
6079
6080         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
6081         threaded loop.
6082
6083 2002-01-14  Tom Rix  <trix@redhat.com>
6084
6085         * config/rs6000/rs6000.md: Fix typo with sradi.
6086
6087 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
6088
6089         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
6090         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
6091         (clrstrdi, clrstrsi): Adapt callers.
6092
6093         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
6094
6095         (movti splitter): Never use register 0 as base register.
6096
6097 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
6098
6099         * combine.c (simplify_shift_const): Always generate new rtx
6100         for shift expression instead of reusing given expression.
6101
6102 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6103
6104         * config/alpha/alpha.c (alpha_expand_mov): Don't call
6105         alpha_legitimize_address unless mode is Pmode.
6106
6107 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
6108
6109         * doc/md.texi (Modifiers): Document the '*' constraint for the
6110         user.
6111
6112         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
6113         * doc/extend.texi (Function Attributes): 'interrupt' is valid
6114         for xstormy16 too.
6115
6116 2002-01-13  Richard Henderson  <rth@redhat.com>
6117
6118         * reload.c (find_reloads): Use a hard reg destination as reload reg
6119         for an input reload of the source.
6120
6121 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6122
6123         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
6124         more generic.
6125
6126 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
6127
6128         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
6129         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
6130
6131         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
6132
6133 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6134
6135         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
6136
6137 2002-01-12  Tom Rix  <trix@redhat.com>
6138
6139         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
6140         TARGET_POWERPC64.
6141
6142 2002-01-12  Richard Henderson  <rth@redhat.com>
6143
6144         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
6145
6146         * doc/invoke.texi: Update Alpha options.
6147
6148         * doc/invoke.texi: Update i386 built-in function lists.
6149
6150 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
6151
6152         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
6153         referencing outside.
6154
6155 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6156
6157         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
6158         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
6159         offsets, and change line folding.
6160         * optabs.c (expand_binop): Remove warnings.
6161         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
6162
6163 2002-01-12  Graham Stott <grahams@redhat.com>
6164
6165         * attribs.c (handle_deprecated_attribute): constify WHAT.
6166         * diagnostic.c (warn_deprecated_use): Add braces, fixes
6167         dangling else warning and constify WHAT.
6168         * except.h (struct function, struct inline_remap): Move
6169         struct tag forward defs before all prototypes.
6170         (duplicate_eh_regions): Whitespace.
6171
6172 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
6173
6174         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
6175         MODE_BASE_REG_CLASS.
6176         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
6177
6178 2002-01-12  Richard Henderson  <rth@redhat.com>
6179
6180         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
6181         (ix86_expand_vector_move): New.
6182         (bdesc_2arg): Remove andps, andnps, orps, xorps.
6183         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
6184         Remove old prefetch builtins.  Special case the logicals removed above.
6185         (ix86_expand_builtin): Likewise.
6186         (safe_vector_operand): Use V4SFmode, not TImode.
6187         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
6188         (ix86_expand_timode_binop_builtin): New.
6189         * config/i386/i386-protos.h: Update.
6190         * config/i386/i386.h (enum ix86_builtins): Update.
6191         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
6192         Use ix86_expand_vector_move in vector move expanders.
6193         (movti_internal, movti_rex64): Add xorps alternative.
6194         (sse_clrv4sf): Rename and adjust from sse_clrti.
6195         (prefetch): Don't work so hard.
6196         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
6197         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
6198         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
6199
6200 2002-01-11  Richard Henderson  <rth@redhat.com>
6201
6202         * config/i386/mmintrin.h: New file.
6203         * config/i386/xmmintrin.h: New file.
6204         * config.gcc (i?86-*-*): Add extra_headers.
6205         * simplify-rtx.c (simplify_unary_operation): Handle saturating
6206         truncation codes.
6207         (simplify_binary_operation): Handle saturating arithmetic codes.
6208         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
6209         not the lowpart subreg.
6210         (ix86_expand_builtin): Return a TImode dummy register instead of 0
6211         on error.
6212         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
6213
6214 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6215
6216         * conflict.c (conflict_graph_compute): Free regsets when finished.
6217         * ssa.c (compute_coalesced_reg_partition): Likewise.
6218
6219 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6220
6221         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
6222         every where we allocate a register.
6223
6224 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6225
6226         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
6227         * lcm.c (compute_earliest, compute_farthest): Likewise.
6228
6229 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
6230
6231         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
6232
6233 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
6234
6235         * doc/rtl.texi (Insns): Fix 2 typos.
6236
6237 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
6238
6239         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
6240         options.  Use @table @gcctabopt for MMIX options.  Add index
6241         entries for MMIX options.  Start new paragraph with first
6242         heading of the machine-dependent options.
6243
6244 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
6245
6246         PR other/5299
6247         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
6248         * combine.c (force_to_mode): Same.
6249         * reload1.c (clear_reload_reg_in_use): Same.
6250
6251 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
6252
6253         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
6254         and 'subtargets'.
6255
6256 2002-01-11  Andreas Jaeger  <aj@suse.de>,
6257             Brad Lucier <lucier@math.purdue.edu>
6258
6259         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
6260         mcpu.
6261
6262 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
6263
6264         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
6265         Protect with IN_LIBGCC.
6266         (LINK_EH_SPEC): Add required trailing space.
6267
6268 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
6269
6270         * c-tree.h: Move function declarations so that they are listed
6271         under the filename which contains them.
6272         (check_identifier, finish_decl_top_level,
6273         lookup_name_current_level_global, shadow_record_fields): Remove.
6274
6275 2002-01-11  Andreas Jaeger  <aj@suse.de>
6276
6277         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
6278         march.
6279
6280 2002-01-10  Richard Henderson  <rth@redhat.com>
6281
6282         * config/alpha/alpha.c (print_operand): Add 'J'.
6283         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
6284         new operand with the sequence number for the lituse.  When splitting
6285         the insns, use gen_movdi_er_high_g and generate a sequence number.
6286         (gen_movdi_er_high_g): Print the sequence number if non-zero.
6287
6288 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
6289
6290         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
6291         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
6292         stvxl.
6293         (altivec_expand_builtin): Same.
6294         (altivec_expand_stv_builtin): New.
6295
6296         * config/rs6000/rs6000.h (rs6000_builtins): Same.
6297
6298         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
6299         ("altivec_lvehx"): New.
6300         ("altivec_lvewx"): New.
6301         ("altivec_lvxl"): New.
6302         ("altivec_lvx"): New.
6303         ("altivec_stvx"): New.
6304         ("altivec_stvebx"): New.
6305         ("altivec_stvehx"): New.
6306         ("altivec_stvewx"): New.
6307         ("altivec_stvxl"): New.
6308
6309 2002-01-10  Richard Henderson  <rth@redhat.com>
6310
6311         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
6312         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
6313         care not to delete instructions twice.
6314
6315 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
6316
6317         * toplev.c: Don't declare environ (it's not used anywhere).
6318         * configure.in: Don't check for declaration of environ.
6319         * config/i386/xm-mingw32.h: Don't #define environ.
6320         * config.in, configure: Regenerate.
6321
6322 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
6323
6324         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
6325         * configure: Regenerate.
6326
6327         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
6328         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
6329         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
6330         alpha/xm-vms.h.
6331         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
6332         LIMITS_H_TEST here, not in m68k/x-next.
6333         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
6334         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
6335
6336         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
6337         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
6338         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
6339
6340         * config/i386/x-djgpp: Renamed i386/t-djgpp.
6341         * config/m88k/x-dolph: Renamed m88k/t-dolph.
6342         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
6343         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
6344         replacement of quadlib.asm with quadlib.c.
6345
6346         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
6347         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
6348         config/rs6000/xm-beos.h: Delete file.
6349
6350         * config.gcc: Update to match above changes.
6351
6352 2002-01-10  Kazu Hirata  <kazu@hxi.com>
6353
6354         * config/h8300/h8300.h: Fix comment typos.
6355         * config/h8300/h8300.md: Likewise.
6356         * config/h8300/lib1funcs.asm: Likewise.
6357
6358 2002-01-10  Dale Johannesen  <dalej@apple.com>
6359
6360         PR optimization/5269
6361         * unroll.c (precondition_loop_p): Make *increment be the correct
6362         sign when n_iterations known, to avoid confusing caller.
6363
6364 2002-01-10  Kazu Hirata  <kazu@hxi.com>
6365
6366         * doc/extend.texi (deprecated): Fix a typo.
6367
6368 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
6369
6370         * basic-block.h (update_br_prob_note): Declare.
6371         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
6372         (try_forward_edges): Care negative frequencies and update note.
6373         (outgoing_edges_match): Tweek conditional merging heuristics.
6374         (try_crossjump_to_edge): use update_br_prob_note.
6375         * cfglayout.c (fixup_reorder_chain): Likewise.
6376         * cfrtl.c (update_br_prob_note): New.
6377         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
6378
6379         * i386.c (ix86_decompose_address): Return -1 if address contains
6380         shift.
6381         (legitimate_address_p): Require ix86_decompose_address to return 1.
6382
6383         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
6384         (cprop_insn): Likewise.
6385
6386 2002-01-10  Kazu Hirata  <kazu@hxi.com>
6387
6388         * toplev.c: Fix formatting.
6389         * tree.c: Likewise.
6390         * tree-dump.c: Likewise.
6391         * unroll.c: Likewise.
6392         * unwind-dw2.c: Likewise.
6393         * unwind-dw2-fde.c: Likewise.
6394         * unwind-dw2-fde-glibc.c: Likewise.
6395         * unwind-sjlj.c: Likewise.
6396
6397 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
6398
6399         * doc/invoke.texi: Document PDP-11 options.
6400
6401 2002-01-10  Kazu Hirata  <kazu@hxi.com>
6402
6403         * config/h8300/h8300.h: Fix formatting.
6404
6405 2002-01-10  Ira Ruben   <ira@apple.com>
6406
6407         Add __attribute__ ((deprecated)).
6408         * extend.texi: Document __attribute__ ((deprecated)).
6409         * invoke.texi: Document -Wno-deprecated-declarations.
6410         * testsuite/g++.dg/other/deprecated.C: New C++ test.
6411         * testsuite/gcc.dg/deprecated.c: New C test.
6412         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
6413         (c_common_attribute_table): Add "deprecated" entry.
6414         (handle_deprecated_attribute): New function.
6415         * c-decl.c (deprecated_states): New enum.
6416         deprecated_state: State of "deprecated" handling.
6417         (start_decl): Set deprecated_state based on attributes.
6418         (grokdeclarator): Test for deprecated uses, propagate attribute.
6419         * c-typeck.c (build_component_ref): Test for deprecated fields.
6420         (build_external_ref): Test for deprecated primaries.
6421         * diagnostic.c (warn_deprecated_use) New function to issue
6422         warnings about __attribute__ ((depricated)) references.
6423         * flags.h (warn_deprecated_decl): Extern declared for
6424         -W[no-]deprecated-declarations option.
6425         * print-tree.c (print_node): Show deprecated flag status.
6426         * toplev.c (warn_deprecated_decl): Defined.
6427         (W_options): Added "deprecated-declaration".
6428         * toplev.h (warn_deprecated_use): Extern declared.
6429         * tree.h (struct tree_common): Define deprecated_flag.
6430         (TREE_DEPRECATED): New macro to access flag.
6431         * cp/call.c (build_call): Test for deprecated calls.
6432         * cp/class.c (add_implicitly_declared_members): Set global
6433         flag to tell grokdeclarator to not issue deprecated warnings.
6434         * cp/cp-tree.h: Add extern for adding_implicit_members.
6435         * cp/decl.c (deprecated_states): New enum.
6436         (start_decl): Set deprecated_state based on attributes.
6437         (grokdeclarator): Test for deprecated uses, propagate attribute.
6438         * cp/lex.c (do_identifier): Test for deprecated primaries.
6439         * cp/typeck.c (build_component_ref): Test for deprecated fields.
6440
6441 2002-01-10  Ira Ruben   <ira@apple.com>
6442
6443         Fix to assign attributes to inline member functions.
6444         * cp/decl.c (start_method): Handle attrlist.
6445
6446 2002-01-10  Kazu Hirata  <kazu@hxi.com>
6447
6448         * combine.c (expand_field_assignment): Use subreg_lsb().
6449
6450 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
6451
6452         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
6453         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
6454         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
6455         Recurse for any operand of AND as long as constant is non-zero.
6456
6457 2002-01-10  Kazu Hirata  <kazu@hxi.com>
6458
6459         * config/h8300/h8300.md: Remove constraints from expanders.
6460
6461 2002-01-10  Kazu Hirata  <kazu@hxi.com>
6462
6463         * varasm.c: Fix formatting.
6464         * varray.c: Likewise.
6465         * vmsdbgout.c: Likewise.
6466         * xcoffout.c: Likewise.
6467
6468 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
6469
6470         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
6471         update edge probabilities to match.
6472
6473 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
6474
6475         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
6476         dependencies.
6477         * doc/languages.texi, doc/sourcebuild.texi: New files.
6478         * doc/configfiles.texi: Make a subsubsection.  Update.
6479         * doc/configterms.texi: Add @node.  Remove warning that this isn't
6480         instructions for building GCC.
6481         * doc/makefile.texi: Make a subsection.
6482         * doc/gccint.texi: Update.
6483
6484 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
6485
6486         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
6487
6488 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
6489
6490         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
6491
6492 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
6493
6494         * optabs.c (expand_fix): Look for wider integer modes first.
6495
6496         * i386.md (mov?f): Avoid the fake const double trick for medium
6497         memory model.
6498         (min?f*/max?f*): Prohibit memory operands for i387 variant.
6499         (fop_df_4): Disable for SSE compilation.
6500
6501 2002-01-10  Graham Stott  <grahams@redhat.com>
6502
6503         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
6504         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
6505
6506 2002-01-10  Richard Henderson  <rth@redhat.com>
6507
6508         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
6509
6510 2002-01-10  Richard Henderson  <rth@redhat.com>
6511
6512         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
6513         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
6514
6515 2002-01-10  Kazu Hirata  <kazu@hxi.com>
6516
6517         * combine.c (can_combine_p): Fix a comment typo.
6518
6519 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
6520
6521         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
6522         empty list correctly.  Change loop index $t to $f for
6523         consistency with rest of Makefile.
6524
6525 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
6526
6527         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
6528         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
6529
6530         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
6531         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
6532         (altivec_init_builtins): Same.
6533         (altivec_expand_unop_builtin): Return NULL_RTX on error.
6534         (altivec_expand_binop_builtin): Same.
6535         (altivec_expand_ternop_builtin): Same.
6536         (bdesc_dst): New.
6537
6538         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
6539         ("altivec_vctuxs"): Fix typo.
6540         ("altivec_vnmsubfp"): Same.
6541         ("altivec_dssall"): New.
6542         ("altivec_mfvscr"): New.
6543         ("altivec_dss"): New.
6544         ("altivec_lvsl"): New.
6545         ("altivec_lvsr"): New.
6546         ("altivec_dstt"): New.
6547         ("altivec_dstst"): New.
6548         ("altivec_dststt"): New.
6549         ("altivec_dst"): New.
6550
6551         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
6552         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
6553
6554 2002-01-09  Richard Henderson  <rth@redhat.com>
6555
6556         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
6557
6558 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
6559
6560         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
6561         function.
6562         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
6563         prototype.
6564         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
6565
6566 2002-01-09  Kazu Hirata  <kazu@hxi.com>
6567
6568         * read-rtl.c: Fix formatting.
6569         * real.c: Likewise.
6570         * regclass.c: Likewise.
6571         * regrename.c: Likewise.
6572         * reg-stack.c: Likewise.
6573         * reload1.c: Likewise.
6574         * reload.c: Likewise.
6575         * rtl.c: Likewise.
6576
6577 2002-01-09  Kazu Hirata  <kazu@hxi.com>
6578
6579         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
6580         to extract items in the expr_list chain.
6581
6582 2002-01-09  Richard Henderson  <rth@redhat.com>
6583
6584         * config/vax/vax.c (vax_rtx_cost): Never abort.
6585
6586         * config/vax/vax.h (REAL_ARITHMETIC): Define.
6587
6588 2002-01-09  Jan Hubicka  <jh@suse.cz>
6589
6590         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
6591
6592 2002-01-09  Richard Henderson  <rth@redhat.com>
6593
6594         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
6595         Unify code from various alternatives.
6596
6597 2002-01-09  Richard Henderson  <rth@redhat.com>
6598
6599         * regrename.c (copy_value): Ignore the copy if the source register
6600         is present in the value chain with a narrower mode.
6601
6602 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
6603
6604         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
6605         for the c4x target. Also improve layout.
6606
6607 2002-01-09  Richard Henderson  <rth@redhat.com>
6608
6609         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
6610         * config/m32r/m32r.md (and ior xor splitters): Swap operands
6611         to match insn patterns.
6612
6613 2002-01-09  Richard Henderson  <rth@redhat.com>
6614
6615         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
6616         (copyprop_hardreg_forward_1): Likewise.
6617
6618 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6619
6620         * pa.md (decrement_and_branch_until_zero): Change predicate for
6621         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
6622
6623 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
6624
6625         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
6626         gets undefined. For Darwin.
6627
6628 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6629
6630         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
6631
6632 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6633
6634         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
6635
6636 2002-01-08  Richard Henderson  <rth@redhat.com>
6637
6638         * regrename.c (copy_value): Ignore overlapping copies.
6639
6640 2002-01-08  Richard Henderson  <rth@redhat.com>
6641
6642         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
6643         as needed to avoid shared structure.
6644
6645 2002-01-08  Kazu Hirata  <kazu@hxi.com>
6646
6647         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
6648         H8/300H and H8/S.
6649
6650 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6651
6652         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
6653         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
6654         documentation of obsolete macros.
6655         * system.h: Poison these macros.
6656         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
6657         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
6658         config/c4x/c4x.h, config/clipper/clipper.h,
6659         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
6660         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
6661         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
6662         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
6663         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
6664         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
6665         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
6666         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
6667         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
6668         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
6669         config/sparc/sparc.h, config/stormy16/stormy16.h,
6670         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
6671         definitions and commented out definitions of obsolete macros.
6672         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
6673         of MAX_INT_TYPE_SIZE.
6674
6675 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
6676
6677         * config/s390/s390.c (s390_preferred_reload_class): Never
6678         return ADDR_REGS if it isn't a subset of the given class.
6679         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
6680         FP_REGS, but all superclasses as well.
6681
6682         * config/s390/s390.c (s390_function_profiler): Fix thinko.
6683
6684         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
6685         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
6686         must not be a const_int.
6687
6688 2002-01-08  Richard Henderson  <rth@redhat.com>
6689
6690         * Makefile.in (toplev.o): Depend on options.h.
6691         (gcc.o): Depend on specs.h.
6692
6693 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
6694
6695         * expr.c (store_expr): Convert VOIDmode constants back to target's
6696         mode.
6697
6698 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6699
6700         * doc/invoke.texi: Markup gcc as @command.  Refer to
6701         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
6702         of http://gcc.gnu.org/thanks.html.
6703
6704 2002-01-08  Dale Johannesen  <dalej@apple.com>
6705
6706         * config/rs6000/rs6000.md: Add missing int register
6707         target case to movdf_low.
6708
6709 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
6710
6711         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
6712         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
6713         (cppinit.o): Depend on except.h.
6714         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
6715         s-specs): New rules.
6716
6717         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
6718         Don't create specs.h/options.h/gencheck.h here.  Remove
6719         unnecessary variable settings from last argument of AC_OUTPUT.
6720         * config.in, configure: Regenerate.
6721         * intl.c: Hardcode package name as "gcc".
6722
6723         * cppinit.c: Include except.h.
6724         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
6725         appropriate.
6726         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
6727         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
6728         (!)USING_SJLJ_EXCEPTIONS.
6729         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
6730
6731 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6732
6733         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
6734         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
6735         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
6736         documentation of obsolete macros.
6737         * system.h: Poison these macros.
6738         * config/d30v/d30v.h, config/ns32k/encore.h,
6739         config/stormy16/stormy16.h: Remove definitions and commented out
6740         definitions of obsolete macros.
6741
6742 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
6743
6744         * objc/objc-act.c (handle_class_ref): Mark the declaration of
6745         %sobjc_class_ref_%s as used - to prevent unwanted compiler
6746         warnings.
6747
6748 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
6749
6750         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
6751         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
6752         to insn adjusting stack/frame pointer.
6753         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
6754         accept operands that cause the insn to be non-splittable.
6755
6756 2002-01-08  Graham Stott  <grahams@redhat.com>
6757
6758         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
6759         (C_TYPE_FIELDS_VOLATILE): Likewise.
6760         (C_TYPE_BEING_DEFINED): Likewise.
6761         (C_IS_RESERVED_WORD): Likewise.
6762         (C_TYPE_VARIABLE_SIZE): Likewise.
6763         (C_DECL_VARIABLE_SIZE): Likewise.
6764         (C_MISSING_PROTOTYPE_WARNED): Likewise.
6765         (C_SET_EXP_ORIGINAL_CODE): Likewise.
6766         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
6767         parenthesis.
6768         (C_DECL_ANTICIPATED): Likewise.
6769         (c_build_type_variant): Add parenthesis.
6770
6771 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6772
6773         * gcc.c (option_map): Remove --version.
6774         (process_command): Handle -fversion following the GNU Coding
6775         Standards.  Partially addresses PR other/704.
6776
6777 2002-01-08  Graham Stott  <grahams@redhat.com>
6778
6779         * combine.c (combine_instructions): Fix typo.
6780
6781 2002-01-08  Graham Stott  <grahams@redhat.com>
6782
6783         * debug.h: Use "tree" and "rtx" throughout.
6784
6785         * debug.c: Likewise.
6786
6787 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
6788
6789         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
6790         constant pool, use the pool's version of the symbol instead.
6791
6792 2002-01-07  Richard Henderson  <rth@redhat.com>
6793
6794         * regrename.c (find_oldest_value_reg): Ignore the value chain if
6795         the original register was copied in a mode with a fewer number of
6796         hard registers than the desired mode.
6797         (copyprop_hardreg_forward_1): Likewise.
6798         (debug_value_data): Fix loop test.
6799         * toplev.c (parse_options_and_default_flags): Reenable
6800         -fcprop-registers at -O1.
6801
6802 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
6803
6804         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
6805         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
6806
6807         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
6808         predicates.
6809
6810         * config/rs6000/rs6000.md: Add altivec predicate patterns.
6811
6812 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6813
6814         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
6815         (pa_output_function_prologue): Output local label at the beginning of
6816         the prologue when profiling.
6817         (hppa_profile_hook): Use the local label rather than the function label.
6818         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
6819
6820 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
6821
6822         * config/rs6000/rs6000.c (print_operand): Remove extra space.
6823         (altivec_expand_unop_builtin): Fix thinko.
6824         (altivec_expand_binop_builtin): Same.
6825         (altivec_expand_ternop_builtin): Same.
6826         (altivec_expand_builtin): Same.
6827
6828 2002-01-07  Richard Henderson  <rth@redhat.com>
6829
6830         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
6831
6832 2002-01-07  Jason Merrill  <jason@redhat.com>
6833
6834         * unwind-dw2.c (execute_cfa_program): Use < again.
6835
6836 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
6837
6838         * predict.c (combine_predictions_for_insn): Avoid division by zero.
6839
6840 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
6841
6842         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
6843         Don't allow -1 - x -> ~x simplifications in the first pass.
6844
6845 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
6846
6847         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
6848         arguments.
6849         (altivec_expand_binop_builtin): Same.
6850         (altivec_expand_unop_builtin): Same.
6851         (print_operand): Fix typo.
6852         (bdesc_1arg): Add vupk* variants.
6853
6854         * rs6000.h (rs6000_builtins): Add vupk* enums.
6855
6856         * rs6000.md: Add altivec_vupk* variants.
6857
6858 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
6859
6860         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
6861         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
6862         and last update dates.
6863
6864 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
6865
6866         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
6867
6868 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6869
6870         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
6871         * config/avr/avr.h (CPP_SPEC): Likewise.
6872         (LINK_SPEC): Likewise.
6873         (CRT_BINUTILS_SPECS): Likewise.
6874         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6875         * doc/invoke.texi (AVR Options): Document them.
6876
6877 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
6878
6879         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
6880         LABEL_NUSES.
6881
6882 2002-01-07  Graham Stott  <grahams@redhat.com>
6883
6884         * config/i386/i386.h: Update copyright date.
6885         (HALF_PIC_PTR): Add parenthesis.
6886         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
6887         (CONSTANT_ALIGNMENT): Add parenthesis.
6888         (DATA_ALIGNMENT): Likewise.
6889         (LOCAL_ALIGNMENT): Likewise.
6890         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
6891         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
6892         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
6893         (HARD_REGNO_NREGS): Add paranethesis.
6894         (VALID_SSE_REG_MODE): Whitespace.
6895         (VALID_MMX_REG_MODE): Whitespace.
6896         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
6897         (ix86_hard_regno_mode_ok): Add parenthesis.
6898         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
6899         (RETURN_IN_MEMORY): Whitespace.
6900         (N_REG_CLASSES): Add parenthesis.
6901         (INTEGER_CLASS_P): Add parenthesis and wrap.
6902         (FLOAT_CLASS_P): Likewise.
6903         (SSE_CLASS_P): Likewise.
6904         (MMX_CLASS_P): Likewise.
6905         (MAYBE_INTEGER_CLASS_P): Likewise.
6906         (MAYBE_FLOAT_CLASS_P): Likewise.
6907         (MAYBE_SSE_CLASS_P): Likewise.
6908         (MAYBE_MMX_CLASS_P): Likewise.
6909         (Q_CLASS_P): Likewise.
6910         (GENERAL_REGNO_P): Uppercase macro parameter.
6911         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
6912         (FP_REGNO_P): Likewise.
6913         (ANY_FP_REGNO_P): Uppercase macro parameter.
6914         (SSE_REGNO_P): Likewise.
6915         (SSE_REGNO): Likewise.
6916         (SSE_REG_P): Likewise.
6917         (SSE_FLOAT_MODE_P): Likewise.
6918         (MMX_REGNO_P): Likewise.
6919         (MMX_REG_P):Likewise.
6920         (STACK_REG_P): Likewise.
6921         (NON_STACK_REG_P): Likewise.
6922         (STACK_TOP_P): Likewise.
6923         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
6924         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
6925         (SECONDARY_MEMORY_NEEDED): Likewise.
6926         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
6927         (MD_ASM_CLOBBERS): Whitespace and wrap.
6928         (MUST_PASS_IN_STACK): Whitespace and wrap.
6929         (RETURN_POPS_ARGS): Add parenthesis.
6930         (INIT_CUMULATIVE_ARGS): Likewise.
6931         (FUNCTION_ARG): Likewise.
6932         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
6933         (SETUP_INCOMING_VARARGS): Likewise.
6934         (BUILD_VA_LIST_TYPE):  Add parenthesis.
6935         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
6936         parenthsis.
6937         (EXPAND_BUILTIN_VA_ARG): Likewise.
6938         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
6939         (INITIALIZE_TRAMPOLINE): Add parenthesis.
6940         (INITIAL_ELIMINATION_OFFSET): Likewise.
6941         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
6942         (REGNO_OK_FOR_BASE_P): Likewise.
6943         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
6944         (REGNO_OK_FOR_DIREG_P): Likewise.
6945         (REG_OK_FOR_INDEX_P): Whitespace.
6946         (REG_OK_FOR_BASE_P): Whitespace.
6947         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
6948         parenthesis.
6949         (FIND_BASE_TERM): Fix typo.
6950         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
6951         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
6952         (SYMBOLIC_CONST; Whitespace.
6953         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
6954         (ENCODE_SECTION_INFO): Whitespace.
6955         (FINALIZE_PIC): Remove do { ... } while (0).
6956         (PROMOTE_MODE): Wrap in do { ... } while (0).
6957         (CONST_COSTS): Whitespace.
6958         (RTX_COSTS): Add paramethesis, whitespace and wrap.
6959         (REGISTER_MOVE_COST): Add parenthesis.
6960         (MEMORY_MOVE_COST): Likewise.
6961         (EXTRA_CC_MODES): Whitespace.
6962         (SELECT_CC_MODE): Add parenthesis and whitespace.
6963         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
6964         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
6965         (ASM_OUTPUT_LABEL): Add paramethesis.
6966         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
6967         (ASM_OUTPUT_REG_POP): Likewise.
6968         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
6969         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6970
6971         * config/i386/i386.c: Update copyright.
6972         (CHECK_STACK_LIMIT): Add parenthesis.
6973         (AT_BP): Uppercase macro parameter.
6974         (x86_64_int_parameter_registers): Constify.
6975         (x86_64_int_return_registers): Likewise.
6976         (ix86_compare_op0): Use rtx.
6977         (construct_container): Constify INTREG parameter.
6978         (function_arg): Use rtx.
6979
6980         * diagnostic.h: Update copyright date.
6981         (output_buffer_state): Add parenthesis.
6982         (output_buffer_format_args): Likewise.
6983
6984         * combine.c (combine_instructions): Replace XEXP (links, 0)
6985         with link.
6986
6987 2002-01-06  H.J. Lu <hjl@gnu.org>
6988
6989         * cfgcleanup.c (thread_jump): Fix 2 typos.
6990
6991 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
6992
6993         * config.gcc: Add support for --enable-altivec.
6994
6995 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
6996
6997         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
6998
6999 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
7000
7001         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
7002         __objc_class_name_*.
7003
7004 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7005
7006         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
7007
7008 2002-01-06  Richard Henderson  <rth@redhat.com>
7009
7010         * reorg.c (emit_delay_sequence): Remove death notes, not merely
7011         nop them out.  Increment label reference count for REG_LABEL.
7012         (fill_slots_from_thread): Frob label reference count around
7013         delete_related_insns.
7014
7015 2002-01-05  Richard Henderson  <rth@redhat.com>
7016
7017         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
7018         jump threading.
7019
7020 2002-01-05  Richard Henderson  <rth@redhat.com>
7021
7022         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
7023         * integrate.c (output_inline_function): Likewise.
7024         * toplev.c (rest_of_compilation): Do it here instead.  Move call
7025         to remove_unnecessary_notes after emitting abstract instance.
7026         Force an emitted nested function to have its parent emited as well.
7027         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
7028         for null.
7029         (rtl_for_decl_location): Do not look at reload data structures
7030         before reload has run.
7031
7032 2002-01-05  Kazu Hirata  <kazu@hxi.com>
7033
7034         * cse.c: Fix formatting.
7035         * dwarf2asm.c: Likewise.
7036         * dwarf2out.c: Likewise.
7037         * explow.c: Likewise.
7038         * expmed.c: Likewise.
7039         * function.c: Likewise.
7040         * gcov.c: Likewise.
7041         * gencheck.c: Likewise.
7042         * genrecog.c: Likewise.
7043         * ggc-common.c: Likewise.
7044         * ggc-page.c: Likewise.
7045         * global.c: Likewise.
7046
7047 2002-01-05  Kazu Hirata  <kazu@hxi.com>
7048
7049         * combine.c: Fix formatting.
7050
7051 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
7052
7053         PR middle-end/1557
7054         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
7055
7056 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
7057
7058         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
7059         as 1 for __powerpc64__ as well.
7060
7061         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
7062
7063         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
7064         return it.
7065
7066 2002-01-05  Daniel Berlin  <dan@dberlin.org>
7067
7068         * lcm.c: Revert change, due to performance regression it causes on
7069         SPEC because it's slightly more conservative (sigh, I hate
7070         edge-based LCM).
7071
7072 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
7073
7074         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
7075
7076 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7077
7078         * doc/cppinternals.texi: Update.
7079
7080 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
7081
7082         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
7083         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
7084         negatives.
7085         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
7086         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
7087         kludge for pre-october-14th mmix versions to handle new-found bug
7088         with PUSHJ/PUSHGO and the register stack.
7089         * config/mmix/mmix.h (struct machine_function): Rename member
7090         has_call_value_without_parameters to has_call_without_parameters.
7091         All referers changed.
7092         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
7093         TARGET_MASK_BRANCH_PREDICT): New macros.
7094         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
7095         -mno-reg-stack-fill-bug-workaround.
7096         * config/mmix/mmix.md ("call"): Set struct machine member
7097         has_call_without_parameters.
7098
7099 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
7100
7101         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
7102
7103 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
7104
7105         * cfgcleanup.c: Include tm_p.h
7106         (mark_effect): Fix handling of hard register; fix handling of SET
7107
7108 2002-01-04  Kazu Hirata  <kazu@hxi.com>
7109
7110         * config/h8300/h8300.md (anonymous patterns): Check that
7111         operands are registers before using REGNO on them.
7112
7113 2002-01-03  Roland McGrath  <roland@frob.com>
7114
7115         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
7116
7117 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
7118
7119         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
7120         * c-common.h (genrtl_expr_stmt_value): Likewise.
7121         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
7122         (expand_expr_stmt_value): Add maybe_last argument.
7123         Don't warn about statement with no effect if it is the last statement
7124         in expression statement.
7125         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
7126         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
7127         expand_expr_stmt_value.
7128         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
7129         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
7130         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
7131         as maybe_last to expand_expr_stmt_value.
7132
7133 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
7134
7135         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
7136         be passed in, do not build it.
7137         (c_begin_if_stmt): New function.
7138         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
7139         * c-common.h (c_expand_start_cond): Update prototype.
7140         (c_begin_if_stmt): Prototype new function.
7141         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
7142         * c-parse.in (if_prefix): Use c_begin_if_stmt,
7143         c_begin_while_stmt and c_finish_while_stmt_cond.
7144
7145 2002-01-04  William Cohen  <wcohen@redhat.com>
7146
7147         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
7148         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
7149         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
7150         * config/pa/som.h (ASM_FILE_START): Likewise.
7151
7152 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
7153
7154         * lcm.c: Include df.h.
7155         Add available_transfer_function prototype.
7156         (compute_available): Rework to use iterative dataflow framework.
7157         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
7158         with bb_info in df.h
7159         (available_transfer_function): New function.
7160
7161         * Makefile.in (lcm.o): add df.h to dependencies.
7162
7163 2002-01-04  Richard Henderson  <rth@redhat.com>
7164
7165         * config/alpha/alpha.c (some_operand): Accept HIGH.
7166         (input_operand): Likewise; accept simple references to globals.
7167         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
7168         (alpha_const_double_ok_for_letter_p): Likewise.
7169         (alpha_extra_constraint): Likewise.
7170         (alpha_preferred_reload_class): Likewise.  Do not force
7171         symbolic constants to memory.
7172         (alpha_legitimate_address_p): Accept simple references
7173         to small_symbolic_operand.
7174         (alpha_legitimize_address): New arg scratch.  Be prepared to be
7175         called when no_new_pseudos.  Emit simple symbolic references.
7176         Split integers into low, high, and rest.
7177         (alpha_expand_mov): Use alpha_legitimize_address.
7178         (some_small_symbolic_mem_operand): New.
7179         (split_small_symbolic_mem_operand): New.
7180         * config/alpha/alpha-protos.h: Update.
7181         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
7182         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
7183         (EXTRA_CONSTRAINT): Likewise.
7184         (PREFERRED_RELOAD_CLASS): Likewise.
7185         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
7186         (PREDICATE_CODES): Update.
7187         * config/alpha/alpha.md: New post-reload splitters to convert
7188         simplfied symbolic operands to the form that references $29.
7189         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
7190         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
7191
7192 2002-01-03  Richard Henderson  <rth@redhat.com>
7193
7194         * local-alloc.c (function_invariant_p): Update commentary.
7195
7196 2002-01-04  H.J. Lu <hjl@gnu.org>
7197
7198         * toplev.c (rest_of_compilation): Fix a typo when calling
7199         cleanup_cfg.
7200
7201 2002-01-03  Kazu Hirata  <kazu@hxi.com>
7202
7203         * c-common.c: Fix formatting.
7204         * diagnostic.c: Likewise.
7205         * doloop.c: Likewise.
7206         * dwarf2out.c: Likewise.
7207
7208 2002-01-03  Kazu Hirata  <kazu@hxi.com>
7209
7210         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
7211         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
7212
7213 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
7214
7215         * cpperror.c: Update comments and copyright.
7216         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
7217         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
7218
7219 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7220
7221         * collect2.c (main): Use strcmp when testing for "-shared".
7222
7223 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
7224
7225         * cppmacro.c: Don't include intl.h.  Update comments.
7226         (new_number_token): Allocate enough buffer for 64-bit unsigned
7227         integers; update prototype.
7228         * cppmain.c: Update comments.
7229
7230 2002-01-03  William Cohen  <wcohen@redhat.com>
7231
7232         * function.h (struct function): Add profile.
7233         (current_function_profile): New.
7234         doc/extend.texi: Update documentation.
7235         * final.c (final_start_function): Use current_function_profile
7236         instead of profile_flag.
7237         (profile_after_prologue): Likewise.
7238         * function.c (expand_function_start): Likewise.
7239         (expand_function_start): Likewise.
7240         * config/alpha/alpha.c (direct_call_operand):
7241         (alpha_does_function_need_gp): Likewise.
7242         (alpha_expand_prologue): Likewise.
7243         * config/arm/arm.c (arm_expand_prologue): Likewise.
7244         thumb_expand_prologue: Likewise.
7245         * config/d30v/d30v.c (d30v_stack_info): Likewise.
7246         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
7247         (fr30_expand_prologue): Likewise.
7248         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
7249         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
7250         * config/i386/i386.h (FINALIZE_PIC): Likewise.
7251         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
7252         * config/i960/i960.c (i960_output_function_prologue): Likewise.
7253         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
7254         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
7255         (m32r_expand_prologue): Likewise.
7256         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
7257         (m88k_expand_prologue): Likewise.
7258         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
7259         * config/mips/mips.c (compute_frame_size): Likewise.
7260         (mips_expand_prologue): Likewise.
7261         (mips_can_use_return_insn): Likewise.
7262         * config/pa/elf.h (ASM_FILE_START): Likewise.
7263         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
7264         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
7265         * config/pa/som.h (ASM_FILE_START): Likewise.
7266         * config/romp/romp.c (romp_using_r14): Likewise.
7267         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
7268         (rs6000_stack_info): Likewise.
7269         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7270         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
7271         * config/v850/v850.c (compute_register_save_size): Likewise.
7272
7273 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
7274
7275         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
7276         gen_lowpart_common fails, use gen_lowpart_SUBREG.
7277
7278 2002-01-03  Turly O'Connor  <turly@apple.com>
7279
7280         * darwin.c (machopic_output_possible_stub_label): Don't generate
7281         stub routines for pseudo-stubs which we've just defined.
7282
7283 2002-01-03  Kazu Hirata  <kazu@hxi.com>
7284
7285         * builtins.c: Fix formatting.
7286         * c-typeck.c: Likewise.
7287         * combine.c: Likewise.
7288         * expr.c: Likewise.
7289         * loop.c: Likewise.
7290
7291 2002-01-03  Andreas Schwab  <schwab@suse.de>
7292
7293         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
7294         and return true if _cpp_push_next_buffer pushed a new include
7295         file.
7296         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
7297         _cpp_pop_file_buffer did not push a new file.
7298         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
7299
7300 2002-01-02  Eric Christopher  <echristo@redhat.com>
7301
7302         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
7303         FIND_REG_INC_NOTE call. Update copyright.
7304         * loop.c (canonicalize_condition): Ditto.
7305         * reorg.c (delete_scheduled_jump): Ditto.
7306
7307 2002-01-03  Kazu Hirata  <kazu@hxi.com>
7308
7309         * gcse.c: Fix formatting.
7310
7311 2002-01-03  Graham Stott  <grahams@redhat.com>
7312
7313         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
7314         forward defs for struct tags rtx_def, union_tree, rtvec_def
7315         also output corresponding typedefs for rtx, tree, and rtvec.
7316
7317         * system.h: Move forward defs for struct tags rtx_def, union_tree,
7318         rtvec_def along with corresponding typedefs for rtx, tree, and
7319         rtvec to config.h, hconfig.h, tconfig.h.
7320
7321 2002-01-03  Graham Stott  <grahams@redhat.com>
7322
7323         * tree.h: Update copyright date.
7324         (IS_EXPR_CODE_CLASS): Add parenthesis.
7325         (TREE_SET_CODE): Add whitespace.
7326         (TREE_CHECK): Add parenthesis.
7327         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
7328         (CST_OR_CONSTRUCTOR_CHECK):
7329         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
7330         (TREE_SYMBOL_REFERENCED): Whitespace.
7331         (INT_CST_LT): Likewise.
7332         (INT_CST_LT_UNSIGNED): Likewise.
7333         (tree_real_cst): Unwrap comment.
7334         (tree_string): Likewise.
7335         (tree_complex): Likewise.
7336         (IDENTIFIER_POINTER): correct cast.
7337         (SAVE_EXPR_CONTEXT): Whitespace.
7338         (EXPR_WFL_FILENAME_NODE): Likewise.
7339         (EXPR_WFL_FILENAME): Remove parenthesis.
7340         (DECL_ORIGIN): Add parenthesis.
7341         (DECL_FROM_INLINE): Use NULL_TREE.
7342         (build_int_2): Whitespace.
7343         (build_type_variant): Add parenthesis.
7344
7345         * gcc/jcf-parse.c: Update copyright date.
7346         (yyparse): Constify resource_filename.
7347
7348 2002-01-03  Graham Stott  <grahams@redhat.com>
7349
7350         * rtl.h: Update copyright date.
7351         (RTL_CHECK1): Wrap long line.
7352         (RTL_CHECK2): Likewise.
7353         (RTL_CHECKC1): Wrap long line and whitespace.
7354         (RTL_CHECKC2): Likewise.
7355         (XWINT): Whitespace.
7356         (XINT): Likewise.
7357         (XSTR): Likewise.
7358         (XEXP): Likewise.
7359         (XVEC): Likewise.
7360         (XMODE): Likewise.
7361         (XBITMAP): Likewise.
7362         (XTREE): Likewise.
7363         (XBBDEF): Likewise.
7364         (XTMPL): Likewise.
7365         (X0WINT): Likewise.
7366         (X0INT):Likewise.
7367         (X0UINT): Likewise.
7368         (X0STR): Likewise.
7369         (X0EXP): Likewise.
7370         (X0VEC): Likewise.
7371         (X0MODE): Likewise.
7372         (X0BITMAP): Likewise.
7373         (X0TREE): Likewise.
7374         (X0BBDEF): Likewise.
7375         (X0ADVFLAGS): Likewise.
7376         (X0CSELIB): Likewise.
7377         (X0MEMATTR): Likewise.
7378         (XCWINT): Likewise.
7379         (XCINT): Likewise.
7380         (XCUINT): Likewise.
7381         (XCSTR): Likewise.
7382         (XCEXP): Likewise.
7383         (XCVEC): Likewise.
7384         (XCMODE): Likewise.
7385         (XCBITMAP): Likewise.
7386         (XCTREE): Likewise.
7387         (XCBBDEF): Likewise.
7388         (XCADVFLAGS): Likewise.
7389         (XCCSELIB): Likewise.
7390         (XC2EXP): Likewise.
7391         (INSN_UID): Likewise.
7392         (PREV_INSN): Likewise.
7393         (PATTERN): Likewise.
7394         (INSN_CODE): Likewise.
7395         (PUT_REG_NOTE_KIND): Likewise.
7396         (CODE_LABEL_NUMBER): Likewise.
7397         (NOTE_SOURCE_FILE): Likewise.
7398         (NOTE_BLOCK): Likewise.
7399         (NOTE_EH_HANDLER): Likewise.
7400         (NOTE_RANGE_INFO): Likewise.
7401         (NOTE_LIVE_INFO): Likewise.
7402         (NOTE_BASIC_BLOCK): Likewise.
7403         (NOTE_EXPECTED_VALUE): Likewise.
7404         (NOTE_LINE_NUMBER): Likewise.
7405         (LABEL_NAME): Likewise.
7406         (LABEL_NUSES): Likewise.
7407         (LABEL_ALTERNATE_NAME): Likewise.
7408         (ADDRESSOF_DECL): Likewise.
7409         (JUMP_LABEL): Likewise.
7410         (LABEL_NEXTREF): Likewise.
7411         (REGNO): Likewise.
7412         (ORIGINAL_REGNO: Likewise.
7413         (HARD_REGISTER_NUM_P): Add parenthesis.
7414         (SUBREG_REG): Whitespace.
7415         (SUBREG_BYTE): Likewise.
7416         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
7417         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
7418         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
7419         (ASM_OPERANDS_INPUT_VEC): Likewise.
7420         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
7421         (ASM_OPERANDS_INPUT): Likewise.
7422         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
7423         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
7424         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
7425         (ASM_OPERANDS_INPUT_MODE): Likewise.
7426         (ASM_OPERANDS_SOURCE_FILE): Likewise.
7427         (ASM_OPERANDS_SOURCE_LINE): Likewise.
7428         (MEM_SET_IN_STRUCT_P): Minor reformat.
7429         (TRAP_CONDITION): Whitespace.
7430         (TRAP_CODE): Likewise.
7431         (COND_EXEC_TEST): Likewise.
7432         (COND_EXEC_CODE): Likewise.
7433         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
7434         (PHI_NODE_P): Add parenthesis.
7435         (plus_constant): Whitespace and add parenthesis.
7436
7437 2002-01-03  Kazu Hirata  <kazu@hxi.com>
7438
7439         * config/avr/avr.c: Fix comment typos.
7440         * config/c4x/c4x.md: Likewise.
7441         * config/dsp16xx/dsp16xx.h: Likewise.
7442         * config/dsp16xx/dsp16xx.md: Likewise.
7443         * config/i386/i386.md: Likewise.
7444         * config/ia64/ia64.c: Likewise.
7445         * config/m32r/m32r.h: Likewise.
7446         * config/m68hc11/m68hc11.md: Likewise.
7447         * config/mmix/mmix.c: Likewise.
7448         * config/mn10200/mn10200.c: Likewise.
7449         * config/romp/romp.c: Likewise.
7450         * config/sh/sh.c: Likewise.
7451         * config/stormy16/stormy16.c: Likewise.
7452         * config/stormy16/stormy16.h: Likewise.
7453         * config/stormy16/stormy16.md: Likewise.
7454
7455 2002-01-03  Graham Stott  <grahams@redhat.com>
7456
7457         * loop.h: Update copyright date.
7458         (LOOP_MOVABLES): Fix typo.
7459         (LOOP_REGS): Likewise.
7460         (LOOP_IVS): Likewise.
7461
7462 2002-01-03  Graham Stott  <grahams@redhat.com>
7463
7464         * cppinit.c: Update copyright date.
7465         Don't include output.h
7466         * Makefile.in: Update copyright date.
7467         Update dependency.
7468
7469 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7470
7471         PR c/5226
7472         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
7473         (-pthread) Add to RS/6000 options.
7474
7475 2002-01-02  Kazu Hirata  <kazu@hxi.com>
7476
7477         * except.c: Fix comment typos.
7478         * loop.c: Likewise.
7479         * varasm.c: Likewise.
7480         * doc/tm.texi: Fix a typo.
7481
7482 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
7483
7484         * c-typeck.c (output_init_element): Allow initializing static storage
7485         duration objects with compound literals.
7486
7487 2002-01-02  Richard Henderson  <rth@redhat.com>
7488
7489         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
7490         after abusing it.
7491
7492 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7493
7494         * gcc.c (default_compilers): Const-ify.
7495         * mips-tdump.c (stab_names): Likewise.
7496         * mips-tfile.c (map_coff_types, map_coff_storage,
7497         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
7498         pseudo_ops_t, pseudo_ops): Likewise.
7499         * protoize.c (default_include): Likewise
7500
7501         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
7502         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
7503         Add array size in declaration.
7504         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
7505         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
7506         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
7507         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
7508         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
7509         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
7510         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
7511         emtens, make_nan): Const-ify.
7512         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
7513         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
7514
7515 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
7516
7517         * config.gcc (ia64-*-*): Set extra_headers.
7518         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
7519         * config/alpha/t-osf: Remove.
7520         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
7521
7522 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
7523
7524         * config/rs6000/t-aix43: Revert previous change.
7525
7526 2002-01-02  Jason Merrill  <jason@redhat.com>
7527
7528         * c-decl.c (c_expand_body): Call outlining_inline_function when
7529         emitting an inline function out of line.
7530
7531 2002-01-02  Richard Henderson  <rth@redhat.com>
7532
7533         * dwarf2out.c (limbo_die_node): Add created_for member.
7534         (new_die): New argument created_for.  Update all callers.
7535         (mark_limbo_die_list): New.
7536         (dwarf2out_init): Register limbo_die_list as a root.
7537         (dwarf2out_finish): Force insert limbo dies into their function
7538         context.
7539
7540 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
7541
7542         PR c++/5089
7543         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
7544
7545 2002-01-02  Kazu Hirata  <kazu@hxi.com>
7546
7547         * config/h8300/fixunssfsi.c: Update copyright.
7548         Fix comment typos.
7549         Fix formatting.
7550         * config/h8300/h8300.c: Update copyright.
7551         Eliminate warnings.
7552
7553 2002-01-02  Kazu Hirata  <kazu@hxi.com>
7554
7555         * config/romp/romp.c: Fix comment formatting.
7556         * config/romp/romp.h: Likewise.
7557         * config/romp/romp.md: Likewise.
7558         * config/s390/s390.c: Likewise.
7559         * config/stormy16/stormy16.c: Likewise.
7560         * config/stormy16/stormy16.h: Likewise.
7561
7562 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
7563
7564         * c-common.h (genrtl_expr_stmt_value): Declare.
7565         * c-semantics.c (genrtl_goto_stmt): Redirect to...
7566         (genrtl_goto_stmt_value): ... this new function.  Pass new
7567         argument down to expand_expr_stmt_value, taking
7568         TREE_ADDRESSABLE into account.
7569         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
7570         STMT_EXPR as addressable, i.e., one whose result we want.
7571         * expr.c (expand_expr): Don't save expression statement value
7572         of labeled_blocks or loop_exprs.
7573         * stmt.c (expand_expr_stmt): Redirect to...
7574         (expand_expr_stmt_value): ... this new function.  Use new
7575         argument to tell whether to save expression value.
7576         (expand_end_stmt_expr): Reset last_expr_type and
7577         last_expr_value if we don't have either.
7578         * tree-inline.c (declare_return_variable): Mark its use
7579         statement as addressable.
7580         * tree.h: Document new use of TREE_ADDRESSABLE.
7581         (expand_expr_stmt_value): Declare.
7582
7583 2002-01-01  Tom Rix  <trix@redhat.com>
7584
7585         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
7586         rs6000_emit_allocate_stack.
7587
7588 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
7589
7590         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
7591         ${srcdir}/ginclude/ to every entry in extra_headers.
7592         * configure: Regenerate.
7593         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
7594         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
7595         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
7596         * ginclude/proto.h: Rename to config/convex/proto.h.
7597
7598 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7599
7600         * attribs.c (handle_vector_size_attribute): Use host_integerp
7601         and tree_int_cst; remove warnings.
7602         * caller-save.c (insert_restore): Add cast to get rid of warning.
7603         (insert_save): Likewise.
7604         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
7605         * regmove.c (find_matches): Add temporary var to kill a warning.
7606
7607 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
7608
7609         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
7610         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
7611         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
7612         (vms-dwarf2eh.o): Add Makefile rule.
7613         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
7614         * config/alpha/vms-dwarf2eh.asm: New file.
7615
7616         * gcc.c (delete_if_ordinary): Delete all versions.
7617
7618 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
7619
7620         * config/mmix/mmix.md: Update FIXME to not mention
7621         define_constants.
7622         (MMIX_rJ_REGNUM): New define_constants constant.
7623         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
7624         "*movdicc_real"): Adjust contraints formatting.
7625         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
7626         for branch prediction.
7627         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
7628         output template.
7629         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
7630         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
7631         number.  Delete related FIXMEs.
7632         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
7633         from number to MMIX_rJ_REGNUM.
7634         (TARGET_MASK_BRANCH_PREDICT): New.
7635         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
7636         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
7637         value.  Add -mbranch-predict and -mno-branch-predict.
7638         (TARGET_VERSION): Drop date.
7639         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
7640         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
7641         for finding out global symbols.
7642         (mmix_asm_output_labelref): Revert condition for global symbol.
7643         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
7644         (mmix_print_operand_punct_valid_p): A '+' is valid.
7645
7646 See ChangeLog.6 for earlier changes.