OSDN Git Service

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