OSDN Git Service

5022ff4900a94140f8e43012e6ba954b1ab9d2e1
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-04-11  Richard Henderson  <rth@redhat.com>
2
3         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
4
5 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6
7         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
8         Include {cpu}/{cpu}.h thru tm_file.
9         (alpha*-*-linux*ecoff): Remove target.
10         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
11         (LINK_SPEC): Remove, is not OS independent.
12         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
13         (LINK_SPEC): Do not need to #undef any longer.
14         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
15         any longer.
16         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
17         __ELF__.
18         (LINK_SPEC): Moved here from alpha/elf.h.
19         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
20         SUB_CPP_PREDEFINES.
21         * config/alpha/linux-ecoff.h: Remove.
22         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
23         (CPP_SPEC): Define _POSIX_SOURCE as needed.
24         (CPP_SUBTARGET_SPEC): Do not define.
25         (LINK_SPEC): Do not need to #undef any longer.
26         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
27         * config/alpha/vms.h: Likewise.
28
29 2002-04-11  Richard Sandiford  <rsand
30
31         * doc/extend.texi: Remove old claim that typedefs cannot have
32         an alignment attribute.
33
34 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
35
36         PR optimization/6177
37         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
38         bitpos is 0 and bitsize CONCAT size.
39
40 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
41
42         PR c/6223
43         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
44
45 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
46
47         * config/alpha/freebsd.h: Minor reformatting.
48         (CPP_SPEC): Define ELF and add cpp_subtarget.
49         (ASM_SPEC): No longer needed.
50
51 2002-04-11  Richard Henderson  <rth@redhat.com>
52
53         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
54         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
55         (dimode mem/zero splitter): New.
56
57 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
58
59         * config/cris/cris.c (cris_override_options): Tweak error message
60         for PIC not implemented.
61
62         * config/cris/cris.h: Tweak comments related to parameter-passing.
63
64         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
65
66 2002-04-10  Richard Henderson  <rth@redhat.com>
67
68         * except.c (add_ehl_entry): Allow duplicates after landing pad
69         creation.
70
71 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
72
73         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
74
75 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
76
77         * c-decl.c (c_init_decl_processing): Move generation of
78         decls for g77_integer_type_node and friends from here ...
79         * c-common.c (c_common_nodes_and_builtins): ... to here.
80
81 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
82
83         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
84         is only used as frame pointer when frame_pointer_needed is true.
85
86 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
87
88         PR target/817
89         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
90         for the fact that the pool entry uses two words.
91         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
92         1k bytes.
93         (movdf_soft_insn): Similarly.
94         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
95         for the fact that the pool entry uses three words.
96
97 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
98
99         * config/mips/mips.c (mips_va_arg): When using the struct version
100         of the EABI va_list, allow arguments in the register save area to
101         take up less room than a stack argument.
102
103 2002-04-10  Richard Henderson  <rth@redhat.com>
104
105         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
106         if EXPAND_INITIALIZER.
107
108 2002-04-09  Richard Henderson  <rth@redhat.com>
109
110         * config/alpha/alpha.md (movdi_er_maybe_g): New.
111         * config/alpha/alpha.c (alpha_expand_mov): Use it.
112
113 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
114
115         PR optimization/6233
116         * rtlanal.c (pure_call_p): New function.
117         * rtl.h (pure_call_p): Declare.
118         * loop.c (prescan_loop): Use it to set has_nonconst_call.
119         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
120
121 2002-04-09  Eric Christopher  <echristo@redhat.com>
122
123         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
124         information to .comm directive.
125
126 2002-04-09  Richard Henderson  <rth@redhat.com>
127
128         PR c/5078
129         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
130
131 2002-04-09  Richard Henderson  <rth@redhat.com>
132
133         * basic-block.h (flow_delete_block_noexpunge): Declare.
134         (expunge_block_nocompact): Declare.
135         * cfg.c (expunge_block_nocompact): Split out from ...
136         (expunge_block): ... here.
137         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
138         (flow_delete_block_noexpunge): Split out from ...
139         (flow_delete_block): ... here.
140         * cfgcleanup.c (delete_unreachable_blocks): Compact while
141         removing dead blocks.
142         * except.c (exception_handler_labels): Remove.
143         (exception_handler_label_map): New.
144         (struct eh_region): Add aka member.
145         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
146         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
147         (for_each_eh_label, for_each_eh_label_1): New.
148         (init_eh): Register exception_handler_label_map.
149         (free_eh_status): Use free_region.
150         (find_exception_handler_labels): Use the map, not the list.
151         (remove_exception_handler_label): Likewise.
152         (maybe_remove_eh_handler): Likewise.
153         (remove_eh_handler): Use the region aka bitmap.
154         * except.h (exception_handler_labels): Remove.
155         (for_each_eh_label): Declare.
156         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
157         * loop.c (invalidate_loops_containing_label): New.
158         (find_and_verify_loops): Use it.  Use for_each_eh_label.
159         * sched-rgn.c (is_cfg_nonregular): Use
160         current_function_has_exception_handlers.
161
162 2002-04-09  Richard Henderson  <rth@redhat.com>
163
164         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
165         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
166         Do not return changed status.
167         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
168         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
169         New functions that do return changed status.
170         * sbitmap.h: Update decls.
171         * gcse.c, lcm.c: Use _cg functions as needed.
172
173 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
174
175         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
176         (sh64-*-elf*, sh-*-rtemself*): Likewise.
177         * config/sh/embed_bb.c: New file.
178         * config/sh/embed-elf.h: New file.
179         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
180         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
181         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
182         __PTRDIFF_TYPE__ .
183         (SUBTARGET_CPP_PTR_SPEC): Don't define.
184         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
185         Add subtarget_asm_endian_spec.
186         (ASM_SPEC): Use subtarget_asm_endian_spec.
187         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
188         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
189         (WCHAR_UNSIGNED): Define.
190         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
191         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
192         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
193         Fix value.
194         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
195         (sh_adjust_cost): Likewise.
196         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
197         __PTRDIFF_TYPE__ .
198         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
199         (WCHAR_TYPE_SIZE): Likewise.
200         (ASM_SPEC): Use subtarget_asm_endian_spec.
201         (SH_ELF_WCHAR_TYPE): #undef/ #define.
202         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
203         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
204         (MAX_WCHAR_TYPE_SIZE): Don't #define .
205         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
206         (USER_LABEL_PREFIX): Don't #undef /#define .
207         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
208         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
209         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
210         (ASM_SPEC): Likewise.
211         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
212         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
213         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
214         (LIB2FUNCS_EXTRA): Define.
215         * t-sh64 (LIB2FUNCS_EXTRA): Define.
216         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
217         (LIB1ASMFUNCS_CACHE): Define.
218         (LIB2FUNCS_EXTRA): Redefine empty.
219
220 2002-04-08  Richard Henderson  <rth@redhat.com>
221
222         * reorg.c (get_branch_condition): Use reversed_comparison_code.
223
224 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
225
226         * config/m68hc11/larith.asm (__map_data_section): Fix condition
227         and optimize for size.
228         (__do_global_ctors): Fix pointer comparison.
229         (__do_global_dtors): Likewise.
230
231 2002-04-09  David S. Miller  <davem@redhat.com>
232
233         * config/sparc/sparc.c (sparc_extra_constraint_check): New
234         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
235         allow reloading pseudos.
236         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
237         * config/sparc/sparc-protos.h: Declare it.
238
239         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
240         unsigned comparison warning.
241         (output_restore_regs): Mark leaf_function as unused.
242
243 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
244
245         * expr.c (is_aligning_offset): New function.
246         (expand_expr, case COMPONENT_EXPR): Call it.
247
248 2002-04-08  David S. Miller  <davem@redhat.com>
249
250         PR target/6082
251         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
252
253         Make init_priority work on Sparc when using GNU ld.
254         * config/sparc/linux.h, config/sparc/linux64.h,
255         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
256         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
257         * config/sparc/sol2-gld.h: New file to do the same.
258         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
259         sparc/sol2-gld.h to tm_file.
260
261         PR optimization/4328
262         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
263         * doc/md.texi: Document it.
264         * config/sparc/sparc.md (movdi_insn_sp64_novis,
265         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
266         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
267         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
268         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
269
270 2002-04-08  Andreas Jaeger  <aj@suse.de>
271
272         * stmt.c (expand_asm_operands): Revert last patch from Richard
273         Henderson.
274
275 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
276
277         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
278         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
279
280 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
281
282         * doc/contrib.texi (Contributors): Add David O'Brien.
283
284 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
285
286         * configure.in (auto-build.h): Use target_alias and build_alias
287         when running configure.
288         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
289         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
290         * configure: Regenerate.
291
292 2002-04-07  David S. Miller  <davem@redhat.com>
293
294         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
295
296 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
297
298         PR 5933
299         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
300         generating 32-bit pic code.
301
302 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
303
304         * cppinit.c (cpp_create_reader): Initialize
305         discard_comments_in_macro_exp.
306         (COMMAND_LINE_OPTIONS): Add "-CC" option.
307         (cpp_handle_option): Handle "-CC" option.
308         * cpplex.c (save_comment): If saving a C++ comment in
309         a directive, convert it to a C comment.
310         (_cpp_lex_direct): Pass second comment start character to
311         save_comment to indicate comment type.
312         * cpplib.c (_cpp_handle_directive): If processing
313         a "#define" directive and discard_comments_in_macro_exp
314         is false,  re-enable saving of comments.
315         (lex_macro_node): If discard_comments_in_macro_exp is false,
316         discard any comments before the macro identifier.
317         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
318         member.
319         * cppmacro.c (cpp_get_token): If expanding a macro while
320         processing a directive, discard any comments we might encounter.
321         (parse_params): If discard_comments_in_macro_exp is false,
322         ignore comments in the macro parameter list.
323         * gcc.c (cpp_unique_options): Add "-CC" option.
324         (option_map): Map "--comments-in-macros" to "-CC".
325         * doc/cppopts.texi: Document "-CC" option.
326         * f/lang-specs.h: Add "-CC" option.
327         * testsuite/gcc.dg/cpp/maccom1.c: New test.
328         * testsuite/gcc.dg/cpp/maccom2.c: New test.
329         * testsuite/gcc.dg/cpp/maccom3.c: New test.
330         * testsuite/gcc.dg/cpp/maccom4.c: New test.
331         * testsuite/gcc.dg/cpp/maccom5.c: New test.
332         * testsuite/gcc.dg/cpp/maccom6.c: New test.
333
334 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
335
336         PR middle-end/6180
337         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
338
339 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
340
341         PR c++/5571
342         * stor-layout.c (layout_decl): Reset the RTL for the decl.
343
344         PR opt/5120
345         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
346         RTX_UNCHANGING_P for the functions arguments when a tail call
347         is made.
348
349 2002-04-06  Jason Merrill  <jason@redhat.com>
350
351         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
352         (parse_options_and_default_flags): Set them appropriately.
353         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
354
355 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
356
357         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
358         here.
359
360         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
361         semicolon.
362
363         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
364         types come in by-reference.  Fix typo in comment.
365
366 2002-04-05  David S. Miller  <davem@redhat.com>
367
368         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
369         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
370         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
371         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
372
373 2002-04-05  David S. Miller  <davem@redhat.com>
374
375         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
376         are not going to emit return instructions, emit at least a nop
377         for the sake of sane backtraces.
378
379 2002-04-05  Richard Henderson  <rth@redhat.com>
380
381         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
382
383 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
384
385         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
386
387 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
388
389         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
390         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
391         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
392
393 2002-04-05  Andreas Schwab  <schwab@suse.de>
394
395         * c-convert.c: Include c-common.h.
396         * Makefile.in (c-convert.o): Updated.
397
398 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
399
400         * mklibgcc.in: Use separate libgcc.map for each multilib.
401         * Makefile.in (distclean): Don't remove libgcc.map here.
402
403 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
404
405         * Makefile.in (s-mlib): Handle --disable-multilib by separate
406         genmultilib invocation.
407
408 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
409
410         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
411         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
412         to num_gprs for symmetry.
413         * config/mips/mips.c: Adjust accordingly.
414
415 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
416
417         * c-common.c (truthvalue_conversion): Rename, update.
418         * c-common.h (c_common_truthvalue_conversion): New.
419         * c-convert.c (convert): Update.
420         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
421         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
422         * c-typeck.c (build_binary_op, build_unary_op,
423         build_conditional_expr): Update.
424         * fold-const.c (constant_boolean_node, fold): Use langhook.
425         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
426         * langhooks.h (struct lang_hooks): New hook.
427         * stmt.c (expand_decl_cleanup): Use langhook.
428         * tree.h (truthvalue_conversion): Remove.
429 objc:
430         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
431
432 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
433
434         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
435         Add rules to make null object file.
436
437 2002-04-04  Jim Blandy  <jimb@redhat.com>
438
439         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
440         macro formal parameter names.
441
442 2002-04-04  David S. Miller  <davem@redhat.com>
443
444         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
445
446 2002-04-04  Richard Henderson  <rth@redhat.com>
447
448         PR middle-end/5099
449         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
450         Support copies into and out of memory.  Don't accept allows_reg
451         and allows_mem as gospel.
452
453 2002-04-04  Richard Henderson  <rth@redhat.com>
454
455         PR opt/6165
456         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
457         (write_dependence_p): Likewise.
458
459 2002-04-04  Richard Henderson  <rth@redhat.com>
460
461         * predict.c (estimate_bb_frequencies): Do frequency calculation
462         with a volatile temporary.
463
464 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
465
466         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
467
468 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
469
470         PR c++/6119
471         * final.c (final_start_function): Don't bump profile_label_no here...
472         (final_end_function): ...but here.
473
474 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
475
476         * config/sparc/sparc.md (pic): New attribute.
477         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
478         into stack slots.
479         (split after do_builtin_setjmp_setup): New.
480
481 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
482
483         PR fortran/6106
484         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
485         change.
486
487 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
488
489         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
490         UNITS_PER_WORD for zero sized aggregates.
491
492 2002-04-03  David S. Miller  <davem@redhat.com>
493
494         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
495         one-character spec for this, just use %(link_gcc_c_sequence).
496
497 2002-04-03  David S. Miller  <davem@redhat.com>
498
499         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
500         handling.
501
502 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
503
504         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
505         (DWARF_FRAME_RETURN_COLUMN): Move.
506         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
507         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
508         * pa.c (except.h, predict.h): Include.
509         (FRP): Delete.
510         (store_reg_modify, set_reg_plus_d): Revise prototypes.
511         (output_ascii): Add cast.
512         (store_reg_modify): Revise to add frame notes.
513         (set_reg_plus_d): Likewise.
514         (compute_frame_size): Include space for eh data registers in frame if
515         the current function calls eh_return.
516         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
517         function calls eh_return.  Save eh data registers if the current
518         function calls eh_return.  Fix code to add frame notes.  Emit
519         blockage to prevent insns with frame notes being scheduled in the
520         delay slot of calls.
521         (hppa_expand_epilogue): Restore eh data registers and do final stack
522         adjustment if the current function calls eh_return.  Don't add frame
523         notes.
524         (output_call): Revise for change in length of call insn.  Don't do
525         return pointer adjustment for an unconditional jump in the delay slot
526         of a call when using frame notes.
527         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
528         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
529         (ARG_POINTER_CFA_OFFSET): Define.
530         * pa.md (return_external_pic): New pattern.
531         (prologue): Correct formatting.  Use return_external_pic if current
532         function calls eh_return.
533         (call_internal_symref, call_value_internal_symref,
534         sibcall_internal_symref, sibcall_value_internal_symref): Change default
535         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
536         respectively.
537         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
538
539         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
540         list of targets to check using "nop" insn.
541         * configure: Rebuilt.
542
543 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
544
545         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
546
547 2002-04-03  David S. Miller  <davem@redhat.com>
548
549         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
550         library sequence passed to the linker.
551         (LINK_COMMAND_SPEC): Use it.
552         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
553         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
554         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
555
556 2002-04-03  Jason Merrill  <jason@redhat.com>
557
558         * except.c (struct eh_status): Remove protect_list.
559         (begin_protect_partials, end_protect_partials): Remove.
560         (add_partial_entry): Remove.
561         * except.h: Remove prototypes.
562
563         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
564         expand_decl_cleanup_eh.
565
566         PR c++/5636
567         * tree.h (CLEANUP_EH_ONLY): New macro.
568         * stmt.c (expand_decl_cleanup_eh): New fn.
569         (expand_cleanups): Check CLEANUP_EH_ONLY.
570         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
571         Use expand_decl_cleanup_eh.
572         (expand_stmt): Adjust.
573         * c-common.h: Adjust prototype.
574
575 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
576
577         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
578         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
579         (cris_target_asm_function_epilogue): Ditto.
580         (cris_initial_frame_pointer_offset): Ditto.
581         (cris_simple_epilogue): Ditto.
582         (cris_expand_builtin_va_arg): Variable-size types come in
583         by-reference.
584
585 2002-04-03  David S. Miller  <davem@redhat.com>
586
587         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
588         little-endian.
589         (set_fast_math): Correct 'fsr' type.
590
591 2002-04-03  Richard Henderson  <rth@redhat.com>
592
593         PR opt/3569
594         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
595         * toplev.c (check_global_declarations): Use it.
596         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
597         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
598         (LANG_HOOKS_DECLS): Add it.
599         * langhooks.c (lhd_warn_unused_global_decl): New.
600         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
601         * c-objc-common.c (c_warn_unused_global_decl): New.
602         * c-tree.h (c_warn_unused_global_decl): Declare.
603         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
604
605 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
606
607         * langhooks-def.h (lhd_set_decl_assembler_name,
608         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
609         (LANG_HOOKS_INITIALIZER): Update.
610         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
611         * langhooks.h (struct lang_hooks): New hook.
612         * tree.c (set_decl_assembler_name): Move to langhooks.c.
613         (lang_set_decl_assembler_name): Remove.
614         (init_obstacks): Don't set hook.
615         (decl_assembler_name): New function.
616         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
617         (decl_assembler_name): New.
618         (lang_set_decl_assembler_name): Remove.
619
620 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
621
622         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
623         works properly with .hidden symbols.
624         * configure: Rebuilt.
625         * config.in: Rebuilt.
626         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
627         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
628         properly with .hidden symbols.
629
630 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
631
632         PR middle-end/6102
633         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
634         USE argument.
635
636 2002-04-03  Richard Henderson  <rth@redhat.com>
637
638         PR opt/4120
639         * sched-rgn.c (sets_likely_spilled): New.
640         (sets_likely_spilled_1): New.
641         (add_branch_dependences): Use it.
642
643 2002-04-02  Richard Henderson  <rth@redhat.com>
644
645         PR opt/4311
646         * loop.h (LOOP_FIRST_PASS): New.
647         * loop.c (strength_reduce): Mind it when deciding to unroll.
648         * toplev.c (rest_of_compilation): Set it.
649
650 2002-04-02  David S. Miller  <davem@redhat.com>
651
652         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
653         mems_ok_for_ldd_peep when the order of the loads being examined
654         is reversed.
655         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
656         existing comment to increase comprehension of this situation.
657
658 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
659
660         * config/sh/sh.md: Don't use union real_extract.
661
662 2002-04-02  Richard Henderson  <rth@redhat.com>
663
664         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
665
666 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
667
668         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
669         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
670         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
671         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
672         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
673         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
674         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
675         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
676         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
677         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
678         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
679         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
680         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
681         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
682         Include as many configury headers via tm_file as possible.  This
683         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
684         * config/openbsd-oldgas.h: New file.
685         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
686         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
687         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
688         config/i386/i386-coff.h, config/i386/i386-interix.h,
689         config/i386/iscdbx.h, config/i386/linux-aout.h,
690         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
691         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
692         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
693         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
694         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
695         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
696         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
697         config/i386/vxi386.h: Do not directly include configury headers.
698         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
699         Directly include configury headers that are no longer automatically
700         included by the above headers.
701         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
702         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
703         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
704         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
705         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
706         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
707         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
708         (TARGET_VERSION): Define.
709         * config/i386/beos-elf.h, config/i386/freebsd.h,
710         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
711         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
712         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
713         config/i386/sco5.h, config/i386/sysv4.h
714         (TARGET_VERSION): Do not need to protect.
715         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
716         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
717         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
718         config/i386/i386-interix.h, config/i386/linux-aout.h,
719         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
720         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
721         (YES_UNDERSCORES): Do not define - not needed.
722         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
723         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
724         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
725         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
726         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
727         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
728         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
729         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
730
731 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
732             Richard Henderson  <rth@redhat.com>
733
734         PR c/5484
735         * function.c (assign_temp): Accept either type or decl argument.
736         Detect variables whose size is too large to fit into an integer.
737         * stmt.c (expand_decl): Pass the decl, not the type.
738
739 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
740
741         * protoize.c: Match include directory usage with cppdefault.c.
742
743 2002-04-03  Jeffrey A Law  (law@redhat.com)
744             Hans-Peter Nilsson  <hp@bitrange.com>
745
746         * combine.c (simplify_comparison): Avoid narrowing a comparison
747         with a paradoxical subreg when doing so would drop signficant bits.
748
749 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
750
751         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
752         if POINTERS_EXTEND_UNSIGNED is defined.
753
754 2002-04-02  Richard Henderson  <rth@redhat.com>
755
756         PR opt/3967
757         * local-alloc.c (contains_replace_regs): LO_SUM may contain
758         replace regs.
759
760 2002-04-02  Richard Henderson  <rth@redhat.com>
761
762         * doc/standards.texi: Document required freestanding libc entry points.
763
764 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
765
766         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
767         associated splitter.  Remove MQ constraint.
768         (ctrdi_internal4): Correct CCmode clobber.
769
770 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
771
772         * milli64.S ($$dyncall): New function.
773         * t-linux (LIB1ASMFUNCS): Revise module list.
774         (LIB1ASMSRC): Use pa/milli64.S.
775
776 2002-04-02  Richard Henderson  <rth@redhat.com>
777
778         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
779         rename solaris_sys_varargs_h.
780
781 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
782
783         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
784         the same mode as its component.
785
786 2002-04-02  Richard Henderson  <rth@redhat.com>
787
788         PR opt/190
789         * final.c (this_is_asm_operands): Export.
790         * output.h (this_is_asm_operands): Declare.
791         * config/i386/i386.c (print_operand): Error odd asm operands.
792
793 2002-04-02  Richard Henderson  <rth@redhat.com>
794
795         PR opt/420
796         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
797
798 2002-04-01  Richard Henderson  <rth@redhat.com>
799
800         PR target/1538
801         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
802         * fixinc/fixincl.x: Rebuild.
803
804 2002-04-01  Richard Henderson  <rth@redhat.com>
805
806         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
807         (atomic_alloc, atomic_free): New.
808         (SIZE, MASK_FOR, PTR_IN): New.
809         (emergency_reg_state, emergency_reg_state_free): New.
810         (emergency_labeled_state, emergency_labeled_state_free): New.
811         (reg_state_alloced, labeled_state_alloced): New.
812         (alloc_reg_state, free_reg_state): New.
813         (alloc_label_state, free_label_state, free_label_states): New.
814         (push, pop, dup_state_stack, free_state_stack): Use them.
815         (desc_label_state): Likewise.
816         (uw_frame_state_for): Free label states and state stack.
817         (uw_update_reg_address): Eliminate warnings.
818
819 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
820
821         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
822         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
823
824 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
825
826         * c-decl.c (grokdeclarator): Update.
827         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
828         * c-tree.h (c_mark_addressable): New.
829         * c-typeck.c (default_function_array_conversion, build_unary_op,
830         build_array_ref, convert_for_assignment): Update.
831         (mark_addressable): Rename.
832         * calls.c (try_to_integrate, expand_call): Use langhook.
833         * expr.c (expand_expr): Use langhook.
834         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
835         * langhooks.h (struct lang_hooks): New hook.
836         * stmt.c (expand_asm_operands): Use langhook.
837         * tree.h (mark_addressable): Remove.
838 objc:
839         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
840
841 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
842
843         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
844         in previous change.
845
846 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
847
848         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
849         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
850
851 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
852
853         * c-common.c (unsigned_conversion_warning, convert_and_check,
854         unsigned_type, signed_type, shorten_compare,
855         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
856         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
857         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
858         New.
859         * c-decl.c (grokdeclarator): Update.
860         * c-format.c (check_format_types): Update.
861         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
862         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
863         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
864         * convert.c (convert_to_integer): Use new hooks.
865         * expmed.c (make_tree): Use new hooks.
866         * expr.c (store_expr): Use new hooks.
867         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
868         all_ones_mask_p, unextend, fold): Use new hooks.
869         * langhooks.h (struct lang_hooks_for_types): New hooks.
870         * tree.h (signed_or_unsigned_type, signed_type,
871         unsigned_type): Remove.
872 objc:
873         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
874         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
875
876 2002-03-31  Richard Henderson  <rth@redhat.com>
877
878         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
879         (desc_frgr_mem): Fix reference to f16-f31.
880
881 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
882
883         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
884         RTVEC_ELT): Const-ify.
885         * varray.h (VARRAY_CHECK): Const-ify.
886         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
887         ggc_mark_rtvec, ggc_mark): Const-ify.
888
889 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
890
891         * diagnostic.c: Include langhooks-def.h.
892         * Makefile.in (diagnostic.o): Update.
893
894 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
895
896         * c-common.c (c_unsafe_for_reeval): Rename.
897         * c-common.h (c_unsafe_for_reeval): Rename.
898         * c-decl.c (finish_incomplete_decl): Rename.
899         (c_init_decl_processing): Don't set langhook.
900         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
901         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
902         * c-objc-common.c (c_objc_common_init): Don't set langhook.
903         * c-tree.h (finish_incomplete_decl): Rename.
904         * langhooks-def.h (lhd_unsafe_for_reeval): New.
905         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
906         (LANG_HOOKS_INITIALIZER): Update.
907         * langhooks.c (lhd_unsafe_For_reeval): New.
908         * langhooks.h (struct langhooks): New hooks.
909         * toplev.c (incomplete_decl_finalize_hook): Remove.
910         (wrapup_global_declarations): Update.
911         * tree.c (lang_unsafe_for_reeval): Remove.
912         (unsafe_for_reeval): Update.
913         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
914         Remove.
915 objc:
916         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
917         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
918
919 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
920
921         * diagnostic.c (print_error_function): Remove.
922         (default_print_error_function): Rename.
923         (report_error_function): Update.
924         * diagnostic.h (print_error_function): Remove.
925         (default_print_error_function): Remove.
926         * langhooks-def.h (struct diagnostic_context): Predeclare.
927         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
928         (LANG_HOOKS_INITIALIZER): Update.
929         * langhooks.h (struct diagnostic context): Predeclare.
930         (struct lang_hooks): New hook.
931
932 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
933
934         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
935         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
936         !flag_pic.
937         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
938         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
939         of PIC_OFFSET_TABLE_REGNUM thruout.
940         * config/rs6000/rs6000.md: Likewise.
941         * config/rs6000/darwin.h: Likewise.
942
943 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
944
945         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
946         unsigned HOST_WIDE_INT, not unsigned int.
947
948 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
949
950         PR middle-end/6096, middle-end/6098, middle-end/6099
951         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
952         CODE_LABELs.
953         (fill_slots_from_thread): Likewise.
954
955 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
956
957         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
958         floating fields in float regs.
959         (function_arg_record_value_2): Likewise.
960
961 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
962
963         * config/mmix/mmix.md (define_constants): Remove misleading
964         FIXME.  Add MMIX_fp_rO_OFFSET.
965         ("nonlocal_goto_receiver"): Don't have stack-frame address of
966         saved rO as part of the pattern.  Remove FIXME.
967         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
968         here, at output-time.
969
970 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
971
972         PR middle-end/6100
973         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
974         REG_BR_PRED.
975         (output_v9branch): Likewise.
976
977 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
978
979         * gcc.c: Revert previous patch for now.
980         * config/i386/djgpp.h: Likewise.
981
982 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
983
984         * config/mmix/crti.asm (_init): Register _fini with atexit.
985         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
986
987 2002-03-31  Richard Henderson  <rth@redhat.com>
988
989         PR target/3997
990         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
991         (ASM_OUTPUT_DEF_FROM_DECLS): New.
992
993 2002-03-31  Richard Henderson  <rth@redhat.com>
994
995         * libgcc2.c (__bb_exit_func): Make static.
996
997         * config/alpha/alpha.md (trap): New.
998
999 2002-03-31  Richard Henderson  <rth@redhat.com>
1000
1001         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1002         promoted argument types; build trap.
1003         (expand_builtin_trap): New.
1004         (expand_builtin): Use it.
1005         * stmt.c (expand_nl_goto_receivers): Likewise.
1006         * expr.h (expand_builtin_trap): Declare.
1007         * libfuncs.h (LTI_abort, abort_libfunc): New.
1008         * optabs.c (init_optabs): Init abort_libfunc.
1009
1010 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1011
1012         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1013         (LINK_COMMAND_SPEC): ... from here.
1014         (init_gcc_specs): Duplicate it here too, omitting
1015         shared_name in the second copy.
1016         (init_spec): Test for duplicate
1017         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1018
1019 2002-03-30  David S. Miller  <davem@redhat.com>
1020
1021         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1022         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1023
1024 2002-03-30  Roger Sayle <roger@eyesopen.com>
1025             Richard Henderson  <rth@redhat.com>
1026
1027         * regmove.c (combine_stack_adjustments_for_block): Avoid
1028         emitting a stack adjustment of zero bytes.  Let delete_insn
1029         update bb->head.
1030
1031 2002-03-30  Richard Henderson  <rth@redhat.com>
1032
1033         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1034         (sparc_emitting_epilogue): New.
1035         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1036         * config/sparc/sparc-protos.h: Update.
1037         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1038         (TARGET_SWITCHES): Update.
1039         * config/sparc/sparc.md (return): Remove.
1040         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1041         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1042         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1043         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1044         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1045         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1046         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1047         Remove MASK_EPILOGUE.
1048         * doc/invoke.texi: Update.
1049
1050 2002-03-30  Daniel Berlin  <dan@dberlin.org>
1051
1052         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1053         CPP will start the file for us.
1054
1055 2002-03-30  Richard Henderson  <rth@redhat.com>
1056
1057         PR target/5446
1058         * config/ia64/ia64.c (group_barrier_needed_p): Special case
1059         prologue_allocate_stack.
1060         (ia64_single_set): Use insn codes for recognition of special
1061         cases, not rtl matching.
1062         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1063
1064 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
1065
1066         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1067
1068 2002-03-30  Richard Henderson  <rth@redhat.com>
1069
1070         PR target/6032
1071         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1072         or -fomit-frame-pointer with profiling.
1073         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1074         (FUNCTION_PROFILER): Do nothing.
1075         (PROFILE_HOOK): New.
1076         * config/sparc/sparc.c (sparc_override_options): Don't check
1077         code models for profiling.
1078         (sparc_function_profiler): Remove.
1079         (sparc_profile_hook): New.
1080         * config/sparc/sparc-protos.h: Update.
1081
1082 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
1083
1084         PR optimization/6086
1085         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1086         of SUBREG of volatile MEM or because the MEM was mode dependent,
1087         return CLOBBER instead of unmodified SUBREG.
1088
1089 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1090
1091         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1092         when not optimizing.
1093
1094         * toplev.c (rest_of_compilation): Cann mark_constant_function
1095         only when optimizing.
1096
1097         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1098         are NULL.
1099
1100         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1101         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1102         (try_optimize_cfg): clear all AUX fields.
1103
1104         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1105         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1106         (ix86_address_cost): Be prepared for SUBREGed registers.
1107         (legitimate_address_p): Accept SUBREGed registers.
1108
1109 2002-03-29  Richard Henderson  <rth@redhat.com>
1110
1111         PR target/5672
1112         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1113
1114 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1115
1116         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1117         for aggregate and TFmode types.
1118
1119 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1120
1121         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1122
1123 2002-03-29  Richard Henderson  <rth@redhat.com>
1124
1125         PR target/5886
1126         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1127         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1128
1129 2002-03-29  Richard Henderson  <rth@redhat.com>
1130
1131         PR target/6041
1132         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
1133         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
1134         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
1135         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
1136         conditional.
1137         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1138
1139 2002-03-29  Dale Johannesen <dalej@apple.com>
1140
1141         * loop.c (combine_movables): Do allow combination of pseudos.
1142
1143 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
1144
1145         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
1146         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
1147         No functional change except ...
1148         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
1149         * doc/install.texi (*-*-freebsd*): Document port configuration.
1150
1151 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1152
1153         * Makefile.in (convert.o, calls.o, expmed.o): Update.
1154         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
1155         Use new hooks.
1156         * builtin-types.def (BT_PTRMODE): Update.
1157         * c-common.c (type_for_size): Rename c_common_type_for_size.
1158         (type_for_mode): Similarly.
1159         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
1160         Use new hook.
1161         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
1162         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
1163         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1164         Redefine.
1165         * c-typeck.c (common_type, comptypes, default_conversion):
1166         Use new hooks.
1167         * calls.c: Include langhooks.h.
1168         (emit_library_call_value_1): Use new hooks.  Avoid redundant
1169         calls.
1170         * convert.c: Include langhooks.h
1171         (convert_to_pointer, convert_to_integer): Use new hooks.
1172         * except.c (init_eh): Similarly.
1173         * expmed.c: Include langhooks.h.
1174         (expand_mult_add): Use new hooks.
1175         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
1176         try_casesi): Similarly.
1177         * fold-const.c (optimize_bit_field_compare, make_range,
1178         decode_field_reference, fold_truthop, fold): Similarly.
1179         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
1180         put_var_into_stack): Similarly.
1181         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
1182         LANG_HOOKS_TYPE_FOR_SIZE): New.
1183         (LANG_HOOKS_TYPES_INITIALIZER): Update.
1184         * langhooks.h (lang_hooks_for_types): New hooks.
1185         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
1186         * tree.c (get_unwidened, get_narrower): Similarly.
1187         * tree.h (type_for_mode, type_for_size): Remove.
1188         * varasm.c (force_const_mem): Use new hooks.
1189         * utils2.c (nonbinary_modular_operation): Update.
1190 objc:
1191         * objc-act.c (handle_impent): Update.
1192         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1193         Redefine.
1194
1195 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
1196
1197         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
1198         * config/ia64/ia64.c (basereg_operand): New.
1199         * config/ia64/ia64-protos.h (basereg_operand): Declare.
1200         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
1201
1202 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1203
1204         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
1205         unwind information when frame_pointer_needed.
1206         (mmix_assemble_integer): Tweak wording in comment.
1207
1208 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1209
1210         * Makefile.in (except.o): Update.
1211         * except.c: Include langhooks.h.
1212         (init_eh): Use langhook.
1213         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
1214         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
1215         (LANG_HOOKS_INITIALIZER): Update.
1216         * langhooks.h (lang_hooks_for_types): New.
1217         (struct lang_hooks): Add it.
1218         * tree.c (make_lang_type_fn, make_lang_type): Remove.
1219         * tree.h (make_lang_type_fn, make_lang_type): Remove.
1220 config:
1221         * alpha/alpha.c: Include langhooks.h.
1222         (alpha_build_va_list): Use langhook.
1223         * d30v/d30v.c: Include langhooks.h.
1224         (d30v_build_va_list): Use langhook.
1225         * i386/i386.c: Include langhooks.h.
1226         (ix86_build_va_list): Use langhook.
1227         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
1228         * s390/s390.c: Include langhooks.h.
1229         (s390_build_va_list): Use langhook.
1230         * stormy16/stormy16.c: Include langhooks.h.
1231         (stormy16_build_va_list): Use langhook.
1232
1233 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
1234
1235         PR c++/5964
1236         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
1237         attributes.
1238         (length): Compute variable length for branches/calls/jumps here.
1239         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
1240         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
1241         define branch_type attribute.
1242         (divsi3_sp32): Maximum length is 6 not 7.
1243         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
1244         call_address_untyped_struct_value_sp32,
1245         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
1246         * config/sparc/sparc.c (empty_delay_slot): New function.
1247         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
1248         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
1249
1250 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
1251
1252         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
1253         nonzero_bits if not needed.
1254         (nonzero_bits) [XOR]: Likewise.
1255         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
1256         reg_last_set_mode and mode are both MODE_INT, but not equal.
1257         (record_value_for_reg): Compute reg_last_set_nonzero_bits
1258         in nonzero_bits_mode for MODE_INT modes.
1259
1260 2002-03-28  Richard Henderson  <rth@redhat.com>
1261
1262         PR target/5715
1263         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
1264         to GAS.  Correct drift between alternatives.
1265
1266 2002-03-28  Richard Henderson  <rth@redhat.com>
1267
1268         PR target/6087
1269         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
1270
1271 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
1272
1273         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
1274         emulation to the linker.
1275
1276 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
1277
1278         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
1279         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1280
1281 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
1282
1283         * combine.c (simplify_and_const_int): Make sure to apply mask
1284         when force_to_mode returns a constant integer.  PR3311.
1285
1286 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1287
1288         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
1289
1290 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1291
1292         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
1293         and Objective-C Dialect Options.
1294
1295 2002-03-28  Richard Henderson  <rth@redhat.com>
1296
1297         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
1298         comparison should be done vs !=0 not >0 return code.  Tidy cases.
1299
1300 2002-03-28  Richard Henderson  <rth@redhat.com>
1301
1302         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
1303         on to c_expand_body.
1304         * c-tree.h (finish_function): Update decl.
1305         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
1306
1307 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
1308
1309         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
1310
1311 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
1312
1313         * rtlanal.c: Include flags.h
1314         (may_trap_p): Do not mark FP operations if trapping
1315         if !flag_trapping_math
1316         * Makefile.in (rtlanal.o): Add dependency on flag.h
1317         * ifcvt.c (noce_operand_ok): Avoid the lameness.
1318
1319 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
1320
1321         * mips.md: Use dconst1, not 1.0, as first argument of
1322         REAL_VALUE_LDEXP.  Don't use union real_extract.
1323
1324 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
1325
1326         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
1327         rather than $target.  Heed program_prefix and
1328         program_transform_name.  Search for gas in cross-compiler case too.
1329         "test -x" rather than "test -f".
1330         (gcc_cv_ld): Likewise.
1331         (gcc_cv_nm): Heed program_prefix and program_transform_name.
1332         (gcc_cv_objdump): Likewise.
1333         * configure: Regenerate.
1334
1335 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1336
1337         * Makefile.in (attribs.o): Update.
1338         * attribs.c: Include langhooks.h.
1339         (decl_attributes): Use langhook.
1340         * c-decl.c (insert_default_attributes): Rename.
1341         * c-tree.h (c_insert_default_attributes): New.
1342         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
1343         (LANG_HOOKS_INITIALIZER): Update.
1344         * langhooks.h (struct lang_hooks): New hook.
1345         * tree.h (insert_default_attributes): Remove.
1346 objc:
1347         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
1348
1349 2002-03-27  Andreas Schwab  <schwab@suse.de>
1350
1351         * config/i386/i386.c (classify_argument): Also check for
1352         QUAL_UNION_TYPE.
1353
1354 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1355
1356         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
1357         any more.
1358
1359 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
1360
1361         * i960.md (ret): Set PC.
1362         (nonlocal_goto): Fix expander.
1363         * builtins.c (epxand_builin_longjmp): Check that we've emitted
1364         some jump or call.
1365
1366 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
1367
1368         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
1369         of libcall regions.
1370
1371 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1372
1373         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
1374         assigning to BLOCK_FOR_INSN directly.
1375
1376 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
1377
1378         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
1379
1380 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1381
1382         * c-common.c (c_expand_expr): Fix prototype.
1383         * c-common.h (c_expand_expr): Always declare, update.
1384         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1385         * c-objc-common.c (c_objc_common_init): No global hook.
1386         * expr.c (expand_expr): Use langhook.
1387         * expr.h (enum expand_modifier): Conditionally declare.
1388         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
1389         (LANG_HOOKS_INITIALIZER): Update.
1390         * langhooks.c (lhd_expand_expr): New.
1391         * langhooks.h (struct lang_hooks): New hook.
1392         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
1393         (lang_independent_init): Don't default hook.
1394 objc:
1395         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1396
1397 2002-03-27  Richard Henderson  <rth@redhat.com>
1398
1399         PR target/6054
1400         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
1401         TARGET_CONST_GP.  Simplify conditions.
1402
1403 2002-03-27  Richard Henderson  <rth@redhat.com>
1404
1405         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
1406         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
1407         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
1408
1409 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
1410
1411         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
1412         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
1413         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
1414         Remove unnecessary masks.
1415         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
1416         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
1417         -mwindows, -mdll switches and their negations.
1418
1419 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1420
1421         * gcc-common.c (lang_mark_false_label_stack): Remove.
1422         * ggc.h (lang_mark_false_label_stack): Similarly.
1423
1424 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
1425
1426         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
1427
1428         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
1429         or __rtems_ is defined.
1430
1431 2002-03-26  Richard Henderson  <rth@redhat.com>
1432
1433         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
1434         if a non-trivial load was emitted.
1435         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
1436         in high+extra+low case.
1437
1438 2002-03-26  Richard Henderson  <rth@redhat.com>
1439
1440         * config.gcc (sparc*-solaris): Use float_format=sparc.
1441
1442 2002-03-26  Richard Henderson  <rth@redhat.com>
1443
1444         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
1445         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
1446         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
1447         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
1448         (WINT_TYPE_SIZE): Fix at 32.
1449
1450 2002-03-26  Richard Henderson  <rth@redhat.com>
1451
1452         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
1453         until after eh landing pad generation.
1454         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
1455         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
1456
1457 2002-03-26  Richard Henderson  <rth@redhat.com>
1458
1459         * expr.h (ADD_PARM_SIZE): One more convert for INC.
1460
1461 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
1462
1463         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
1464         and warning switches.
1465         (cc1_options):  Likewise.
1466
1467 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
1468
1469         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
1470         Restore more of the signal context.  Set no_reg_stack_frame.
1471         * config/ia64/unwind-ia64.c (unw_state_record):
1472         Add no_reg_stack_frame, comments.
1473         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
1474         (uw_update_context): Adjust bsp when unwinding from leaf,
1475         but not signal frame.
1476
1477 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
1478
1479         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
1480
1481 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
1482
1483         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
1484
1485 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
1486
1487         PR target/5621
1488         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
1489         "Add a pool_range attribute", which was lost during the ARM/Thumb
1490         merge.
1491
1492 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
1493
1494         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
1495         a register into the MAC16 accumulator.
1496
1497 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
1498
1499         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
1500         (Warning Options): Document -Wswitch-enum.
1501         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
1502         -Wswitch.
1503         (warn_switch_enum): Define variables.
1504         * flags.h (warn_switch_enum): Declare variables.
1505         * stmt.c (expand_end_case_type): When warn_switch_enum /
1506         -Wswitch-enum, perform switch checks.
1507         Fix PR c/5044.
1508
1509 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
1510
1511         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
1512         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
1513         (reload_muladdsi_compare0_scratch): Delete.
1514
1515 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
1516
1517         * doc/install.texi (*-*-freebsd*): Update.
1518
1519 2002-03-26  Richard Henderson  <rth@redhat.com>
1520
1521         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
1522         (SUB_PARM_SIZE): Cast DEC to ssizetype.
1523
1524         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
1525         types from the normal argument frame.
1526
1527         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
1528         variable sized objects by reference.
1529         (sparc_va_arg): Receive them by reference too.
1530
1531 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
1532
1533         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
1534         code to not restoring global registers.
1535
1536 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1537
1538         * Makefile.in (ggc-common.o): Update.
1539         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
1540         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1541         * c-tree.h (c_mark_tree): New.
1542         * ggc-common.c: Include langhooks.h.
1543         (gcc_mark_trees): Use new langhook.
1544         * ggc-callbacks.c: Delete file.
1545         * ggc.h (lang_mark_tree): Remove.
1546         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
1547         (LANG_HOOKS_INITIALIZER): Update.
1548         * langhooks.h (struct lang_hooks): New hook.
1549 objc:
1550         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1551
1552 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
1553
1554         * doc/cpp.texi: Exclude entire Top node from printed manual.
1555         Move option index after directive index.  Insert page breaks
1556         before GFDL and concept index.  Index environment variables
1557         with command line options.
1558         * doc/cppenv.texi: Use @vtable for environment variable list.
1559         Add paragraph explaining semantics of empty elements in path
1560         variables.  Exclude a cross-reference to Fishkill from the
1561         manpage.  Remove an unnecessary cross-reference of the entry
1562         right above the referer.  Don't use @anchor in text that goes
1563         into manpage.
1564         * doc/cppopts.texi: Cross-reference the environment variables
1565         section, not the specific environment variable, for consistency.
1566
1567 2002-03-25  Richard Henderson  <rth@redhat.com>
1568
1569         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
1570         anywhere in the block.  Don't refer to insns that have been
1571         removed from the chain.  Iterate backward through the new insns.
1572         Don't refer to edges that have been removed.
1573
1574 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
1575
1576         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
1577         test for overflow of constant.
1578
1579 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
1580
1581         PR target/2623
1582         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
1583         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
1584         these patterns on arm_archv4.
1585
1586 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
1587
1588         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
1589         int".
1590
1591 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
1592
1593         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
1594         float_handled, float_handler, float_signal, set_float_handler,
1595         and do_float_handler.  Set handler for SIGFPE to crash_signal.
1596         * toplev.h: Don't prototype do_float_handler.
1597
1598         * c-lex.c: Fold parse_float into lex_number.  Make warning
1599         about portability of hex float constants more informative, and
1600         don't issue it on top of a syntax error.
1601         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
1602         their callers.
1603         * real.h: Define REAL_VALUE_ABS here...
1604         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
1605         simplify_unary_real, simplify_binary_real, and
1606         simplify_binary_is2orm1 into their callers.
1607         * tree.c: Fold build_real_from_int_cst_1 into caller.
1608
1609         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
1610
1611         * tsystem.h: Include float.h here...
1612         * libgcc2.c: ... not here.
1613
1614 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
1615
1616         Fixes for: PR bootstrap/3591, target/5676
1617         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
1618         defined.  Do not disable exceptions or rtti.
1619         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
1620         mcore.h.  Disable exceptions and rtti, since they are not
1621         supported by EPOC.
1622
1623 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1624
1625         * c-decl.c (maybe_build_cleanup): Remove.
1626         * expr.c (expand_expr): Use langhook.
1627         * langhooks-def.h (lhd_return_null_tree,
1628         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
1629         (LANGHOOKS_INITIALIZER): Update.
1630         * langhooks.c (lhd_return_null_tree): New.
1631         * langhooks.h (struct lang_hooks): New hook.
1632         * tree-inline.c (initialize_inlined_parameters): Use langhook.
1633         * tree.h (maybe_build_cleanup): Remove.
1634
1635 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
1636
1637         * regrename.c (build_def_use): Move recog_memoized
1638         before extract_insn.
1639
1640 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
1641
1642         PR target/6043
1643         * expr.c (emit_group_store): Handle storing into CONCAT.
1644
1645 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
1646
1647         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
1648         corresponding MATCH_DUP.
1649
1650 2002-03-24  Richard Henderson  <rth@redhat.com>
1651
1652         * unroll.c (unroll_loop): Zero label_map.
1653
1654         * gcse.c: Include except.h.
1655         * Makefile.in (gcse.o): Update.
1656
1657 2002-03-24  Richard Henderson  <rth@redhat.com>
1658
1659         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
1660         Do resolve_unique_section before shared data clause.
1661
1662 2002-03-24  Richard Henderson  <rth@redhat.com>
1663
1664         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
1665
1666 2002-03-24  Richard Henderson  <rth@redhat.com>
1667
1668         * recog.c (peephole2_optimize): Split blocks when EH insns are
1669         generated in the middle of a block.  Do global life update if
1670         zapped EH edges.
1671
1672 2002-03-24  Richard Henderson  <rth@redhat.com>
1673
1674         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
1675
1676 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1677
1678         preprocessor/3951
1679         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
1680         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
1681         (init_dependency_output): Don't make no_output decision here.
1682
1683 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
1684
1685         * stmt.c (check_for_full_enumeration_handling): Remove tests of
1686         warn_switch.  Update description.
1687         (expand_end_case_type): Call check_for_full_enumeration_handling
1688         when warn_switch.
1689
1690 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1691
1692         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
1693         (m68hc11_split_move): Call it to see if the source and destination
1694         operands use the same direction auto inc/dec mode, otherwise make the
1695         source an offsetable memory operand and generate an add.
1696
1697 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1698
1699         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
1700         register for operand 2.
1701         ("*subsi3_zero_extendqi"): Likewise.
1702         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
1703         bits so that it is compatible with a pop.
1704         ("*andhi3_gen"): Likewise.
1705         ("xorhi3"): Likewise.
1706
1707 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1708
1709         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
1710         -pedantic here...
1711         (cpp_post_options): ... not here.
1712
1713 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1714             Aldy Hernandez  <aldyh@redhat.com>
1715
1716         Removal of separate preprocessor cpp0.
1717
1718         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
1719         cpp0, install-common): Update.
1720         * c-common.c (flag_preprocess_only): New.
1721         (c_common_init): Preprocess for -E.
1722         * c-common.h (flag_preprocess_only): New.
1723         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
1724         * c-objc-common.c (c_init_decl_processing): Exit quickly
1725         for NULL return from c_common_init.
1726         * cpplib.h (cpp_preprocess_file): New.
1727         * cppmain.c (main, general_init, pfile, progname): Remove.
1728         (do_preprocessing): Rename cpp_preprocess_file, don't call
1729         cpp_finish.  Don't close stdout here.
1730         (setup_callbacks): Update prototype.
1731         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
1732         Update.
1733         * tradcpp.c (main): Ignore -quiet.
1734 objc:
1735         * lang-specs.h (default_compilers): Preprocess with cc1obj.
1736
1737 2002-03-24  Richard Henderson  <rth@redhat.com>
1738
1739         PR optimization/5742
1740         * machmode.def: Add inner mode field to complex modes.
1741         * config/mips/mips.c (mips_function_value): Always define.  Add
1742         new argument to handle libcalls.
1743         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
1744         (FUNCTION_VALUE): Likewise.
1745         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
1746         * config/mips/mips-protos.h: Update.
1747
1748 2002-03-23  Richard Henderson  <rth@redhat.com>
1749
1750         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
1751         * config/sparc/sparc-protos.h: Update.
1752         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
1753
1754 2002-03-23  Richard Henderson  <rth@redhat.com>
1755
1756         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
1757         _start or _init begins the text segment.
1758
1759 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
1760
1761         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
1762         not HOST_WIDEST_INT.
1763         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
1764
1765 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
1766
1767         PR java/5489
1768         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
1769         operand argument to output_return_instruction.
1770         * arm.c (arm_print_operand, case 'd'): If the operand is
1771         const_true_rtx then just return.
1772         (arm_print_operand, case 'D'): If the operand is const_true_rtx
1773         then abort.
1774
1775 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
1776
1777         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
1778         (Warning Options): Document -Wswitch-default.
1779         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
1780         -Wswitch.
1781         (warn_switch_default): Define variable.
1782         (warn_switch): Update comment.
1783         * flags.h (warn_switch_default): Declare variable.
1784         (warn_switch): Update comment.
1785         * stmt.c (expand_end_case): Check for and, when
1786         warn_switch_no_default, warn of a missing default case.
1787
1788 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
1789
1790         * real.h (N): Special case 128 bit doubles.
1791
1792         * combine.c (simplify_comparison): When widening modes, ignore
1793         sign extension on CONST_INTs.
1794
1795 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
1796
1797         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
1798         passed to adjust_address.  Fix comment formatting.
1799
1800
1801 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
1802
1803         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
1804         Always make REAL_VALUE_TYPE a struct containing an array of
1805         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
1806         big it is.  Don't declare or use union real_extract.
1807
1808         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
1809         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
1810         (print_operand), config/arm/arm.c (output_move_double),
1811         config/arm/arm.md (consttable_4, consttable_8),
1812         config/romp/romp.c (output_fpops), config/s390/s390.h
1813         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
1814         (xtensa_output_literal): Don't use union real_extract.
1815
1816         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
1817         (sfmode_constant_to_ulong), config/ns32k/merlin.h
1818         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
1819         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
1820         (PRINT_OPERAND): Don't use local version of union
1821         real_extract.
1822
1823         * config/convex/convex.c (check_float_value), config/vax/vax.c
1824         (vax_float_literal), config/m88k/m88k.md (divdf3),
1825         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
1826         config/pdp11/pdp11.c (output_move_quad): Don't do host
1827         arithmetic on target floating point quantities.
1828
1829         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
1830         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
1831
1832         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
1833         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
1834
1835         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
1836         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
1837         INFINITY.
1838         * print-rtl.c (print_rtx): Disable code which needs
1839         floating-point emulator.
1840         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
1841         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
1842         depending on HOST_FLOAT_FORMAT to be defined properly.
1843
1844         * config/1750a/1750a.c (get_double, float_label): Delete.
1845         (print_operand): Delete huge commented-out chunk.  Use
1846         REAL_VALUE_TO_DECIMAL.
1847         * config/1750a/1750a-protos.h: Delete prototypes of deleted
1848         functions.
1849         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
1850         IEEE_FLOAT_FORMAT.
1851         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
1852         Use REAL_VALUE_TO_DECIMAL as ELF version does.
1853         * config/m88k/m88k.c (real_power_of_2_operand,
1854         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
1855         real_extract out of the union; run the input through
1856         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
1857         from that into the union.
1858         * config/pdp11/pdp11.c (output_move_double): Rearrange
1859         parentheses to make automatic indenter happy.
1860
1861         * doc/tm.texi (Cross-compilation): Rename node to "Floating
1862         Point" and rewrite to describe current situation.  Also adjust
1863         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
1864         match code.
1865         * doc/rtl.texi: Adjust cross reference.
1866
1867 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
1868
1869         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
1870         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
1871         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
1872         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
1873         prevent use of sp as a reload register.
1874         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
1875         non_acc_reg_operand.
1876         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
1877         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
1878         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
1879         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
1880
1881 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1882
1883         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
1884         * cpplex.c (unterminated): Delete.
1885         (parse_string): No string literal may extend over multiple
1886         lines.  Suppress the error when preprocessing assembly.
1887         * cppmain.c (scan_translation_unit): Strings are single-line.
1888
1889         * doc/cpp.texi: Update to match.
1890
1891 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
1892
1893         PR optimization/5854
1894         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
1895         Shut up warnings.
1896         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
1897         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
1898         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
1899         const0 if scratch register was not allocated.
1900         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
1901         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
1902         with GEN_INT (...).
1903         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
1904         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
1905         with GEN_INT (...) everywhere.  Remove constraints in define_split
1906         patterns.
1907         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
1908         require scratch register for setting 0 into regs/non-pushable memory.
1909
1910 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
1911
1912         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
1913         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
1914
1915 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
1916
1917         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
1918         * cppinit.c (cpp_create_reader):  On by default.
1919         (cpp_handle_option):  Handle -W[no-]endif-labels.
1920         (cpp_post_options):  Also enable if -pedantic.
1921         * cpplib.c (do_else):  Use it.
1922         (do_endif):  Likewise.
1923         * doc/cppopts.texi:  Document new option.
1924         * doc/invoke.texi:  Document new option.
1925
1926 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
1927
1928         * config/i386/i386.c, config/i386/i386.md: Change all occurences
1929         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
1930
1931 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
1932
1933         * flow.c (calculate_global_regs_live): Clear aux fields of
1934         ENTRY and EXIT.
1935
1936 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
1937
1938         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
1939         REG or MEM subregs, pass rtx * instead of rtx to it.
1940         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
1941         rtx * instead of rtx to alter_subreg.
1942         * config/m32r/m32r.c (gen_split_move_double): Likewise.
1943         * config/pj/pj.c (pj_output_rval): Likewise.
1944
1945 2002-03-22  Richard Henderson  <rth@redhat.com>
1946
1947         PR target/3177
1948         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
1949         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
1950         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
1951         (ia64_expand_prologue): Look at int_regs, not words, for number
1952         of incomming int regs.
1953
1954 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
1955
1956         * expr.c (expand_expr): A RESULT_DECL is part of a call.
1957
1958 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
1959
1960         * toplev.c (flag_loop_optimize, flag_crossjumping):
1961         New static variables.
1962         (rest_of_compilation): Conditionalize crossjumping and
1963         loop optimizer.
1964         (parse_options_and_default_flags): Default loop_optimize and
1965         crossjumping.
1966         (lang_independent_options): Add -fcrossjumping and -floop-optimize
1967         * invoke.texi (crossjumping, loop-optimize): Document.
1968
1969 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
1970
1971         * real.c (eiisneg): Move outside #ifdef NANS.
1972
1973 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
1974
1975         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
1976         frequencies match; avoid match on different loop depths.
1977         (try_crossjump_to_bb): Kill tests that no longer brings time
1978         savings.
1979         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
1980         updating code.
1981         (split_edge): Likewise.
1982
1983         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
1984         variable.
1985
1986         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
1987         * cfgrtl.c: Include insn-config.h
1988         (split_block) Dirtify block in presence of conditional execution
1989
1990 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
1991
1992         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
1993         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
1994         (function_arg): Constify CUMULATIVE_ARGS.
1995         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
1996         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
1997         (UNITS_PER_DOUBLE): New macro.
1998         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
1999         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
2000         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
2001         fp_regs and stack_words.
2002         (EABI_FLOAT_VARARGS_P): New macro.
2003         * config/mips/mips.c (struct mips_arg_info): New.
2004         (mips_arg_info): New function.
2005         (function_arg_advance): Use it.  Add adjustment instructions here
2006         rather than in function_arg.
2007         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
2008         for VOIDmode at the beginning of the function.
2009         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
2010         (function_arg_pass_by_reference): Likewise.
2011         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2012         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2013         (mips_va_start): Likewise.  Use the new stack_words field of
2014         CUMULATIVE_ARGS to set up overflow area.  Reformat.
2015         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
2016         doubles and other types, aligning the overflow pointer for non-doubles
2017         too.  Remove some code duplication.  Replace hard-coded constants.
2018
2019 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2020
2021         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2022         (CLASS_UNITS): Undefine.
2023         (CLASS_MAX_NREGS): Use FP_INC.
2024         * config/mips/mips.c (compute_frame_size): Likewise.
2025         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2026
2027 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2028
2029         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2030         prototype, and handle lexing numbers and identifiers.
2031         (parse_identifier): Update to new form of parse_slow.
2032         (parse_number): Fast path only, use parse_slow otherwise.
2033         (_cpp_lex_direct): Update calls to parse_number.
2034
2035 2002-03-21  DJ Delorie  <dj@redhat.com>
2036
2037         * bb-reorder.c (make_reorder_chain_1): Protect against
2038         when redundant edges are omitted.
2039         * predict.c (dump_prediction): Likewise.
2040
2041 2002-03-21  Richard Henderson  <rth@redhat.com>
2042
2043         PR target/5996
2044         * fixinc/inclhack.def (solaris_stdio_tag): New.
2045         * fixinc/fixincl.x: Regenerate.
2046
2047 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2048
2049         PR c/5597
2050         * c-typeck.c (process_init_element): Flag non-static
2051         initialization of a flexible array member as illegal.
2052
2053 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
2054
2055         * config/rs6000/t-linux64: New.
2056         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2057         t-ppccomm.  Use t-rs6000 and t-linux64.
2058         (powerpc64-*-gnu* <tmake_file>): Likewise.
2059         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2060         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2061         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2062
2063 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
2064
2065         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2066         flag_really_no_inline instead of optimize == 0.
2067
2068         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2069
2070         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2071
2072         * flags.h (flag_really_no_inline): New.
2073
2074         * c-common.c (c_common_post_options): Initialize
2075         flag_really_no_inline.
2076
2077         * toplev.c (flag_really_no_inline): New.
2078
2079 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2080
2081         * config/avr/avr.md (length): Fix length computation for
2082         conditional branches.
2083
2084 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2085
2086         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2087         sdbout.o, profile.o): Update.
2088         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2089         langhook.
2090         * c-common.h (gettags): Move here from tree.h.
2091         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2092         insert_block, getdecls, kept_level_p, global_bindings_p): New.
2093         * dbxout.c (dbxout_init): Use getdecls langhook.
2094         * expr.c (expand_expr): Use insert_block langhook.
2095         * fold-const.c: Include langhooks.h.
2096         (fold_range_test, fold_binary_op_with_conditional_arg,
2097         fold): Use global_bindings_p langhook.
2098         * integrate.c (expand_inline_function): Use insert_block langhook.
2099         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2100         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2101         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2102         LANG_HOOKS_GETDECLS): New.
2103         (LANG_HOOKS_INITIALIZER): Update.
2104         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2105         langhook.
2106         * langhooks.h (struct lang_hooks_for_decls): New.
2107         (struct lang_hooks): Update.
2108         * profile.c: Include langhooks.h.
2109         (output_func_start_profiler): Use new langhooks.
2110         * sdbout.c: Include langhooks.h.
2111         (sdbout_init, sdbout_finish): Use getdecls langhook.
2112         * stmt.c: Include langhooks.h.
2113         (expand_fixup, fixup_gotos): Use new langhooks.
2114         * stor-layout.c: Include langhooks.h.
2115         (variable_size): Use global_bindings_p langhook.
2116         * toplev.c (compile_file): Use getdecls langhook.
2117         * tree-inline.c (remap_block): Use insert_block langhook.
2118         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
2119         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
2120
2121 2002-03-21  Richard Henderson  <rth@redhat.com>
2122
2123         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2124         constants in .data when -fpic.
2125
2126 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2127
2128         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2129         where appropriate.
2130
2131 2002-03-21  Tom Tromey  <tromey@redhat.com>
2132
2133         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
2134
2135 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2136
2137         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2138
2139         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2140
2141 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2142             Richard Henderson  <rth@redhat.com>
2143
2144         PR c/5354
2145         * c-common.c (c_expand_expr): Preserve result of a statement
2146         expression if needed.
2147
2148 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2149
2150         PR bootstrap/4195
2151         * genrecog.c (maybe_both_true_mode): Remove.
2152         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
2153         * machmode.def (Pmode): Likewise.
2154
2155 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
2156
2157         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
2158         (nonlocal_mentioned_p_1): New function.
2159         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
2160         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
2161         (mark_constant_function): Recognize pure functions.
2162         * rtl.h (global_reg_mentioned_p): New prototype.
2163         * rtlanal.c (global_reg_mentioned_p,
2164         global_reg_mentioned_p_1): New function.
2165
2166 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2167
2168         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2169         UNIX assert.h.
2170         * fixinc/fixincl.x: Regenerate.
2171
2172 2002-03-20  Jason Merrill  <jason@redhat.com>
2173
2174         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2175
2176 2002-03-20  Michael Meissner  <meissner@redhat.com>
2177
2178         * doc/invoke.texi (Optimize Options): Document that -O2 sets
2179         -fstrict-aliasing.
2180
2181 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2182
2183         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2184         ".literal_position" directive before the constant pool.
2185
2186 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2187
2188         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
2189         Add Craig Rodrigues.
2190         Add Brad Lucier to testers.
2191
2192 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2193
2194         PR target/4792
2195         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
2196         to if_then_else.
2197         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
2198         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
2199         instead of insn_extract.
2200
2201 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2202
2203         PR bootstrap/4192
2204         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
2205
2206         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
2207         stmt if some case has been output.
2208
2209 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2210
2211         PR c/5972
2212         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
2213         movsfcc_1, movdfcc_1): Add %O2.
2214         * config/i386/i386.c (print_operand): Handle %ON.
2215         Print . before float condition codes in Sun as cmov syntax.
2216         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
2217         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
2218         no longer true.
2219
2220 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
2221
2222         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
2223         return instruction if PC was popped.
2224
2225 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2226
2227         * config/xtensa/xtensa.md: Remove unused type attributes.
2228         (adddi_carry, subddi_carry): Change type attribute to "multi".
2229
2230 2002-03-19  Dale Johannesen  <dalej@apple.com>
2231
2232         PR optimization/5999, middle-end/5731
2233         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
2234         multiplications by reciprocals.
2235
2236 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2237
2238         * Makefile.in: Update.
2239         * c-common.c: Include langhooks.h.
2240         (inline_forbidden_p): Use new hook.
2241         * diagnostic.c: Include langhooks.h.
2242         (format_with_decl, announce_function,
2243         default_print_error_function): Use new hook.
2244         * dwarf2out.c (dwarf2_name): Use new hook.
2245         * function.c: Include langhooks.h.
2246         (init_function_start): Use new hook.
2247         * langhooks-def.h (lhd_decl_printable_name): New.
2248         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
2249         (LANGHOOKS_INITIALIZER): Update.
2250         * langhooks.c (lhd_decl_printable_name): New.
2251         * langhooks.h (struct lang_hooks): New hook.
2252         * toplev.c (decl_name, decl_printable_name): Remove.
2253         (open_dump_file): Use new hook.
2254         (process_options): Remove old hook.
2255         * tree.h (decl_printable_name): Remove.
2256 objc:
2257         * objc-act.c (objc_init): Remove old hook.
2258         (objc_printable_name): Export.
2259         * objc-act.h (objc_printable_name): New.
2260         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
2261
2262 2002-03-19  Jim Blandy  <jimb@redhat.com>
2263
2264         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
2265         the start_source_file debug hook, not the current line number.
2266
2267 2002-03-19  Richard Henderson  <rth@redhat.com>
2268
2269         * flow.c (EH_USES): Provide default.
2270         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
2271         * doc/tm.texi (EH_USES): New.
2272
2273         * config/ia64/ia64.c (ia64_eh_uses): New.
2274         * config/ia64/ia64-protos.h: Update.
2275         * config/ia64/ia64.h (EH_USES): New.
2276
2277 2002-03-19  Richard Henderson  <rth@redhat.com>
2278
2279         * varasm.c (output_constant_def): Fix stupid typo.
2280
2281 2002-03-19  Richard Henderson  <rth@redhat.com>
2282
2283         PR 5879
2284         * except.c (current_function_has_exception_handlers): New.
2285         * except.h: Declare it.
2286         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
2287         Combine tests that disable all sibcalls for the function.
2288
2289 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
2290
2291         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
2292         for INTEGER_CST.
2293
2294 2002-03-19  Richard Henderson  <rth@redhat.com>
2295
2296         PR 5977, 5991
2297         * config/ia64/ia64.c: Revert 2002-03-01 patch.
2298         * config/ia64/ia64.h (INIT_EXPANDERS): New.
2299
2300 2002-03-19  Jim Blandy  <jimb@redhat.com>
2301
2302         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
2303         name, even if the replacement list contains no tokens, as required
2304         by Dwarf.
2305
2306 2002-03-19  Jason Merrill  <jason@redhat.com>
2307
2308         * varasm.c (globalize_decl): Get the name from the RTL, not
2309         DECL_ASSEMBLER_NAME.
2310
2311         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
2312
2313 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
2314
2315         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
2316         subdi_carry): Define.
2317
2318 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
2319
2320         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
2321         about -fpic/-fPIC if extra_warnings set.
2322
2323 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
2324
2325         * expr.c (expand_expr): Sign-extend CONST_INT generated from
2326         TREE_STRING_POINTER.
2327         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
2328
2329 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2330
2331         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
2332         in favor of SP if FRAME_POINTER_REQUIRED is false.
2333
2334 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
2335
2336         * emit-rtl.c (gen_int_mode): New function.
2337         * rtl.h: Prototype for it.
2338         * combine.c (make_extraction, simplify_comparison), expmed.c
2339         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
2340         (convert_modes, store_field), optabs.c (expand_fix),
2341         simplify-rtx.c (neg_const_int, simplify_unary_real),
2342
2343         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
2344         Use it instead of GEN_INT (trunc_int_for_mode (...)).
2345
2346 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
2347
2348         PR c/5656
2349         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
2350         convert_parm_for_inlining.
2351         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2352         Define.
2353         * langhooks-def.h: Likewise.
2354         * objc/objc-lang.c: Likewise.
2355         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
2356         function.
2357         * tree-inline.c (initialize_inlined_parameters):
2358         Call convert_parm_for_inlining lang hook if needed.
2359         * c-typeck.c (c_convert_parm_for_inlining): New function.
2360         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
2361
2362 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
2363
2364         * calls.c (precompute_arguments): Do not assume that temporaries
2365         can be destroyed after expanding the argument.
2366         (expand_call): Likewise.
2367
2368 2002-03-15  Eric Christopher  <echristo@redhat.com>
2369
2370         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
2371         Fix register preference on last change.
2372         * config/mips/mips.c (mips_return_in_memory): New function.
2373         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
2374         * config/mips/mips-protos.h: Declare.
2375         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
2376         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
2377
2378 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
2379
2380         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
2381         a register too.
2382         (anddi3, iorsi3): Likewise.
2383
2384         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
2385         use %gprel for symbols that are going to be placed in linkonce
2386         sections.
2387
2388         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
2389         RETURN_ADDRESS_POINTER_REGNUM to $ra.
2390         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
2391         not needed.  Disregard leaf_function_p().
2392         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
2393         mips16 frame pointer.
2394         * config/mips/mips.md (store ra): Only to small SP offsets.
2395         2001-08-22  Graham Stott  <grahams@redhat.com>
2396         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
2397         return a REG rtx for the return address register.
2398
2399 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
2400
2401         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
2402         constant-pool addresses as "mode-dependent".
2403         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
2404
2405 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
2406
2407         PR target/5740
2408         * expr.c (emit_group_load): Use extract_bit_field if
2409         needed for CONCAT arguments.
2410
2411 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
2412
2413         PR target/4863
2414         * arm.md (tablejump): Make this a define_expand.  For PIC add the
2415         offset to the base of the table.
2416         (thumb_tablejump): Matcher for Thumb tablejump insn.
2417         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
2418         as the difference of two labels.
2419         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2420         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
2421         tables in the code.
2422         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2423         * arm.c (get_jump_table_size): If the table is not in the text
2424         section, return zero.
2425
2426 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
2427
2428         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
2429         of gen_rtx_SUBREG.
2430         (arm_reload_out_hi): Use gen_lowpart instead of
2431         gen_rtx_SUBREG to access QImode components.
2432         * config/arm/arm.md: Disable zero_extend split for QImode
2433         subregs in BIG_ENDIAN mode.
2434         (storehi_bigend): Match use of least significant byte.
2435         (storeinthi): Remove extraneous SUBREG.
2436         Add missing construction of operands[2].
2437         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
2438         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
2439         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
2440
2441 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
2442
2443         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
2444         any_operand.
2445
2446 2002-03-17  Richard Henderson  <rth@redhat.com>
2447
2448         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
2449         explicitly.
2450
2451 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
2452
2453         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
2454         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
2455
2456 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2457
2458         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
2459
2460         * predict.c (estimate_bb_frequencies): Delete unused variables.
2461
2462 2002-03-17  Richard Henderson  <rth@redhat.com>
2463
2464         * config/ia64/ia64.c (ia64_attribute_table): Move before
2465         targetm definition.  Make static.
2466
2467 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2468
2469         * c-common.h (yyparse, c_common_parse_file): New.
2470         * c-lang.c: Include c-common.h.
2471         (LANG_HOOKS_PARSE_FILE): Redefine.
2472         * c-lex.c: Include c-common.h.
2473         (yyparse): Rename c_common_parse_file.  Call yyparse.
2474         * c-parse.in (yyparse): Remove macro.
2475         * c-tree.h (yyparse_1): Remove.
2476         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
2477         (LANG_HOOKS_INITIALIZER): Update.
2478         * langhooks.h (struct lang_hoooks): New hook parse_file.
2479         * toplev.c (compile_file): Use parse_file hook.
2480         * tree.h (yyparse): Remove.
2481         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
2482
2483 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
2484
2485         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
2486         float_truncate, not fix.
2487         ("*truncdfsf2_real"): Ditto.
2488         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
2489
2490         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
2491
2492 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
2493
2494         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
2495         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
2496         where appropriate.  Make the second reference to
2497         leaf_function_p a function call, as intended.  Reindented.
2498
2499         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
2500         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
2501
2502         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
2503         add register to non-constant into sp.
2504
2505         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
2506         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
2507         (mips16_gp_pseudo_rtx): Lose.
2508         (INIT_EXPANDERS): Deleted.
2509         * config/mips/mips.c (mips_init_machine_status): New.
2510         (mips_free_machine_status): New.
2511         (mips_mark_machine_status): New.
2512         (override_options): Set them.
2513         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
2514         (struct machine_function): ... new.  Replaced all references.
2515         (mips_add_gc_roots): Don't mark them.
2516         (embedded_pic_fnaddr_reg): New, extracted from...
2517         (embedded_pic_offset): ... here.
2518         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
2519         (movsi): Likewise.
2520
2521 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2522
2523         * cppinit.c: Revert -MD removal.
2524
2525 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2526
2527         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
2528         soft registers by default for 68HC12.
2529         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
2530         when compiling with -fomit-frame-pointer.
2531         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
2532         (expand_epilogue): Likewise.
2533         (m68hc11_gen_rotate): Use exg when rotating by 8.
2534
2535 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2536
2537         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
2538         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
2539         (splits): Remove unused add splits.
2540         ("*addhi3_68hc12"): Tune constraints.
2541         ("addhi_sp"): Try to use X instead of Y in all cases and if the
2542         constant fits in 8-bits and D is dead use abx/aby instructions.
2543         ("*addhi3"): Remove extern declaration of ix_reg.
2544         ("*subsi3"): Optimize and provide new split.
2545         ("subhi3"): Cleanup.
2546         ("*subhi3_sp"): Avoid saving X if we know it is dead.
2547         (arith splits): For 68hc12 save the address register on the stack
2548         and do the arithmetic operation with a pop.
2549
2550 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2551
2552         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
2553         allocating QImode in address registers.
2554         ("*movqi_m68hc11"): Likewise.
2555
2556 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
2557
2558         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
2559
2560 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2561
2562         * cppinit.c (print_help): Display -MD and -MMD.
2563         Don't display usage string.  Update assertion syntax and
2564         typo.
2565         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
2566         (cpp_handle_option): Update.
2567
2568 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
2569
2570         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
2571         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
2572         and define it so that regardless of target CPU size,
2573         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
2574         of "int" rather than "long."
2575
2576 2002-03-15  Richard Henderson  <rth@redhat.com>
2577
2578         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
2579         size as a tree.
2580
2581 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2582
2583         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
2584         ("tstqi" split): Avoid using memory for tstqi on address register.
2585         (splits): Remove constraints.
2586         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
2587         ("cmpdf", "cmpsf"): Remove since not used.
2588         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
2589         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
2590
2591 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2592
2593         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
2594         ("neghi2"): Tighten constraints.
2595         ("one_cmplsi2"): Optimize and simplify split.
2596         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
2597
2598 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2599
2600         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
2601         and split of AND operation to clear the upper bits.
2602         ("*logicalsi3_zextqi"): Likewise.
2603         ("*logicallhi3_zexthi_ashift8"): Likewise.
2604         ("*logicalsi3_silshr16"): Likewise.
2605         ("logicalsi3_silshl16"): Likewise.
2606         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
2607
2608 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2609
2610         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
2611         (m68hc11_indirect_p): New function.
2612         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
2613         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
2614         TARGET_M6812.
2615         (asm_print_register): Likewise.
2616         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
2617         (m68hc11_indirect_p): Declare.
2618         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
2619         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
2620         (TARGET_SWITCHES): New option -mrelax.
2621         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
2622         destination.
2623         ("iorsi3", "xorsi3"): Likewise.
2624         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
2625         ("*andhi3_mem"): New to handle destination in memory with bclr
2626         and a scratch register.
2627         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
2628         ("*andhi3_const"): New when operand2 is constant.
2629         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
2630         ("*andhi3_gen"): Cleanup of the old "andhi3".
2631         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
2632         ("xorqi3"): Update constraints.
2633
2634 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2635
2636         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
2637         for reg_equiv_memory_loc when the operand is a register that does
2638         not get a hard register (stack location).
2639         (tst_operand): After reload, accept all memory operand.
2640         (symbolic_memory_operand): Fix detection of symbolic references.
2641         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
2642         accept symbols and any constant.
2643
2644 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2645
2646         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
2647         note on the insn that sets the soft frame register.
2648         (must_parenthesize): ix and iy are also reserved names.
2649         (print_operand_address): One more place where parenthesis are required
2650         to avoid confusion with register names.
2651         (m68hc11_gen_movhi): Allow push of stack pointer.
2652         (m68hc11_check_z_replacement): Fix handling of parallel with a
2653         clobber.
2654         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
2655         the replacement register is.
2656         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
2657         and D8_REGS classes.
2658         (MODES_TIEABLE_P): All modes are tieable except QImode.
2659
2660 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2661
2662         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
2663         (___subdi3): Likewise.
2664         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
2665         (__map_data_section): Optimize 68hc11 case.
2666
2667 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2668
2669         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
2670         than a shift to avoid adding a register with itself.
2671         (m68hc11_memory_move_cost): Take into account NO_REGS.
2672         (m68hc11_register_move_cost): Update and use memory move cost
2673         for soft registers.
2674         (m68hc11_address_cost): Make cost of valid offset not 0 so that
2675         it gives more opportunities to cse to optimize.
2676         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
2677         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
2678
2679 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
2680
2681         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
2682         * c-common.def (CLEANUP_STMT): New tree node.
2683         * c-common.h (CLEANUP_DECL): New macro.
2684         (CLEANUP_EXPR): Likewise.
2685         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
2686         * expr.c (expand_expr): Tidy.
2687         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
2688         * tree-inline.c (initialize_inlined_parameters): Clean up
2689         new local variables.
2690
2691 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
2692
2693         PR bootstrap/4128
2694         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
2695         before movrXX only, use reg_overlap_mentioned_p.
2696         Only special case NE if just one insn can be generated.
2697
2698 2002-03-15  Jason Merrill  <jason@redhat.com>
2699
2700         * varasm.c (assemble_variable): Call resolve_unique_section before
2701         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
2702         of error_mark_node.
2703
2704 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
2705
2706         PR target/5170
2707         * arm.md (split pattern for thumb shiftable immediates): Add comment
2708         explaining non-obvious test.
2709
2710 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
2711
2712         PR target/5712
2713         * arm.md (movaddr, movaddr_insn): Delete.
2714
2715 2002-03-15  Jason Merrill  <jason@redhat.com>
2716
2717         * toplev.c (wrapup_global_declarations): Clarify variable handling.
2718         -fkeep-static-consts doesn't apply to comdats.
2719
2720 2002-03-14  Richard Henderson  <rth@redhat.com>
2721
2722         * c-decl.c: Include c-pragma.h.
2723         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
2724         (finish_function): Tidy.
2725         * c-pragma.c: Include c-common.h.
2726         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
2727         (handle_pragma_weak): Use them.
2728         (init_pragma): Register pending_weaks.
2729         * c-pragma.h (maybe_apply_pragma_weak): Declare.
2730         * print-tree.c (print_node): Print DECL_WEAK.
2731         * varasm.c (mark_weak_decls): Remove.
2732         (remove_from_pending_weak_list): Remove.
2733         (add_weak): Remove.
2734         (asm_emit_uninitialised): Call globalize_decl for weak commons.
2735         (weak_decls): Make a tree_list.
2736         (declare_weak): Cons weak_decls directly.
2737         (globalize_decl): Remove weak_decls elements directly.
2738         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
2739         symbols.  Don't pretend to handle aliases.
2740         (init_varasm_once): Update weak_decls registry.
2741         * Makefile.in: Update dependencies.
2742
2743 2002-03-14  Richard Henderson  <rth@redhat.com>
2744
2745         PR target/5312
2746         * config/ia64/ia64.c: Include tm_p.h last.
2747         (gen_nop_type): Remove duplicate definition.
2748         (cycle_end_fill_slots): Set sched_data for second L slot.
2749         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
2750         (nop_cycles_until): Fix typos.
2751
2752 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
2753
2754         PR optimization/5891
2755         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
2756
2757 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
2758
2759         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
2760           descriptors correctly.
2761
2762 2002-03-14  Michael Meissner  <meissner@redhat.com>
2763
2764         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
2765         100, allowing MAX_UNROLLED_INSNS to be overridden.
2766
2767         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
2768         --param.
2769
2770         * unroll.c (params.h): Include.
2771         (MAX_UNROLLED_INSNS): Delete, now in params.h.
2772
2773         * doc/invoke.texi (--param max-unroll-insns): Document.
2774
2775         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
2776
2777 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
2778
2779         * arm.md: Fix warnings about constraints in peepholes and splits.
2780
2781 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
2782
2783         * cpphash.h (struct lexer_state): Remove line_extension member.
2784         * cpplib.c (dequote_string, do_linemarker): New functions.
2785         (linemarker_dir): New data object.
2786         (DIRECTIVE_TABLE): No longer need to interpret #line in
2787         preprocessed source.  Delete obsolete comment about return
2788         values of handlers.
2789         (end_directive, directive_diagnostics, _cpp_handle_directive):
2790         Don't muck with line_extension.
2791         (directive_diagnostics): No need to issue warnings for
2792         linemarkers here.
2793         (_cpp_handle_directive): Issue warnings for linemarkers here,
2794         when appropriate.  Dispatch linemarkers to do_linemarker, not
2795         do_line.
2796         (do_line): Code to handle linemarkers split out to do_linemarker.
2797         Convert escape sequences in filename argument, both places.
2798
2799         * cppmacro.c (quote_string): Rename cpp_quote_string and
2800         export.  All callers changed.
2801         * cpplib.h (cpp_quote_string): Prototype.
2802         * cppmain.c (print_line): Call cpp_quote_string on to_file
2803         before printing it.
2804
2805         * doc/cpp.texi: Document that escapes are now interpreted in
2806         #line and in linemarkers, and that non-printing characters are
2807         converted to octal escapes when linemarkers are generated.
2808
2809 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
2810
2811         * emit-rtl.c (try_split): Use delete_insns.
2812         * recog.c (split_all_insns): Fix terminating condition.
2813
2814 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
2815             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
2816
2817         PR target/5828
2818         * arm.c (arm_output_epilogue): Fix floating-point register save
2819         adjustment when using a frame pointer.
2820
2821 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
2822
2823         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
2824         * config/mips/mips.c (compute_frame_size): Retrofit them here.
2825         (save_restore_insns, mips_expand_epilogue): And here.
2826         (build_mips16_call_stub): And here.
2827         (mips_function_value): Use the new macros to decide whether a single
2828         or complex float can be returned in floating-point registers.  Return
2829         a parallel rtx in the complex case.
2830
2831 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
2832
2833         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
2834         call after liveness analysis.
2835
2836         * recog.c (split_insn): Use delete_insn_and_edges.
2837
2838         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
2839         instructions to have branch prediction notes.
2840         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
2841
2842 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
2843
2844         * configure.in: Don't pass -Wno-long-long to a ADA compiler
2845         that doesn't support it.
2846         * configure: Regenerate.
2847
2848 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
2849
2850         PR target/5626
2851         * config/sparc/sparc.md (normal_branch, inverted_branch,
2852         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
2853         inverted_fp_branch): Adjust calls to output_cbranch.
2854         Set length attribute.
2855         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
2856         output_v9branch.  Set length attribute.
2857         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
2858         predicates.
2859         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
2860         (output_cbranch): Likewise.  Handle far branches.
2861         (output_v9branch): Handle far branches.
2862         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
2863         Adjust prototypes.
2864         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
2865         noov_compare64_op predicates.
2866
2867 2002-03-13  Jason Merrill  <jason@redhat.com>
2868
2869         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
2870         into the function and constify it.
2871         * gthr-dce.h, gthr-solaris.h: Likewise.
2872
2873 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
2874
2875         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
2876         * config/rs6000/rs6000.c (rs6000_va_arg): Use
2877         std_expand_builtin_va_arg if not ABI_V4.
2878
2879 2002-03-13  Jason Merrill  <jason@redhat.com>
2880
2881         * varasm.c (globalize_decl): New fn.
2882         (assemble_start_function): Use it.
2883         (asm_emit_uninitialized): Use it.
2884         (assemble_alias): Use it.
2885         (assemble_variable): Use it.
2886
2887 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
2888
2889         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
2890         2002-03-12 internal visibility change.
2891         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
2892         visibility into SYMBOL_REF_FLAG.
2893
2894 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
2895
2896         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
2897         VOIDmode operand.  Add compile-time optimization for constant results.
2898
2899 2002-03-12  Jason Merrill  <jason@redhat.com>
2900
2901         * c-typeck.c (convert_for_assignment): Don't allow conversions
2902         between pointers and references.  Only allow lvalues to convert to
2903         reference.
2904
2905 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
2906
2907         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
2908         before prologue, to avoid scheduling problems.
2909
2910 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
2911
2912         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
2913         (ELIMINABLE_REGS): Add sfp->sp.
2914         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
2915
2916 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
2917
2918         PR optimization/5892
2919         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
2920
2921 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
2922
2923         * loop.c (basic_induction_var): Don't call convert_modes if mode
2924         classes are different.
2925
2926 2002-03-12  Richard Henderson  <rth@redhat.com>
2927
2928         PR optimization/5901
2929         * function.c (reposition_prologue_and_epilogue_notes): Position
2930         the markers after/before the last/first insn not deleted.
2931
2932 2002-03-12  Richard Henderson  <rth@redhat.com>
2933
2934         PR optimization/5878
2935         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
2936         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
2937         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
2938
2939         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
2940         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
2941         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
2942
2943         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
2944         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
2945         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
2946         also.  Don't set it if not flag_pic.
2947         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
2948         to be INVALID_REGNUM when not used.
2949
2950 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
2951
2952         * expmed.c (store_bit_field): Reset alias set for memory.
2953         (extract_bit_field): Same.
2954
2955 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2956
2957         * c-common.c (c_tree_code_type, c_tree_code_length,
2958         c_tree_code_name, add_c_tree_codes): Delete.
2959         * c-common.h (add_c_tree_codes): Delete.
2960         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
2961         Define.
2962         * c-objc-common.c (c_objc_common_init): Don't call
2963         add_c_tree_codes, instead set lang_unsafe_for_reeval.
2964         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
2965         objc_tree_code_name, add_objc_tree_codes): Delete.
2966         (objc_init): Don't call add_objc_tree_codes.
2967         * objc/objc-lang.c (tree_code_type, tree_code_length,
2968         tree_code_name): Define.
2969         * toplev.c (lang_independent_init): Don't set
2970         tree_code_length[IDENTIFIER_NODE].
2971         * tree.c (tree_code_type, tree_code_length, tree_code_name):
2972         Delete definitions, moved to language front-ends.
2973         * tree.def (IDENTIFIER_NODE): Hardwire the length.
2974         * tree.h (tree_code_type, tree_code_length, tree_code_name):
2975         Const-ify.
2976         (tree_code_length): Change type to unsigned char.
2977
2978 2002-03-12  Richard Henderson  <rth@redhat.com>
2979
2980         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
2981         internal visibility change.
2982
2983 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
2984
2985         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
2986         validize_mem() instead of change_address to avoid clobbering
2987         memory attributes.
2988
2989 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
2990
2991         * c-lex.h (position_after_whitespace): Remove.
2992
2993 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
2994
2995         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
2996         (lex_string): Use unsigned char pointers.
2997
2998 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
2999
3000         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
3001         is not a valid memory_operand.
3002
3003 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3004
3005         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
3006         * config/xtensa/lib1funcs.asm: Fix copyright to include
3007         special case for libgcc files.
3008         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
3009         (__divsi3): Likewise.
3010         (__umodsi3): Likewise.
3011         (__modsi3): Likewise.
3012         * config/xtensa/lib2funcs.S: Fix copyright to include
3013         special case for libgcc files.
3014
3015 2002-03-12  Tom Rix  <trix@redhat.com>
3016
3017         * collect2.c (resolve_lib_name): Move outside of
3018         OBJECT_FORMAT_COFF ifdef.
3019         (ignore_library): Same.
3020
3021 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3022
3023         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
3024
3025 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3026
3027         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
3028         to function_section before writing out the constant pool.
3029
3030 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
3031
3032         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
3033         zero_constant.
3034         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
3035
3036 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
3037
3038         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
3039         (adddi3): Likewise.
3040         (movdf): Likewise.
3041         (movdi): Likewise.
3042         (cmpsi splitter): Likewise.
3043         (modsi3): Fail if <= 0.
3044         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
3045         redundant test when HOST_BITS_PER_WIDE_INT != 32.
3046         (reg_or_sub_cint64_operand): Likewise.
3047         (num_insns_constant_wide): Optimize sign extension.
3048         (rs6000_legitimize_address): Likewise.
3049
3050 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3051
3052         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3053         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3054
3055 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3056
3057         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
3058         address calculation.
3059
3060 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3061
3062         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
3063         scratch register to DImode / TImode.
3064         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
3065         register used does not overlap the target.
3066
3067 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3068
3069         * Makefile.in (debug.o): Depend on debug.h.
3070         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
3071         * debug.c (do_nothing_debug_hooks): Likewise.
3072         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
3073         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
3074         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
3075         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3076         * dwarfout.c (dwarf_debug_hooks): Likewise.
3077         * integrate.c (output_inline_function): Likewise.
3078         * objc/objc-act.c (synth_module_prologue): Likewise.
3079         * sdbout.c (sdb_debug_hooks): Likewise.
3080         * toplev.c (debug_hooks): Likewise.
3081         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3082
3083 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3084
3085         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
3086         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
3087         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
3088         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
3089         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
3090         * defaults.h (POINTER_SIZE): Define.
3091         * doc/tm.texi (POINTER_SIZE): Document default.
3092
3093 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3094
3095         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
3096
3097 2002-03-11  Richard Henderson  <rth@redhat.com>
3098
3099         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
3100         if rebuild_label_notes_after_reload.
3101
3102 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
3103
3104         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
3105         emit pic register load if "internal" visibility.
3106         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
3107         (cris_expand_builtin_va_arg): Do all computations on trees.
3108
3109 2002-03-11  Richard Henderson  <rth@redhat.com>
3110
3111         * rtlanal.c: Include recog.h.
3112         (keep_with_call_p): Fix thinko.
3113         * Makefile.in (rtlanal.o): Update dependencies.
3114
3115 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
3116
3117         * genflags.c (gen_insn): Use IS_VSPACE.
3118         * genoutput.c (output_insn_data): Likewise.
3119         (process_template): Likewise.
3120
3121 2002-03-11  Richard Henderson  <rth@redhat.com>
3122
3123         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
3124
3125 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3126
3127         * Makefile.in: Update.
3128         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
3129         Update documentation.
3130         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
3131         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
3132
3133 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
3134
3135         * Makefile.in: Give texi2pod its input file as a command line
3136         argument, not on stdin.
3137
3138 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
3139             Daniel Berlin  <dan@dberlin.org>
3140
3141         C++ alias analysis improvement.
3142         * alias.c (record_component_aliases): Record aliases for base
3143         classes too.
3144
3145 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3146
3147         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
3148
3149 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
3150
3151         * toplev.c (vms_fopen): Remove, not needed.
3152
3153         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
3154
3155         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
3156
3157         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
3158         for FP, already done later.
3159
3160         * toplev.c (debug_args): Add entry for VMS_DEBUG.
3161         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
3162
3163 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
3164
3165         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
3166         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
3167         LARGEST_EXPONENT_IS_NORMAL for the given mode.
3168         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
3169         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
3170         (ediv, emul, eldexp, esqrt): Likewise.
3171         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
3172         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
3173         (saturate): New function.
3174         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
3175         (make_nan): Use a saturation value instead of a NaN if
3176         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
3177         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
3178         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
3179         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
3180         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
3181         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
3182         !ROUND_TOWARDS_ZERO.
3183         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
3184         (ROUND_TOWARDS_ZERO): Document.
3185
3186 2002-03-11  Andreas Jaeger  <aj@suse.de>
3187
3188         * cfg.c (dump_flow_info): Remove unused variable.
3189
3190 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
3191
3192         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
3193         computations on trees.
3194
3195 2002-03-10  Richard Henderson  <rth@redhat.com>
3196
3197         PR 5693:
3198         * reload.c (copy_replacements_1): New.
3199         (copy_replacements): Use it to recurse through the rtx.
3200
3201 2002-03-10  Richard Henderson  <rth@redhat.com>
3202
3203         * loop.c (strength_reduce): Compute number of iterations as
3204         unsigned HOST_WIDE_INT.
3205
3206 2002-03-10  Richard Henderson  <rth@redhat.com>
3207
3208         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
3209         to move away from the end of the block.
3210
3211 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3212
3213         PR preprocessor/5899
3214         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
3215
3216 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3217
3218         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
3219
3220         * attribs.c (decl_attributes): Fix signed/unsigned warning.
3221
3222 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
3223
3224         * config/mmix/mmix.c: Improve comments.
3225         (mmix_target_asm_function_prologue): Drop variable
3226         empty_stack_frame.  Don't allocate unused slot above fp.
3227         (mmix_target_asm_function_epilogue): Mirror prologue changes.
3228         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
3229         brace in first column.
3230         (enum reg_class): Ditto.
3231         (FIRST_PARM_OFFSET): Now 0.
3232         (USER_LABEL_PREFIX): Remove #if 0:d definition.
3233
3234 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3235
3236         * combine.c (make_extraction): Fix error in last change.
3237
3238 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3239
3240         * c4x.c (c4x_fp_reglist): Const-ify.
3241         * cris.c (cris_print_operand): Likewise.
3242         * i386.c (ix86_va_arg): Likewise.
3243         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
3244         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
3245         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
3246         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
3247         * mcore.h (regno_reg_class): Likewise.
3248         * mips.c (gen_int_relational): Likewise.
3249         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
3250         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
3251         * pdp11.c (move_costs): Likewise.
3252         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
3253         * s390.c (s390_branch_condition_mnemonic, regclass_map):
3254         Likewise.
3255         * s390.h (regclass_map): Likewise.
3256         * sh.c (shift_amounts): Likewise.
3257         * sh.md (rotlsi3): Likewise.
3258
3259 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
3260
3261         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
3262         (ne0+5): Use new clobber to generate proper shift pattern.
3263         Patch by Michael Matz <matz@kde.org>.
3264
3265 2002-03-09  Andreas Schwab  <schwab@suse.de>
3266
3267         * gcc.c (validate_all_switches): Also handle `%W{...}'.
3268
3269 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
3270
3271         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
3272
3273 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
3274
3275         PR middle-end/5877
3276         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
3277         even for non-representable constants.
3278
3279 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3280
3281         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
3282         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
3283         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
3284         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
3285         (pop_function_context): Compute MAY_SHARE parameter for
3286         fixup_var_refs.
3287         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
3288         (gen_mem_addressof): Call fixup_var_refs with new parm.
3289
3290         * combine.c (make_extraction): Don't make extension of CONST_INT.
3291
3292 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
3293
3294         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
3295         in o32 and o64 ABIs.
3296         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
3297         but getting fixed-size structs passed in registers regardless of
3298         padding in o32 and o64 ABIs.
3299
3300         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
3301         offset before loading address of argument passed by transparent
3302         reference.
3303
3304 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3305
3306         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
3307
3308 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
3309
3310         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
3311         marker such that registers after it are saved.
3312
3313 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3314
3315         * sparc.c (arith_4096_operand): Fix error in last change.
3316
3317 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
3318
3319         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
3320         defaults for MEABI.
3321
3322 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
3323
3324         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
3325         vectors.
3326
3327 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
3328
3329         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
3330
3331 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
3332
3333         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
3334         removed; fix return value.
3335         * combine.c (combine_instructions): Dirtify blocks where we failed to
3336         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
3337         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
3338
3339 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3340
3341         * gcse.c (insert_insn_end_bb): Fix typo in last change.
3342
3343 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
3344
3345         * recog.c (peephole2_optimize): Re-distribute EH edges.
3346
3347 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3348
3349         * expr.c (expand_expr): Use unsave lang hook.
3350         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
3351         (LANG_HOOKS_INITIALIZER): Update.
3352         * langhooks.h (struct lang_hooks): New hook unsave.
3353         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
3354         (unsave_expr_1): Remove unused lang_unsave_expr_now.
3355         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
3356         (unsave_expr_now): Remove.
3357         * tree.h (unsave_expr_now, lang_unsave,
3358         lang_unsave_expr_now): Remove.
3359         (lhd_unsave): New.
3360
3361 2002-03-08  Andreas Jaeger  <aj@suse.de>
3362
3363         * flow.c (propagate_block_delete_insn): Remove unused variable.
3364
3365 2002-03-08  Kazu Hirata  <kazu@hxi.com>
3366
3367         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
3368         insn length for memory load/store.
3369
3370 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3371
3372         * doc/install.texi (--with-libiconv-prefix): Document.
3373
3374 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
3375
3376         * doc/sourcebuild.texi: Fix typo.
3377
3378 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
3379
3380         PR c/3711
3381         * builtins.c (std_expand_builtin_va_arg): Do all computations on
3382         trees.
3383
3384 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3385
3386         * rtl.c (copy_most_rtx): Move from here ...
3387         * emit-rtl.c (copy_most_rtx): ... to here.
3388
3389 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
3390
3391         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
3392         SUBTARGET_CPP_SIZE_SPEC.
3393         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
3394
3395         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
3396
3397 2002-03-07  Matt Hiller  <hiller@redhat.com>
3398
3399         * gensupport.c (first_dir_md_include): Renamed from include;
3400         change all references.
3401         (last_dir_md_include): Renamed from last_include; change all
3402         references.
3403         (init_md_reader): Unconditionally initialize base_dir whether or
3404         not filename is a relative path.
3405
3406 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
3407
3408         * config/fp-bit.c (_unord_f2): Compile it in even if
3409         US_SOFTWARE_GOFAST is enabled.
3410
3411         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
3412         NULL_RTX.  Set all HFmode operations as NULL_RTX.
3413         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
3414         NULL_RTX, try reversing the comparison and the operands.
3415
3416 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3417
3418         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
3419         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
3420         and MATCH_OP_DUP.
3421
3422 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
3423
3424         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
3425
3426 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
3427
3428         * basic-block.h (fixup_abnormal_edges): Declare.
3429         * reload1.c (fixup_abnormal_edges): New function.
3430         * reg-stack.c (convert_regs): Use it.
3431
3432         * gcse.c (insert_insn_end_bb): Handle trapping insns.
3433
3434         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
3435
3436 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
3437
3438         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
3439         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
3440         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
3441         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
3442         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
3443         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
3444         unless x and y could be infinite.
3445         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
3446         Check that the common type of both arguments is a real, even for
3447         targets without unordered comparisons.  Allow an integer argument
3448         to be compared against a real.
3449         (expand_tree_builtin): Use expand_unordered_cmp.
3450         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
3451         * cse.c (fold_rtx): Likewise.  Fix indentation.
3452         * fold-const.c (fold_real_zero_addition_p): New.
3453         (fold): Use it, and the new HONOR_... macros.
3454         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
3455         * jump.c (reversed_comparison_code_parts): After searching for
3456         the true comparison mode, use HONOR_NANS to decide whether it
3457         can be safely reversed.
3458         (reverse_condition_maybe_unordered): Remove IEEE check.
3459         * simplify-rtx.c (simplify_binary_operation): Use the new macros
3460         to decide which simplifications are valid.  Allow the following
3461         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
3462         and (a - -b) to (a + b).
3463         (simplify_relational_operation): Use HONOR_NANS.
3464         * doc/tm.texi: Document the MODE_HAS_... macros.
3465
3466 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
3467
3468         * combine.c (simplify_comparison): If simplifying a logical shift
3469         right and compare with constant, force the comparison to unsigned.
3470
3471 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
3472
3473         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
3474
3475         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
3476         -mabi=no-altivec
3477         (alt_reg_names): Remove % for vrsave.
3478
3479 2002-03-06  Richard Henderson  <rth@redhat.com>
3480
3481         PR optimization/5844
3482         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
3483         if used indicates we've already emitted one copy of an operand.
3484         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
3485         (gen_split): Supply a non-null used.
3486
3487 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3488
3489         * reload1.c (reload): Unshare all rtl after reload is done.
3490
3491         * simplify-rtx.c (simplify_plus_minus): Do not abort,
3492         but simply fail if the expression is too complex to simplify.
3493         (simplify_gen_binary): Handle simplify_plus_minus failures.
3494
3495 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
3496
3497         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
3498         consistently call delete_trivially_dead_insns after CSE and GCSE;
3499         fix DFI_life dumping; do jump threading after liveness; do crossjumping
3500         after liveness2; update comment in last crossjumping.
3501         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
3502
3503 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
3504
3505         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
3506         after completing fast dead code elimination.
3507
3508         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
3509         COMPARE operator.
3510
3511 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
3512
3513         * version.c:  Fix misplaced leading blanks on first line.
3514
3515 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
3516
3517         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
3518
3519 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
3520
3521         * cfgcleanup.c (mentions_nonequal_regs): New function.
3522         (thread_jump): Use it.
3523         * toplev.c (rest_of_compilation): Run jump threading after
3524         liveness.
3525
3526 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
3527
3528         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
3529         patch.
3530
3531 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
3532
3533         * predict.c (estimate_bb_frequencies): Do not reload the
3534         frequencies from notes.
3535
3536 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
3537
3538         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
3539         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
3540
3541         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
3542         delete_noop_moves): Return indeger.
3543         * flow.c (ndead): New variable.
3544         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
3545         BB argument; update callers.
3546         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
3547         (life_analysis): Do not call purge_all_dead_edges.
3548         (update_life_info): Return number of deleted insns; print statistics.
3549         (update_life_info_in_dirty_blocks): likewise.
3550         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
3551         return number of insns deleted.
3552
3553         * cse.c: Include timevar.h
3554         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
3555         iterate until stabilizes; print statistics; return number of killed
3556         insns.
3557         * Makefile.in: (cse.o): Add timevar.h dependency
3558         * rtl.h (delete_trivially_dead_insns): New.
3559         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
3560         * toplev.c (rest_of_compilation): Update callers.
3561
3562         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
3563         (try_optimize_cfg): Do not update liveness.
3564         (cleanup-cfg): Loop until try_optimize_cfg and dead code
3565         removal stabilizes; use delete_trivially_dead_insns.
3566
3567         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
3568
3569 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
3570
3571         * cppmain.c (setup_callbacks): Disable #pragma and #ident
3572         callbacks when processing assembly language.
3573
3574 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3575
3576         * pa.h (ASM_FILE_END): Define.
3577         * som.h (ASM_FILE_END): Delete.
3578
3579         * pa.c (function_arg): Don't pass floats in general registers in
3580         indirect calls if TARGET_ELF32.
3581
3582 2002-03-05  Richard Henderson  <rth@redhat.com>
3583
3584         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
3585
3586 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
3587
3588         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
3589
3590 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
3591
3592         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
3593         -r command line.  Don't hide any symbols if not building
3594         shared libgcc.
3595
3596 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
3597
3598         * cfg.c (dump_flow_info): Warn about profile mismatches.
3599         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
3600         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
3601
3602 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
3603
3604         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
3605         wide volatile memory by parts.
3606
3607 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
3608
3609         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
3610         is NULL.
3611
3612 2002-03-05  Richard Henderson  <rth@redhat.com>
3613
3614         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
3615
3616 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
3617
3618         * toplev.c (documented_lang_options): Document more
3619         language-specific options.
3620         * doc/invoke.texi (Warning Options): Correct documentation for
3621         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
3622         * c-decl.c (c_decode_option): Use a table to handle warning options.
3623
3624 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
3625
3626         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
3627         parameter to mmix_encode_section_info.
3628         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
3629         relocatably.  Always produce ELF, not mmo if linking relocatably.
3630         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
3631         first is non-zero, don't add symbol prefix.
3632         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
3633         prototype accordingly.
3634
3635 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
3636
3637         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
3638
3639 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
3640
3641         * configure.in: Increase required makeinfo version to 4.1.
3642         * configure: Regenerate.
3643
3644 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
3645
3646         * .cvsignore: Remove *.info* and genrtl*; these files are generated
3647         elsewhere now.
3648
3649 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
3650
3651         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
3652         * doc/invoke.texi: Fix @math uses.
3653
3654 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
3655
3656         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
3657         removal
3658
3659 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
3660
3661         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
3662         (powerpc-*-eabisimaltivec*): Same.
3663
3664         * config/rs6000/t-ppcendian: New.
3665
3666 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3667
3668         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
3669         nonimmediate_src_operand and nonimmediate_lsrc_operand to
3670         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
3671
3672 2002-03-03  Richard Henderson  <rth@redhat.com>
3673
3674         * toplev.c (rest_of_decl_compilation): Revert last two changes.
3675
3676 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
3677
3678         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
3679         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
3680         tree.c, config/m68k/m68k.c:
3681         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
3682         REAL_ARITHMETIC blocks unconditional.  Delete some further
3683         #ifdef blocks predicated on REAL_ARITHMETIC.
3684         * flags.h, toplev.c: Delete remaining references to
3685         flag_pretend_float.
3686
3687         * doc/invoke.texi: Remove documentation of -fpretend-float.
3688         * doc/tm.texi: Describe the various REAL_* macros as provided by
3689         real.h, not by the target configuration files.
3690
3691         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
3692         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
3693         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
3694         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
3695         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
3696         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
3697         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
3698         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
3699         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
3700         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
3701         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
3702         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
3703         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
3704         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
3705         config/xtensa/xtensa.h:
3706         Do not define, undefine, or mention in comments any of
3707         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
3708         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
3709         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
3710         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
3711         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
3712         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
3713         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
3714         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
3715         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
3716
3717 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3718
3719         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
3720         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
3721         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
3722         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
3723         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
3724         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
3725         Delete.
3726         * defaults.h (BITS_PER_WORD): Define.
3727         * doc/tm.texi (BITS_PER_WORD): Document default value.
3728
3729         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
3730         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
3731         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
3732
3733 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3734
3735         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
3736         lieu of explicit sizeof/sizeof.
3737         * i386.c (override_options, ix86_init_mmx_sse_builtins,
3738         ix86_expand_builtin): Likewise.
3739         * mips.c (mips_add_gc_roots): Likewise.
3740         * mmix.c (mmix_output_condition): Likewise.
3741         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
3742         altivec_init_builtins): Likewise.
3743         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
3744         * cppexp.c (Nsuff, parse_number): Likewise.
3745         * cppinit.c (builtin_array_end): Likewise.
3746         * gcc.c (n_default_compilers, process_command): Likewise.
3747         * genpreds.c (output_predicate_decls): Likewise.
3748         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
3749         * lcm.c (N_ENTITIES): Likewise.
3750         * stor-layout.c (set_sizetype): Likewise.
3751
3752 2002-03-03  Richard Henderson  <rth@redhat.com>
3753
3754         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
3755         for types or labels.
3756
3757 2002-03-03  Richard Henderson  <rth@redhat.com>
3758
3759         * c-decl.c (start_decl): Initialized variables are not common.
3760
3761 2002-03-02  Per Bothner  <per@bothner.com>
3762
3763         * gcc.c (option_map):  Suport new --bootclasspath option.
3764         --CLASSPATH is now just an alias for --classpath.
3765
3766 2002-03-02  Richard Henderson  <rth@redhat.com>
3767
3768         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
3769         load if "internal" visibility.
3770         * doc/extend.texi: Document visibility meanings.
3771
3772 2002-03-02  Richard Henderson  <rth@redhat.com>
3773
3774         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
3775         to functions as well.
3776
3777 2002-03-02  Richard Henderson  <rth@redhat.com>
3778
3779         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
3780         (handle_visibility_attribute): Don't call assemble_visibility.
3781         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
3782         without asmspec.  Invoke assemble_alias when needed.
3783         * varasm.c (maybe_assemble_visibility): New.
3784         (assemble_start_function, assemble_variable, assemble_alias): Use it.
3785
3786 2002-03-02  Richard Henderson  <rth@redhat.com>
3787
3788         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
3789         invoke ENCODE_SECTION_INFO with first call flag.
3790
3791         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
3792         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
3793         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
3794         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
3795         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
3796         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
3797         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
3798         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
3799         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
3800         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
3801         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
3802         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
3803         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
3804         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
3805         config/mcore/mcore-protos.h, config/mcore/mcore.c,
3806         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
3807         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
3808         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
3809         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
3810         config/sh/sh.h, config/sparc/sparc.h,
3811         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
3812         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
3813         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
3814         FIRST argument.  As needed, examine it and do nothing.
3815
3816         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
3817         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
3818         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
3819
3820         * config/arm/t-pe (pe.o): Add dependencies.
3821
3822 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3823
3824         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
3825         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
3826         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
3827         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
3828         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
3829         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
3830         * defaults.h (BITS_PER_UNIT): Define.
3831         * doc/tm.texi (BITS_PER_UNIT): Document default value.
3832
3833 2002-03-02  Kazu Hirata  <kazu@hxi.com>
3834
3835         * config/h8300/h8300-protos.h: Add a prototype for
3836         compute_a_shift_length.
3837         * config/h8300/h8300.c (h8300_asm_insn_count): New.
3838         (compute_a_shift_length): Likewise.
3839         (h8300_adjust_insn_length): Do not adjust insn length of shift
3840         insns.
3841         * config/h8300/h8300.md (anonymous shift patterns): Use
3842         compute_a_shift_length.
3843
3844 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3845
3846         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
3847         trunc_int_for_mode.
3848
3849         * emit-rtl.c (offset_address): Call update_temp_slot_address.
3850
3851 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3852
3853         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
3854         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
3855         * flags.h (flag_zero_initialized_in_bss): Declare.
3856         * toplev.c (flag_zero_initialized_in_bss): New flag.
3857         (lang_independent_options): Add flag_zero_initialized_in_bss.
3858         * tree.c (initializer_zerop): New function.
3859         * tree.h (initializer_zerop): Declare.
3860         * varasm.c (assemble_variable): If we can emit bss, put zero
3861         initializers in the bss section.
3862
3863 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
3864
3865         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
3866         like more than one symbol per .weak directive.
3867
3868 2002-03-01  Richard Henderson  <rth@redhat.com>
3869
3870         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
3871         adjust argument_pointer by pretend_args_size.
3872         (ia64_va_start): Adjust va_start address by -pretend_args_size.
3873
3874 2002-03-01  Kazu Hirata  <kazu@hxi.com>
3875
3876         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
3877
3878 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
3879
3880         * toplev.c (rest_of_compilation): Delete dead jumptables before
3881         loop.
3882         * flow.c (delete_dead_jumptables): Make global.
3883         * rtl.h (delete_dead_jumptables): Declare.
3884
3885 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
3886
3887         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
3888         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
3889         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
3890
3891 2002-03-01  Kazu Hirata  <kazu@hxi.com>
3892
3893         * config/h8300/h8300-protos.h: Fix formatting.
3894         * config/h8300/h8300.c: Likewise.
3895         * config/h8300/h8300.h: Likewise.
3896
3897 2002-03-01  Kazu Hirata  <kazu@hxi.com>
3898
3899         * config/h8300/h8300.c (print_operand): Support 16-bit
3900         constant addresses.
3901         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
3902
3903 2002-02-28  Richard Henderson  <rth@redhat.com>
3904
3905         * expmed.c (store_bit_field): Prevent generation of CONCATs;
3906         pun complex values as integers; use gen_lowpart instead of
3907         gen_rtx_SUBREG.
3908         (extract_bit_field): Likewise.
3909
3910 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
3911             David Edelsohn  <edelsohn@gnu.org>
3912
3913         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
3914         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
3915         (SUPPORTS_WEAK): Likewise.
3916         * output.h (add_weak): Add tree param.
3917         * varasm.c (add_weak): Likewise.  Save decl.
3918         (struct weak_syms): Add decl field.
3919         (mark_weak_decls): New function.
3920         (init_varasm_once): ggc_add_root mark_weak_decls.
3921         (assemble_start_function): Use ASM_WEAKEN_DECL.
3922         (assemble_variable): Likewise.
3923         (assemble_alias): Likewise.
3924         (declare_weak): Pass decl to add_weak.
3925         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
3926         (remove_from_pending_weak_list): Declare and define for
3927         ASM_WEAKEN_DECL.
3928         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
3929         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
3930         * defaults.h (SUPPORTS_WEAK): Likewise.
3931         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
3932         .weak for code sym.  Do emit .size for descriptor sym.
3933         (ASM_DECLARE_FUNCTION_SIZE): Define.
3934         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
3935         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
3936         .lglobl unless TARGET_XCOFF.  Formatting fixes.
3937         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
3938         .weak for code sym.
3939         (HANDLE_PRAGMA_WEAK): Remove.
3940         (ASM_WEAKEN_LABEL): Remove.
3941         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
3942
3943 2002-03-01  Jason Merrill  <jason@redhat.com>
3944
3945         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
3946         (TARGET_EXPR_CLEANUP): New macro.
3947
3948 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
3949
3950         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
3951         to take ptr_extend into account as third type of extension.
3952         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
3953         fields used by SUBREG_PROMOTED_UNSIGNED_P.
3954         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
3955         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
3956         * calls.c (precompute_arguments): Use new macro.
3957         (expand_call): Ditto.
3958         * combine.c (nonzero_bits): Ditto.
3959         (record_promoted_value): Ditto.
3960         * expr.c (store_expr): Ditto.
3961         (expand_expr): Ditto.
3962         * function.c (assign_parms): Ditto.
3963
3964 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
3965
3966         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
3967         override -shared and -shared-libgcc.
3968
3969 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
3970
3971         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
3972         of "ultrasparc".
3973         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
3974         to be broken.
3975
3976 2002-02-28  Richard Henderson  <rth@redhat.com>
3977
3978         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
3979         4 cycle latency from MM producers.
3980         (ia64_internal_sched_reorder): Likewise with pipeline flush.
3981
3982 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
3983
3984         * mklibgcc.in: Don't use GNU make extension.
3985
3986 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3987
3988         * c-parse.in (STATIC): New terminal.
3989         (scspec): New non-terminal.  Update productions accordingly.
3990         (program): Remove bogus ifc / end ifc.
3991         (array_declarator): Simplify production using STATIC.
3992
3993 2002-02-28  Jim Meyering  <meyering@lucent.com>
3994
3995         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
3996         \a still means TARGET_BELL.
3997
3998 2002-02-28  Richard Henderson  <rth@redhat.com>
3999
4000         * haifa-sched.c (sched_emit_insn): New.
4001         (schedule_block): Use last_scheduled_insn to track last insn.
4002         * sched-int.h (sched_emit_insn): Prototype.
4003         * config/ia64/ia64.c (last_issued): Remove.
4004         (ia64_variable_issue): Don't set it.
4005         (nop_cycles_until): Use sched_emit_insn.
4006
4007 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
4008
4009         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
4010         extended constants.
4011
4012 2002-02-28  Kazu Hirata  <kazu@hxi.com>
4013
4014         * config/h8300/h8300.c: Fix formatting.
4015         * config/h8300/h8300.h: Likewise.
4016
4017 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4018
4019         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
4020         which may overwrite the high byte of the frame pointer.
4021
4022 2002-02-28  Bo Thorsen  <bo@suse.de>
4023
4024         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
4025         (STARTFILE_SPEC): Add 64 bit files.
4026         (ENDFILE_SPEC): Likewise.
4027
4028 2002-02-28  Jason Merrill  <jason@redhat.com>
4029
4030         * c-decl.c (finish_function): Only warn about missing return
4031         statement with -Wreturn-type.
4032
4033 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
4034
4035         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
4036
4037         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
4038         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
4039
4040 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4041
4042         * basic-block.h (BB_REACHABLE): Renumber.
4043         (BB_DIRTY, BB_NEW): New flags.
4044         (clear_bb_flags): Declare.
4045         (update_life_info_in_dirty_blocks): Declare.
4046         * cfg.c (clear_bb_flags): New function.
4047         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
4048         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
4049         reorder_insns, emit_insn_after): Mark block as dirty.
4050         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
4051         (update_life_info_in_dirty_blocks): New function.
4052         * recog.c (apply_change_group): Dirtify block.
4053
4054         * cse.c (cse_insn): Reorder emitting of jump insn to keep
4055         cfg consistent.
4056         * gcse.c (delete_null_pointer_checks): Likewise.
4057
4058         * toplev.c (dump_file_index): Move cse2 after bp,
4059         add DFI_null
4060         (dump_file_info): Similary.
4061         (rest_of_compilation): Avoid most of CFG rebuilds;
4062         do first if converision after null pointer checks, do cse2
4063         after branch prediction; avoid full liveness rebuild after
4064         initializing subregs.
4065         * invoke.texi (-d options): Document -du, renumber.
4066
4067         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
4068         (notice_new_block): Do not set BB_UPDATE_LIFE.
4069         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
4070          merge_blocks_move_successor_nojumps, merge_blocks,
4071          try_crossjump_to_edge): Likewise.
4072         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
4073         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
4074         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
4075         (merge_of_block): Do not use life_data_ok.
4076         (find_if_case_1): Do not use SET_UPDATE_LIFE.
4077         (if_convert): Use BB_DIRTY mechanizm to update life.
4078         * lcm.c (optimize_mode_switching): Update
4079         update_life_info_in_dirty_blocks
4080
4081 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4082
4083         * Makefile.in (integrate.o): Update.
4084         * c-decl.c (copy_lang_decl): Rename.
4085         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4086         * integrate.c: Include langhooks.h.
4087         (copy_decl_for_inlining): Update to use langhook.
4088         * langhooks-def.h (lhd_do_nothing_t,
4089         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
4090         (LANG_HOOKS_INITIALIZER): Update.
4091         * langhooks.c (lhd_do_nothing_t): New.
4092         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
4093         * tree.h (copy_lang_decl): Remove.
4094 objc:
4095         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4096
4097 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
4098
4099         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
4100         POST_DEC, and POST_MODIFY.
4101
4102 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4103
4104         * c-typeck.c (digest_init): Remove unused parameter; all
4105         callers changed.
4106
4107 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
4108
4109         * expmed.c (expand_shift): Correctly test for low part of a
4110         subreg.
4111
4112 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
4113
4114         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
4115         insn UIDs with insn addresses.
4116
4117 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4118
4119         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
4120         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
4121         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
4122         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
4123         gcc.c, toplev.c: Delete code implementing -traditional mode.
4124
4125         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
4126         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
4127         Document removal of -traditional mode for compilation, and
4128         remove documentation only relevant to that mode.
4129
4130         * config/nextstep.h, config/ptx4.h, config/svr4.h,
4131         config/convex/convex.h, config/d30v/d30v.h,
4132         config/i386/dgux.h, config/i386/osf1elf.h,
4133         config/i386/osfelf.h, config/i386/osfrose.h,
4134         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
4135         config/m68k/hp310.h, config/m88k/dgux.h,
4136         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
4137         config/m88k/m88k.h, config/m88k/openbsd.h,
4138         config/mips/abi64.h, config/mips/osfrose.h,
4139         config/mips/svr4-5.h, config/mips/svr4-t.h,
4140         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
4141         config/stormy16/stormy16.h: Remove all references to
4142         -traditional from target specs.  Delete all mention of the
4143         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
4144         delete a couple of commented-out definitions of
4145         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
4146         to -traditional.
4147
4148         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
4149         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
4150
4151 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4152
4153         * mklibgcc.in: Don't use \n in a line subject to
4154         interpretation by echo.
4155
4156 2002-02-27  Graham Stott  <grahams@redhat.com>
4157
4158         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
4159         Constify NAME.
4160
4161         * loop.c (prescan_loop): Handle PARALLEL.
4162
4163         * unroll.c (loop_iterations): Return 0 if the add_val for
4164         a BIV is REG.
4165
4166         * final.c (output_operand_lossage): Constify PFX_STR.
4167
4168         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
4169
4170 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4171
4172         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
4173         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
4174
4175 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
4176
4177         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4178
4179 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4180
4181         * cpplex.c (_cpp_lex_token): Handle directives in macro
4182         arguments.
4183         * cpplib.c (_cpp_handle_directive): Save and restore state
4184         if parsing macro args when entering a directive.
4185         * cppmacro.c (collect_args): No need to handle directives
4186         in macro arguments.
4187         (enter_macro_context, replace_args): Use the original macro
4188         definition in case it was redefined whilst collecting arguments.
4189 doc:
4190         * cpp.texi: Update.
4191
4192 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
4193
4194         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
4195         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
4196         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
4197         method on AIX.
4198         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
4199         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
4200         (load_toc_v4_PIC_2): Same.
4201
4202 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
4203
4204         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
4205
4206 2002-02-26  Richard Henderson  <rth@redhat.com>
4207
4208         * config/alpha/alpha.md (ashldi_se): Re-enable.
4209
4210 2002-02-26  Richard Henderson  <rth@redhat.com>
4211
4212         * config/alpha/alpha.c (alpha_encode_section_info): Examine
4213         MODULE_LOCAL_P; improve commentary.
4214
4215 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
4216
4217         * doc/cpp.texi: Clarify documentation of relationship between
4218         #line and #include.
4219
4220 2002-02-26  Kazu Hirata  <kazu@hxi.com>
4221
4222         * config/h8300/h8300-protos.h: Update the prototype for
4223         compute_logical_op_length.  Add the prototype for
4224         compute_logical_op_cc.
4225         * config/h8300/h8300.c (compute_logical_op_length): Figure out
4226         code from operands.
4227         (compute_logical_op_cc): New.
4228         * config/h8300/h8300.md: Combine all the logical op patterns
4229         in HImode and SImode.  Use compute_logical_op_cc.
4230
4231 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
4232
4233         * config/i386/i386.c (print_operand): Don't append ATT-style
4234         length suffixs to x87 opcodes when in Intel mode.
4235
4236 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
4237
4238         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
4239         (init_emit_once): Update calls.
4240         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
4241         (init_syntax_once): Prototype.
4242
4243 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4244
4245         * pa-linux.h (LIB_SPEC): Update definition.
4246         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
4247
4248 2002-02-26  Richard Henderson  <rth@redhat.com>
4249
4250         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
4251         if we emitted a stop bit.
4252
4253 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4254
4255         * configure.in (libgcc_visibility): Substitute.
4256         * configure: Rebuilt.
4257         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
4258         defined symbols .hidden.
4259
4260 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4261
4262         * attribs.c (c_common_attribute_table): Add visibility.
4263         (handle_visibility_attribute): New function.
4264         * varasm.c (assemble_visibility): New function.
4265         * output.h (assemble_visibility): Add prototype.
4266         * tree.h (MODULE_LOCAL_P): Define.
4267         * crtstuff.c (__dso_handle): Use visibility attribute.
4268         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
4269         for MODULE_LOCAL_P symbols too.
4270         * config/ia64/ia64.c (ia64_encode_section_info): Handle
4271         MODULE_LOCAL_P symbols the same way as local symbols.
4272         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
4273         into .sdata/.sbss by the user.
4274         * doc/extend.texi (Function Attributes): Document visibility
4275         attribute.
4276
4277 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4278
4279         PR debug/5770
4280         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
4281         STRING_CST initializer spanning the whole variable without
4282         embedded zeros.
4283         If expand_expr returned MEM, don't use it.
4284
4285 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
4286
4287         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
4288         generate a die for the lexical block.
4289
4290 2002-02-26  Kazu Hirata  <kazu@hxi.com>
4291
4292         * config/h8300/h8300-protos.h: Add a prototype for
4293         compute_logical_op_length.
4294         * config/h8300/h8300.c (compute_logical_op_length): New.
4295         * config/h8300/h8300.md (anonymous logical patterns): Use
4296         compute_logical_op_length for length.
4297
4298 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4299
4300         * dwarf2out.c (modified_type_die): Do not call type_main_variant
4301         for vectors.
4302         (gen_type_die): Same.
4303
4304         * attribs.c (handle_vector_size_attribute): Set debug information.
4305
4306 2002-02-26  Daniel Egger  <degger@fhm.edu>
4307
4308         * config/rs6000/rs6000.md: Swap define_insn attributes to
4309         fix incorrect generation of merge high instructions instead
4310         of merge low.
4311
4312 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4313
4314         * c-typeck.c (really_start_incremental_init): Use
4315         bitsize_zero_node for vectors.
4316
4317 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4318
4319         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
4320         ("*set_vrsave_internal"): Same.
4321
4322 2002-02-25  Richard Henderson  <rth@redhat.com>
4323
4324         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
4325         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
4326
4327 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
4328
4329         PR target/5755
4330         * config/i386/i386.c (ix86_return_pops_args): Only pop
4331         fake structure return argument if it was passed on the stack.
4332
4333 2002-02-25  Jason Merrill  <jason@redhat.com>
4334
4335         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
4336         RESULT_DECL.
4337
4338 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
4339
4340         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
4341         link with shared_name only.
4342         * doc/invoke.texi (Link Options): Document new behavior.
4343
4344 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
4345
4346         * c-typeck.c (push_init_level): Handle vectors.
4347
4348 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
4349
4350         * config/sparc/sparc.c (const64_high_operand): Zero-extend
4351         operands of SPARC_SETHI_P.
4352         (input_operand): Likewise.
4353         (sparc_emit_set_const32): Likewise.
4354         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
4355         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
4356         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
4357         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
4358         (movdi_insn_sp64_vis): Likewise.
4359         (movdi split, movdf split): Use SETHI32.
4360         * doc/md.texi: Document SPARC constraints L, M and N.
4361
4362 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
4363
4364         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
4365         ("*set_vrsave_internal"): use mfspr for Darwin.
4366
4367         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
4368         gen_get_vrsave_internal.
4369
4370 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4371
4372         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
4373
4374 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4375
4376         * cpplex.c (cpp_interpret_charconst): Get signedness or
4377         otherwise of wide character constants correct.
4378         * cppexp.c (lex): Get signedness of wide charconsts correct.
4379
4380 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4381
4382         * optabs.c (widen_operand): Only call convert_modes for
4383         promoted SUBREG if signedness matches.
4384         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
4385
4386 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4387
4388         * cpplib.c (glue_header_name): Use local buffer to build up
4389         header name.
4390
4391 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4392
4393         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
4394
4395 2002-02-23  Kazu Hirata  <kazu@hxi.com>
4396
4397         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
4398         H8/300[HS] separately.
4399         * config/h8300/h8300.md: Remove the early clobber constraint
4400         from bit field patterns.
4401
4402 2002-02-23  Kazu Hirata  <kazu@hxi.com>
4403
4404         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
4405         register_operand.
4406         (mulhisi3): Likewise.
4407         (umulqisi3): Likewise.
4408         (umulhisi3): Likewise.
4409
4410 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4411
4412         * cppinit.c (output_deps): Correct test for stdout output.
4413         (init_dependency_output): Cure warning.
4414
4415 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4416
4417         * expr.c (store_expr): When converting expression to promoted
4418         equivalent type, allow using SUBREG_REG of TARGET as the target
4419         of the expansion of EXP.
4420         * loop.c (basic_induction_var, case SUBREG): Always look inside.
4421         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
4422         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
4423         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
4424         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
4425
4426 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
4427
4428         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
4429         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
4430         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
4431
4432 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
4433
4434         PR optimization/5747
4435         * loop.c (scan_loop): Update reg info if move_movables created new
4436         pseudos.
4437
4438 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
4439
4440         * gcc.c (init_gcc_spec): Revert last change.
4441
4442 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
4443
4444         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
4445         gpc_reg_operand constraint.
4446
4447 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
4448
4449         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
4450         Simplify comparison of `low'.
4451         (add_operand): Fix formatting.
4452         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
4453         (mask_operand): Disallow mask to wrap in 64-bit mode.
4454         (rs6000_stack_info): Remove redundant test setting push_p.
4455         (output_toc): Fix formatting.
4456         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
4457         cc_reg_not_cr0_operand constraint.
4458         (booldi3, boolcdi3 splitters): Same.
4459
4460 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
4461
4462         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
4463
4464 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
4465
4466         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
4467         gcc invoked with -shared-libgcc.
4468
4469 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
4470
4471         PR c++/5748
4472         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
4473         decl if any of elements was TREE_USED.
4474
4475 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
4476
4477         * config/sparc/sol2.h: Don't include sys/mman.h.
4478         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
4479         (arith_4096_operand): Don't throw high bits away.
4480         (const64_operand): Take sign extension of CONST_INTs into account.
4481         (const64_high_operand, sparc_emit_set_const32): Likewise.
4482         (GEN_HIGHINT64): Likewise.
4483         (sparc_emit_set_const64_quick1): Likewise.
4484         (const64_is_2insns): Likewise.
4485         (print_operand): Use trunc_int_for_mode for sign extension.
4486         * config/sparc/sparc.h (SMALL_INT32): Likewise.
4487         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
4488         chars.  Assume CONST_INT is already properly sign-extended.
4489         (movdi split): Sign-extend each SImode part.
4490         (andsi3 split): Don't mask high bits off, so that result
4491         remains properly sign-extend.
4492         (iorsi3 split): Likewise.
4493         (xorsi3 split): Likewise.
4494
4495 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
4496
4497         * fold-const.c (fold): Fix typo in comments.
4498
4499 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
4500
4501         * Makefile.in (langhooks.o): Update dependencies.
4502
4503 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
4504
4505         * langhooks.c: Include flags.h.
4506
4507 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
4508
4509         * testsuite/gcc.dg/attr-alwaysinline.c: New.
4510
4511         * c-common.c (c_common_post_options): Set inline trees by
4512         default.
4513
4514         * doc/extend.texi (Function Attributes): Document always_inline
4515         attribute.
4516         Update documentation about inlining when not optimizing.
4517
4518         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
4519
4520         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
4521         unless DECL_ALWAYS_INLINE.
4522
4523         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
4524         unless DECL_ALWAYS_INLINE.
4525         (c_disregard_inline_limits): Disregard if always_inline set.
4526
4527         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
4528         Disregard if always_inline set.
4529         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
4530         unless DECL_ALWAYS_INLINE.
4531
4532         * attribs.c (handle_always_inline_attribute): New.
4533         (c_common_attribute_table): Add always_inline.
4534
4535         * config/rs6000/altivec.h: Add prototypes for builtins
4536         requiring the always_inline attribute.
4537
4538 2002-02-21  Eric Christopher  <echristo@redhat.com>
4539
4540         * expmed.c (store_bit_field): Try to simplify the subreg
4541         before generating a new one when when the mode size of
4542         value is less than maxmode.
4543
4544 2002-02-21  Richard Henderson  <rth@redhat.com>
4545
4546         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
4547         than gen_rtx_PLUS to form the sum.
4548         * explow.c (force_reg): Rearrange to not allocate new pseudo
4549         when force_operand returns a register.
4550         * expr.c (expand_assignment): Allow offset_rtx expansion to
4551         return a sum.  Do not force addresses into registers.
4552         (expand_expr): Likewise.
4553         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
4554         to canonicalize arithmetic that didn't simpify.
4555         (simplify_plus_minus): New argument force; update
4556         all callers.  Don't split CONST unless we can do something with it,
4557         and wouldn't lose the constness of the operands.
4558
4559         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
4560         that we generated earlier.
4561
4562 2002-02-21  Tom Tromey  <tromey@redhat.com>
4563
4564         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
4565         (output_line_info): Use constant `1', with a long explanatory
4566         comment.
4567         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
4568
4569 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
4570
4571         * jump.c (redirect_jump): If old label has no UID, don't try to
4572         delete it.
4573
4574 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
4575
4576         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
4577         If input is constant, do shifts at compile time.
4578
4579 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4580
4581         * doc/extend.texi: Fix some more overfull hboxes.
4582
4583 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
4584
4585         PR optimization/4994
4586         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
4587         register moves.
4588
4589 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
4590
4591         PR c++/4574
4592         * expr.h (expand_and): Add mode argument.
4593         * expmed.c (expand_and): Add mode argument.
4594         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
4595         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
4596         * except.c (expand_builtin_extract_return_addr): Likewise.
4597         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
4598         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
4599         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
4600         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
4601         * config/c4x/c4x.md: Use GEN_INT (x) instead of
4602         gen_rtx (CONST_INT, VOIDmode, x).
4603
4604 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
4605
4606         PR c/4697:
4607         * stmt.c (warn_if_unused_value): Move side effects test once more.
4608
4609 2002-02-20  Torbjorn Granlund  <tege@swox.com>
4610
4611         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
4612         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
4613
4614 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
4615
4616         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
4617         SUBREG or ZERO_EXTEND.
4618
4619 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
4620
4621         * sh.h (current_function_anonymous_args): Remove.
4622         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
4623         of current_function_varargs and current_function_stdarg is set.
4624         * sh.c (sh_expand_prologue): Check current_function_varargs /
4625         current_function_stdarg / TARGET_SH5 instead of
4626         current_function_anonymous_args.
4627
4628         * sh64.h (TARGET_VERSION): Define.
4629
4630 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
4631
4632         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
4633         VRSAVE_REGNO on TARGET_ALTIVEC.
4634
4635 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
4636
4637         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
4638         bits of SImode const_int.
4639         (includes_rshift_p): Likewise.
4640         (print_operand): Call mask_operand and mask64_operand with correct
4641         mode.
4642         (rs6000_output_function_epilogue): Pad traceback table to word.
4643         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
4644         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
4645         mask64_operand with correct mode.
4646         (FUNCTION_ARG_REGNO_P): Correct parentheses.
4647
4648 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
4649
4650         PR debug/4461
4651         * varasm.c (get_pool_constant_mark): New.
4652         * rtl.h (get_pool_constant_mark): Add prototype.
4653         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
4654         be represented if it has not been output.
4655
4656 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
4657
4658         * combine.c (do_SUBST): Sanity check substitutions of
4659         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
4660         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
4661         CONST_INT into its operand.
4662         (known_cond): Likewise, for ZERO_EXTEND.
4663         * simplify-rtx.c (simplify_unary_operation): Fix condition to
4664         allow for simplification of wide modes.  Reject CONST_INTs in
4665         ZERO_EXTEND when their actual mode is not given.
4666
4667 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
4668
4669         * c-decl.c (pushdecl): If no global declaration is found for an
4670         extern declaration in block scope, try a limbo one.
4671
4672 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
4673
4674         PR c++/4401
4675         * c-common.c (pointer_int_sum): Moved from...
4676         * c-typeck.c (pointer_int_sum): ...here.
4677         * c-common.h (pointer_int_sum): Add prototype.
4678
4679 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
4680
4681         PR c++/5713
4682         * c-decl.c (duplicate_decls): Return 0 if issued error about
4683         redeclaration.
4684
4685 2002-02-20  Roger Sayle  <roger@eyesopen.com>
4686             Jakub Jelinek  <jakub@redhat.com>
4687
4688         PR c/4389
4689         * tree.c (host_integerp): Ensure that the constant integer is
4690         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
4691         when pos is zero or non-zero respectively.  Clarify comment.
4692         * c-format.c (check_format_info_recurse): Fix host_integerp
4693         usage; the pos argument should be zero when assigning to a
4694         signed HOST_WIDE_INT.
4695
4696 2002-02-20  Richard Henderson  <rth@redhat.com>
4697
4698         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
4699         of the operand, rather than assuming TImode.
4700         (ix86_expand_binop_builtin): Cope with commutative patterns
4701         using nonimmediate_operand for both operands.
4702         (ix86_expand_timode_binop_builtin): Likewise.
4703         (ix86_expand_store_builtin): Validate operand 1.
4704         (ix86_expand_unop1_builtin): Likewise.
4705
4706 2002-02-20  Philip Blundell  <philb@gnu.org>
4707
4708         PR 5705
4709         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
4710
4711 2002-02-20  Richard Henderson  <rth@redhat.com>
4712
4713         PR c/5615
4714         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
4715
4716 2002-02-20  Tom Tromey  <tromey@redhat.com>
4717
4718         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
4719         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
4720         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
4721         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
4722         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
4723         unconditionally.
4724
4725 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
4726
4727         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
4728           for (const_int 0) in X not just INTVAL.
4729
4730 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
4731
4732         * doc/extend.texi: Avoid or reduce overfull hboxes.
4733
4734 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
4735
4736         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
4737         operations if the field does not start at a mode boundary.
4738
4739 2001-02-20      Joel Sherrill <joel@OARcorp.com>
4740
4741         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
4742         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
4743         Also done for -Acpu and -Amachine.
4744
4745 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4746
4747         * cppinit.c (init_dependency_output): Take deps output file
4748         from -o if none given with -MF.  Suppress normal output.
4749         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
4750         * doc/cpp.texi, doc/invoke.texi: Update.
4751
4752 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
4753
4754         * toplev.c (output_quoted_string): Write unprintable
4755         characters with octal escapes.
4756
4757 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
4758
4759         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
4760         really_call_used[VRSAVE_REGNO] if not Altivec.
4761
4762 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
4763
4764         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
4765         MODE_MASK.
4766         (constant_pool_expr_1): Fix formatting.
4767         (rs6000_legitimize_reload_address): Likewise.
4768
4769 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4770
4771         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
4772         now that we have one.
4773
4774 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
4775
4776         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
4777         end of first block of bitfields (which was only seven bits);
4778         rename dummy to unused_1; remove comment which is no longer true.
4779
4780 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
4781
4782         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
4783
4784 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
4785
4786         PR 5399
4787         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
4788         if generating PIC.
4789
4790         PR 5054
4791         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
4792         arm_is_longcall_p rather than inspecting call-type cookie
4793         directly.
4794         (call_value_insn) [TARGET_THUMB]: Likewise.
4795
4796 2002-02-19  Graham Stott  <grahams@redhat.com>
4797
4798         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
4799
4800 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
4801
4802         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
4803         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
4804         (FP_SAVE_INLINE): Delete.
4805
4806         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
4807         * config/rs6000/eabi.asm: Remove ABI save restore routines.
4808         * config/rs6000/t-ppccomm: Build crtsavres.o.
4809         * config/rs6000/crtsavres.asm: New file.
4810
4811 2002-02-19  Philip Blundell  <philb@gnu.org>
4812
4813         * config/arm/arm.c (use_return_insn): Don't reject interrupt
4814         functions.
4815         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
4816         (output_return_instruction): Allow interrupt functions to return with
4817         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
4818         (arm_expand_prologue): Subtract 4 before stacking LR in an
4819         interrupt function.
4820
4821 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
4822
4823         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
4824         decl, not just FUNCTION_DECL.
4825         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
4826         (arm_assemble_integer): Likewise.
4827         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
4828         marked local.
4829
4830 2002-02-19  matthew green  <mrg@eterna.com.au>
4831
4832         * config.gcc (sparc-*-netbsdelf*): Enable target.
4833         (sparc64-*-netbsd*): New target.
4834         * config/sparc/netbsd-elf.h: New file.
4835         * config/sparc/t-netbsd64: New file.
4836
4837 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
4838
4839         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
4840
4841 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
4842
4843         * doc/invoke.texi: explicitly list the style guidelines that
4844         -Weffc++ checks for.
4845
4846 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
4847
4848         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
4849
4850 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4851
4852         PR other/5718
4853         * gcc.c (cpp_unique_options): Treat -o as indicating object file
4854         only if not -E.  If -E, pass -o through to the preprocessor.
4855
4856 2002-02-19  Kazu Hirata  <kazu@hxi.com>
4857
4858         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
4859         register number with an appropriate macro.
4860
4861 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
4862
4863         * doc/rtl.texi (Constants): Close @code tag.
4864
4865 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
4866
4867         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
4868         ("mmx_uavgv4hi3"): Same.
4869         ("pmulhrwv4hi3"): Same.
4870
4871         * tree-inline.c (walk_tree): Handle vectors.
4872
4873         * c-common.c (constant_expression_warning): Handle vectors.
4874         (overflow_warning): Same.
4875
4876         * sched-deps.c (sched_analyze_2): Handle vectors.
4877
4878         * rtlanal.c (rtx_unstable_p): Handle vectors.
4879         (rtx_varies_p): Same.
4880         (count_occurrences): Same.
4881         (regs_set_between_p): Same.
4882         (modified_between_p): Same.
4883         (modified_in_p): Same.
4884         (volatile_insn_p): Same.
4885         (volatile_refs_p): Same.
4886         (side_effects_p): Same.
4887         (may_trap_p): Same.
4888         (inequality_comparisons_p): Same.
4889         (replace_regs): Same.
4890         (computed_jump_p_1): Same.
4891
4892         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
4893         argument.
4894         (inner_mode_array): New.
4895         (copy_rtx): Handle vectors.
4896         (copy_most_rtx): Same.
4897         (rtx_equal_p): Same.
4898         (get_mode_alignment): Adjust for vectors.
4899
4900         * resource.c (mark_referenced_resources): Handle vectors.
4901         (mark_set_resources): Same.
4902
4903         * reload1.c (eliminate_regs): Handle vectors.
4904         (elimination_effects): Same.
4905         (scan_paradoxical_subregs): Same.
4906
4907         * reload.c (subst_reg_equivs): Handle vectors.
4908
4909         * regrename.c (scan_rtx): Handle vectors.
4910
4911         * regclass.c (reg_scan_mark_refs): Handle vectors.
4912
4913         * recog.c (find_single_use_1): Handle vectors.
4914
4915         * local-alloc.c (equiv_init_varies_p): Handle vectors.
4916         (contains_replace_regs): Same.
4917         (memref_referenced_p): Same.
4918
4919         * integrate.c (copy_rtx_and_substitute): Handle vectors.
4920         (subst_constants): Same.
4921
4922         * genattrtab.c (attr_copy_rtx): Handle vectors.
4923         (encode_units_mask): Same.
4924         (clear_struct_flag): Same.
4925         (count_sub_rtxs): Same.
4926
4927         * gcse.c (want_to_gcse_p): Handle vectors.
4928         (oprs_unchanged_p): Same.
4929         (hash_expr_1): Same.
4930         (oprs_not_set_p): Same.
4931         (expr_killed_p): Same.
4932         (compute_transp): Same.
4933         (store_ops_ok): Same.
4934
4935         * function.c (purge_addressof_1): Do not allow paradoxical subregs
4936         of vectors.
4937         (fixup_var_refs_1): Same.
4938         (instantiate_virtual_regs_1): Same.
4939
4940         * fold-const.c (operand_equal_p): Handle vectors.
4941         (fold): Same.
4942         (rtl_expr_nonnegative_p): Same.
4943
4944         * flow.c (mark_used_regs): Handle vectors.
4945
4946         * df.c (df_uses_record): Handle vectors.
4947
4948         * cselib.c (cselib_subst_to_values): Handle vectors.
4949         (cselib_mem_conflict_p): Same.
4950         (hash_rtx): Same.
4951
4952         * cse.c (canon_reg): Handle vectors.
4953         (fold_rt): Same.
4954         (cse_process_notes): Same.
4955         (count_reg_usage): Same.
4956         (canon_hash): Same.
4957
4958         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
4959
4960         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
4961
4962         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
4963         (gen_rtx): Handle CONST_VECTOR.
4964         (gen_const_vector_0): New.
4965         (copy_rtx_if_shared): CONST_VECTORs can be shared.
4966         (reset_used_flags): Same.
4967         (copy_insn_1): Same.
4968         (initializer_constant_valid_p): Handle VECTOR_CST.
4969
4970         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
4971
4972         * doc/rtl.texi (Constants): Document const_vector.
4973         (CONST0_RTX): Update for vectors.
4974         (RTL sharing): Same.
4975
4976         * print-tree.c (print_node): Add case for VECTOR_CST.
4977
4978         * tree.h (TREE_VECTOR_CST_ELTS): New.
4979         (struct tree_vector): New.
4980         (union tree_node): Add vector node.
4981         (build_vector): Add prototype.
4982
4983         * tree.def (VECTOR_CST): New.
4984
4985         * tree.c (build_vector): New.
4986
4987         * expmed.c (make_tree): Handle CONST_VECTOR.
4988
4989         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
4990         (CONST_VECTOR_ELT): New.
4991         (CONST_VECTOR_NUNITS): New.
4992
4993         * machmode.h (GET_MODE_INNER): New.
4994         (DEF_MACHMODE): Accept 8th arg.
4995
4996         * machmode.def: Add 8th argument for vector inner mode.
4997         Add inner vector modes for vectors.
4998
4999         * rtl.def (VEC_CONST): Remove.
5000         (CONST_VECTOR): New.
5001
5002         * expr.c (clear_storage): Allow vectors.
5003         (is_zeros_p): Handle VECTOR_CST.
5004
5005         * varasm.c (output_constant_pool): Handle vectors.
5006         (rtx_const): Add veclo and vechi fields.
5007         (kind): Add RTX_VECTOR.
5008         (decode_rtx_const): Add case for vector.
5009
5010         * config/rs6000/rs6000-protos.h: Add zero_constant.
5011
5012         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
5013         constants.  Force easy vector constants into memory.
5014         (easy_vector_constant): New.
5015         (emit_easy_vector_constant): New.
5016         (rs6000_legitimize_reload_address): Do not generate bad reloads on
5017         darwin.
5018
5019         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
5020         instruction does.
5021         ("altivec_lvxl"): Same.
5022         (altivec_lvebx): Same.
5023         (altivec_lvehx): Same.
5024         (altivec_lvewx): Same.
5025         ("*movv4si_const0"): New.
5026         ("*movv4sf_const0"): New.
5027         ("*movv8hi_const0"): New.
5028         ("*movv16qi_const0"): New.
5029
5030 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5031
5032         * config/h8300/h8300.c (notice_update_cc): Use
5033         cc_status.value2.
5034
5035 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5036
5037         * config/h8300/h8300.md (divmod patterns): Change the
5038         constraints for operands[1] to register_operand.
5039
5040 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5041
5042         * config/h8300/h8300-protos.h: Remove the prototype for
5043         p_operand.
5044         * config/h8300/h8300.c (p_operand): Remove.
5045         * config/h8300/h8300.md: Replace p_operand with
5046         const_int_operand.
5047
5048 2002-02-18 Philip Blundell <pb@nexus.co.uk>
5049
5050         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
5051         comment.
5052         (output_return_instruction): Allow use of LDR to unstack
5053         return addresss even for interrupt handlers or when
5054         interworking.  If compiling for ARMv5, use interworking-safe
5055         return instructions by default.  Remove duplicated code and
5056         lengthy "strcat" sequences.
5057
5058 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5059
5060         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
5061         (LINK_EH_SPEC): Define.
5062         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
5063
5064 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5065
5066         * config/s390/s390.c (s390_emit_prologue): Do not set the
5067         frame_related flag for call-clobbered registers.
5068
5069 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
5070
5071         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
5072         (construct_container): Fix handling of SSE operands.
5073         (ix86_expand_builtin): Fix handling of 64bit pointers.
5074         (mmx_maskmovq_rex): New pattern.
5075
5076 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
5077
5078         * regrename.c (kill_set_value): Handle subregs properly.
5079
5080 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
5081
5082         * objc/objc-act.c (handle_impent): Remove leading '*'
5083         from objc_class_name.
5084
5085 2002-02-17  Richard Henderson  <rth@redhat.com>
5086
5087         * config/alpha/alpha.c (some_small_symbolic_operand,
5088         some_small_symbolic_operand_1, split_small_symbolic_operand,
5089         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
5090         Handle small SYMBOL_REFs anywhere, not just inside memories.
5091         * config/alpha/alpha-protos.h: Update.
5092         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5093         * config/alpha/alpha.md (small symbolic operand splitter): Update.
5094
5095 2002-02-17  Roland McGrath  <roland@frob.com>
5096
5097         * config.gcc (powerpc-*-gnu-gnualtivec*,
5098         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
5099         * config/rs6000/gnu.h: New file.
5100         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
5101         Grok "gnu" in rs6000_abi_name.
5102         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
5103         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
5104         Grok -mcall-gnu analogous to -mcall-linux et al.
5105         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5106         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
5107         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
5108
5109 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
5110
5111         PR c/3444:
5112         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
5113         shortening.
5114
5115 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5116
5117         * config/cris/cris.h: Undefine STARTFILE_SPEC and
5118         ENDFILE_SPEC before (re)defining them.
5119
5120 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5121
5122         * config/h8300/h8300.c: Fix formatting.
5123         * config/h8300/h8300.h: Likewise.
5124
5125 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5126
5127         * doc/tm.texi: Explain why empty strings should not be
5128         marked for translation.
5129
5130 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5131
5132         * final.c (output_operand_lossage): Changed to accept
5133         printf style arguments. Change calls where necessary.
5134         * output.h (output_operand_lossage): Change declaration
5135         accordingly. Update copyright.
5136         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
5137         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
5138         Update copyright date where necessary.
5139
5140         * config/i386/i386.c (print_operand): Likewise. Remove use of
5141         sprintf.
5142
5143         * config/cris/cris.c (cris_operand_lossage): Likewise.
5144         Rename parameter so that exgettext recognizes it as
5145         translatable message.
5146         (LOSE_AND_RETURN): Rename parameter to msgid.
5147
5148 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5149
5150         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
5151         hard coded register number with an appropriate macro.
5152         (HARD_REGNO_MODE_OK): Likewise.
5153         (ARG_POINTER_REGNUM): Likewise.
5154         (STATIC_CHAIN_REGNUM): Likewise.
5155         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5156         * config/h8300/h8300.md (define_constants): Define more
5157         register numbers.
5158
5159 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5160
5161         * config/i386/i386.h: Don't mark empty strings for translation.
5162
5163 2002-02-16  H.J. Lu <hjl@gnu.org>
5164
5165         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
5166
5167 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
5168
5169         * cppinit.c (merge_include_chains): Check for brack being
5170         NULL before attempting to merge it with qtail.
5171
5172 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
5173
5174         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
5175         DBX_DEBUG.
5176
5177 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5178
5179         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
5180
5181 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5182
5183         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
5184         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
5185         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
5186
5187 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5188
5189         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
5190         now only if !TARGET_FIX.
5191         (*movsi_nt_vms_fix): New pattern.
5192
5193 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
5194
5195         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
5196         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
5197         (alpha_sa_mask, alpha_sa_size): Reflect above change.
5198         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
5199         (alpha_start_function, alpha_expand_epilogue): Likewise.
5200         (unicosmk_gen_dsib): Likewise.
5201
5202 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5203
5204         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
5205
5206 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
5207
5208         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
5209         check_and_change_labels, s390_final_chunkify): Delete.
5210         (s390_split_branches, s390_chunkify_pool): New functions.
5211         (s390_function_prologue): Call them.
5212
5213         * config/s390/s390.h (S390_REL_MAX): Delete.
5214         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
5215
5216         * config/s390/s390.md (cjump, icjump, jump): Fix length
5217         attribute calculation.
5218
5219
5220 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
5221
5222         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
5223         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
5224
5225 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5226
5227         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
5228         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
5229         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
5230
5231 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
5232
5233         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
5234
5235 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
5236
5237         * reload.c (find_dummy_reload): Check that an output register
5238         is valid for its mode.
5239
5240 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
5241
5242         * combine.c (known_cond): After replacing the REG of a SUBREG, try
5243         to simplify it.
5244
5245         * function.c (assign_parms): Demote promoted argument passed by
5246         transparent reference.
5247
5248 2001-02-14      Joel Sherrill <joel@OARcorp.com>
5249
5250         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
5251         -Acpu() and -Amachine() to eliminate warnings.
5252
5253 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
5254
5255         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
5256
5257 2002-02-14  Kazu Hirata  <kazu@hxi.com>
5258
5259         * config/h8300/h8300-protos.h: Update the prototype for
5260         const_costs.
5261         * config/h8300/h8300.c (const_costs): Treat SET as a little
5262         more expensive operation.
5263         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
5264         reference to const_costs.
5265
5266 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
5267
5268         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
5269
5270 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
5271
5272         PR c/5503:
5273         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
5274         use arguments from newtype.
5275
5276 2002-02-13  Eric Christopher  <echristo@redhat.com>
5277
5278         * config/mips/mips.c (override_options): Add check for march/mipsX
5279         on the same command line. Fix error message in cpu processing.
5280         Remove architecture and ISA checks.
5281
5282 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
5283
5284         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
5285
5286         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
5287
5288 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
5289
5290         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
5291         alternatives.
5292         ("*movv8hi_internal1"): Same.
5293         ("*movv16qi_internal1"): Same.
5294         ("*movv4sf_internal1"): Same.
5295
5296         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
5297         not push_reload for altivec modes.
5298
5299 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
5300
5301         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
5302         all RTEMS targets including removal of #includes from config/*/rtems*.h
5303         file and adding them to tm_file setting. Added xm_defines=POSIX to
5304         many targets.
5305         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
5306         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
5307         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
5308         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
5309         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
5310         config/m68k/rtemself.h: Ditto.
5311         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
5312         config/mips/rtems64.h: Ditto.
5313         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
5314         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
5315         Ditto.
5316         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
5317         config/sparc/rtemself.h: Ditto.
5318         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
5319         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
5320         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
5321         more like arm-elf.
5322         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
5323         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
5324         target made more similar to i386-elf.
5325         * config/i386/t-rtems-i386: Added soft float support and multilibs.
5326         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
5327         be similar to config/m68k/t-m68kelf.
5328         * gthr-rtems.h: Encapsulate with extern "C" for C++.
5329
5330 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
5331
5332         * regmove.c (kill_value): Handle subregs.
5333
5334 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
5335
5336         * i386.md (mul patterns): Allow memory operand to be first;
5337         add expanders where needed; fix constraints.
5338         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
5339         Allow memory operand to be the first.
5340
5341         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
5342         operands.
5343
5344 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
5345
5346         PR c/5681:
5347         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
5348         GET_MODE (x).
5349
5350 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
5351
5352         PR optimization/5547:
5353         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
5354         all valid IA-32 address modes involving non-scaled %ebx and
5355         GOT/GOTOFF as displacement.
5356
5357 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
5358
5359         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
5360         after emitting ltorg insns.
5361
5362         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
5363         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
5364         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
5365         *abssf2): Fix "op_type" attribute.
5366
5367 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
5368
5369         * mkconfig.sh: Avoid using a subshell redirect.
5370         ($output.T): Change to $(output)T.
5371         (ENABLE_NLS): Remove unneeded undef.
5372
5373         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
5374         * config/alpha/x-vms (libsubdir): Define.
5375
5376         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
5377         register frame procedures. Optimize retrieving context.
5378
5379         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
5380         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
5381         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
5382
5383 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5384
5385         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
5386         Make same change as for find_base_value.
5387
5388 2002-02-13  Kazu Hirata  <kazu@hxi.com>
5389
5390         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
5391         of QImode and SImode.
5392
5393 2002-02-13  Kazu Hirata  <kazu@hxi.com>
5394
5395         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
5396         length computation of movsi.
5397         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
5398
5399 2002-02-13  Kazu Hirata  <kazu@hxi.com>
5400
5401         * config/h8300/h8300.md (subqi3): Tighten the predicate for
5402         operands[2] to register_operand.
5403
5404 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
5405
5406         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
5407
5408 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
5409
5410         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
5411         for altivec_lvx* and altivec_stvx*.
5412         ("*movv4si_internal"): Add constraint for loading from GPRs.
5413         ("*movv8hi_internal1"): Same.
5414         ("*movv16qi_internal1"): Same.
5415         ("*movv4sf_internal1"): Same.
5416
5417         * config/rs6000/rs6000.c (altivec_register_operand): New.
5418
5419         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
5420         altivec_register_operand.
5421
5422 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
5423
5424         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
5425         handle SYMBOL_REF.
5426
5427 2002-02-13  Stan Shebs  <shebs@apple.com>
5428
5429         * c-typeck.c (digest_init): Handle vectors.
5430         (really_start_incremental_init): Same.
5431         (pop_init_level): Same.
5432         (process_init_element): Same.
5433
5434         * varasm.c (output_constant): Same.
5435
5436         * expr.c (clear_storage): Same.
5437         (store_constructor): Same.
5438
5439 2002-02-12  Eric Christopher  <echristo@redhat.com>
5440
5441         * explow.c (hard_function_value): Add comment explaining
5442         signed/unsigned comparison.
5443
5444 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
5445
5446         * jump.c (never_reached_warning): Add finish argument.
5447         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
5448         real insn after end.
5449         * rtl.h (never_reached_warning): Adjust prototype.
5450         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
5451         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
5452         never_reached_warning.
5453
5454 2002-02-12  Graham Stott  <grahams@redhat.com>
5455
5456         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
5457
5458 2002-02-12  Kazu Hirata  <kazu@hxi.com>
5459
5460         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
5461         logical shifts on H8/300.
5462         (shift_alg_si): Improve several shifts on H8/300.
5463         (get_shift_alg): Likewise.
5464
5465 2002-02-12  Graham Stott  <grahams@redhat.com>
5466
5467         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
5468
5469 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5470
5471         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
5472         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
5473
5474 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
5475
5476         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
5477         non-CONST_INT through default_assemble_integer.
5478         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
5479         <case 8>: Abort for CONST_DOUBLE.
5480
5481 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5482
5483         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
5484         is specified.
5485         * config/pa/pa-linux.h (LIB_SPEC): Delete.
5486         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
5487
5488 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
5489
5490         * config/stormy16/stormy16.md (zero_extendqihi2): New.
5491
5492 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
5493
5494         * regrename.c (regrename_optimize): Don't accept a
5495         part-clobbered register if the replaced register is not part
5496         clobbered.
5497
5498         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
5499         take padding into account when computing the argument value.
5500
5501         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
5502
5503         * combine.c (try_combine): Apply substitutions in
5504         CALL_INSN_FUNCTION_USAGE too.
5505
5506 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
5507
5508         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
5509         __builtin_altivec_abs*.
5510         (bdesc_abs): New.
5511
5512         * config/rs6000/rs6000.h (rs6000_builtins): Add
5513         ALTIVEC_BUILTIN_ABS*.
5514
5515         * config/rs6000/altivec.h: Use const char for builtins expecting
5516         literals.
5517         (vec_abs): New versions for C and C++.
5518         (vec_abss): Same.
5519
5520 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5521
5522         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
5523         using Pmode.
5524
5525 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5526
5527         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
5528         constant definition from h8300.md.
5529         (FRAME_POINTER_REGNUM): Likewise.
5530         * config/h8300/h8300.md (define_constants): Add FP_REG.
5531
5532 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5533
5534         * config/h8300/h8300.c (print_operand): Remove redundant code.
5535
5536 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5537
5538         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
5539         * config/h8300/h8300.c (byte_reg): Make it static.
5540
5541 2002-02-10  Richard Henderson  <rth@redhat.com>
5542
5543         PR c/5623
5544         * c-typeck.c (incomplete_type_error): Handle flexible array members.
5545
5546 2002-02-10  Richard Henderson  <rth@redhat.com>
5547
5548         PR c++/5624
5549         * tree.c (append_random_chars): Don't abort if main_input_filename
5550         does not exist.
5551
5552 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
5553
5554         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
5555
5556 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5557
5558         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
5559         (pushhi1): Likewise.
5560
5561 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5562
5563         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
5564         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
5565
5566 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
5567
5568         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
5569         remove MASK_VIS.
5570         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
5571
5572 2002-02-09  Kazu Hirata  <kazu@hxi.com>
5573
5574         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
5575         a half of an SImode register on H8/300.
5576
5577 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
5578
5579         * i386.md (movdi_2): Add missing '!'.
5580
5581 2002-02-09  Kazu Hirata  <kazu@hxi.com>
5582
5583         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
5584         definitions.
5585
5586 2002-02-09  Kazu Hirata  <kazu@hxi.com>
5587
5588         * config/h8300/h8300.md (length): Correct the distance valid
5589         for the short branch.
5590
5591 2002-02-09  Kazu Hirata  <kazu@hxi.com>
5592
5593         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
5594
5595 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
5596
5597         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
5598         registers in SImode.
5599         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
5600         part-clobbered.
5601
5602         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
5603         patch.
5604
5605         Contribute sh64-elf.
5606         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
5607         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
5608         (sh_cannot_modify_jumps_p): New function.
5609         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
5610         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
5611         (sh_ms_bitfield_layout_p): New function.
5612         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
5613                     Zack Weinberg  <zack@codesourcery.com>
5614         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
5615         expand_simple_binop instead of expand_binop.
5616         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
5617         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
5618         use of .quad and .uaquad.
5619         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
5620         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
5621         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
5622         * config/sh/sh.md (movdi_const, movdi_const_32bit,
5623         movdi_const_16bit): Make sure all CONSTs have modes.
5624         (sym2PIC): Ditto, but by adjusting all callers.
5625         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
5626         if the prologue calls the SHmedia argument decoder or register
5627         saver.
5628         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
5629         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
5630         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
5631         (sh_expand_epilogue): Don't emit USE of return target register.
5632         (prepare_move_operands): Legitimize DImode PIC addresses.
5633         (sh_media_register_for_return): Skip tr0, used to initialize the
5634         PIC register.
5635         (sh_expand_prologue): Remove explicit USE of return register.
5636         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
5637         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
5638         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
5639         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
5640         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
5641         EXTRA_CONSTRAINT_T.
5642         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
5643         (MOVI_SHORI_BASE_OPERAND_P): New.
5644         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
5645         (EXTRA_CONSTRAINT_T): Define in terms of them.
5646         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
5647         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
5648         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
5649         alternatives supporting TARGET_REGS.
5650         (UNSPEC_GOTPLT): New constant.
5651         (movdi split): Move incrementing of LABEL_NUSES...
5652         (movdi_const, movdi_const_32bit): Here.  Use
5653         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
5654         (movdi_const_16bit): New.
5655         (call, call_value) [flag_pic]: Use GOTPLT.
5656         (call_pop, call_value_pop): New expands.
5657         (call_pop_compact, call_pop_rettramp): New insns.
5658         (call_value_pop_compact, call_value_pop_rettramp): New insns.
5659         (sibcall) [flag_pic]: Use GOT.
5660         (builtint_setjmp_receiver): Remove bogus, unused expand.
5661         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
5662         (*pt, *ptb, ptrel): New insns.
5663         (sym2GOT): Handle DImode GOT.
5664         (sym2GOTPLT, symGOTPLT2reg): New expands.
5665         (sym2PIC): New expand.
5666         (shcompact_return_tramp): Use GOTPLT to return trampoline.
5667         (shcompact_return_tramp_i): Use return register explicitly.
5668         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
5669         disable flag_reorder_blocks.
5670         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
5671         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
5672         clobbers, for clarity.
5673         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
5674         restoring of r0 in macl as MAYBE_DEAD.
5675         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
5676         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
5677         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
5678         alter_subreg all over.
5679         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
5680         reload, instead of emitting instructions that would require
5681         reloading.
5682         (casesi_load_media): Add missing modes.
5683         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
5684         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
5685         as used if the argument decoder is called.
5686         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
5687         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
5688         Pmode, then extend it to DImode if necessary.
5689         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
5690         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
5691         constants in FPU-enabled SHmedia, let them be loaded from memory.
5692         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
5693         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
5694         Adjust whitespace in assembly output templates.
5695         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
5696         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
5697         mode of if_then_else.
5698         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
5699         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
5700         sh.h.
5701         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
5702                     Joern Rennecke <amylaar@redhat.com>
5703         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
5704         (SUBTARGET_CPP_PTR_SPEC): New.
5705         (SUBTARGET_CPP_SPEC): Remove.
5706         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
5707         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
5708         Fix typo in previous checkin.
5709         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
5710         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
5711         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
5712                     Alexandre Oliva  <aoliva@redhat.com>
5713         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
5714         what single FP register can hold for SHmedia target.
5715         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
5716                     Alexandre Oliva  <aoliva@redhat.com>
5717         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
5718         Do not split into SUBREG.
5719         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
5720         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
5721         and added new functions as specified in SH5 ABI r9.
5722         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
5723         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
5724         8-byte boundary.
5725         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
5726         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
5727         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
5728         and consttable_window_ends.
5729         2001-06-03  Graham Stott  <grahams@redhat,com>
5730         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
5731         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
5732         * config/sh/sh.c (print_operand): Handle floating-point pair,
5733         vector and matrix registers.
5734         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
5735         vector modes into account.
5736         * config/sh/sh.md (movv2sf): Split move between registers into
5737         movdf.
5738         (movv4sf, movv16sf): Introduce insns that get split only after
5739         reload.
5740         * config/sh/shmedia.h: Fix Copyright dates.
5741         * config/sh/ushmedia.h: Likewise.  Move loop counter
5742         declarations into conditionals that uses them.
5743         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
5744         loop boundary.
5745         * config/sh/sshmedia.h: Fix Copyright dates.
5746         (sh_media_PUTCFG): Fix constraints.
5747         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
5748         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
5749         ptrmemfunc_vbit_in_delta for SH5.
5750         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
5751         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
5752         * invoke.texi: Likewise.
5753         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
5754         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
5755         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
5756         GCC_pop_shmedia_regs_nofpu): New global symbols.
5757         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
5758         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
5759         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
5760         compact function with nonlocal labels.
5761         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
5762         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
5763         (initial_elimination_offset): Account for their stack space.
5764         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
5765         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
5766         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
5767         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
5768         least one of the operands to be a register.
5769         (movv2sf): Likewise.  Renamed to movv2sf_i.
5770         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
5771         prepare_move_operands() before emitting SHmedia insns.
5772         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
5773         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
5774         Don't save nor initialize r12.  Don't mis-align the stack.
5775         Pad the code with a nop.
5776         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
5777         stack.
5778         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
5779         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
5780         [__SHMEDIA__]: Implement.
5781         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
5782         * config/sh/sh.md: Set latency of `pt' closer to reality.
5783         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
5784         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
5785         Set move, load and store type attributes.
5786         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
5787         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
5788         profiling.
5789         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
5790         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
5791         * config/sh/sh.c (sh_media_register_for_return): New function.
5792         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
5793         branch-target register.
5794         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
5795         * config/sh/sh.md (return_media_i): Use any call-clobbered
5796         branch-target register.
5797         (return_media): If r18 wasn't copied in the prologue, copy it
5798         here.
5799         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
5800         Clear class FP0_REGS.
5801         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
5802         from elf.h.
5803         2001-03-08  DJ Delorie  <dj@redhat.com>
5804         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
5805         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
5806         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
5807         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
5808         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
5809         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
5810         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
5811         return value correctly for call_cookie.
5812         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
5813         * config/sh/crt1.asm (start): Modified so as to call
5814         ___setup_argv_and_call_main.
5815         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
5816         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
5817         SHmedia mode.
5818         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
5819         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
5820         (STRIP_NAME_ENCODING): Use it.
5821         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
5822         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
5823         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
5824         prepare_scc_operands().
5825         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
5826         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
5827         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
5828         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
5829         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
5830         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
5831         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
5832         used in shcompact_incoming_args.
5833         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
5834         change.
5835         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
5836         mode.
5837         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
5838         Adjust accordingly.
5839         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
5840         Simplify.  Adjust.  Add sanity check.
5841         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
5842         FPU_SINGLE_BIT.
5843         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
5844         TARGET_SHCOMPACT.
5845         (udivsi3, divsi3): Use them.
5846         (force_mode_for_call): New insn.
5847         (call, call_value, sibcall_value): Emit it before SHcompact
5848         calls.
5849         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
5850         * config/sh/sh.md (call, call_value, sibcall): Make sure the
5851         call cookie is non-NULL before taking its value.
5852         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
5853         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
5854         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
5855         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
5856         block.
5857         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
5858         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
5859         temporary for stack adjusts.  Use MACL and MACH to pass
5860         arguments to shcompact_incoming_args.
5861         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
5862         clobber r1.
5863         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
5864         (nested_trampoline): Load static chain address into r1.
5865         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
5866         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
5867         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
5868         fp_arith_reg_operand().
5869         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
5870         * config/sh/sh.md (casesi): Sign-extend the first two operands,
5871         and use signed compares for them.
5872         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
5873         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
5874         ones properly aligned.
5875         (find_barrier): Account for extra alignment needed for 8-byte wide
5876         constants.
5877         (machine_dependent_reorg): Require a label for the second 4-byte
5878         constant after an 8-byte one.
5879         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
5880         change.
5881         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
5882         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
5883         last_float when switching float modes.
5884         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
5885         auto-increment for general-purpose registers.
5886         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
5887         result.
5888         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
5889         for stack adjust.
5890         * config/sh/sh.c (sh_builtin_saveregs): Support using all
5891         registers for varargs.
5892         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
5893         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
5894         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
5895         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
5896         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
5897         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
5898         call_cookie accordingly.
5899         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
5900         (SHCOMPACT_BYREF): Likewise.
5901         (SHCOMPACT_FORCE_ON_STACK): New macro.
5902         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
5903         (sh_builtin_saveregs): Likewise.
5904         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
5905         shcompact_incoming_args): Use new shift values.  Support
5906         sequences of consecutive and non-consecutive pushes/pops.
5907         * config/sh/sh.md (return): Don't explicitly use PR_REG.
5908         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
5909         * config/sh/sh.h (TEXT_SECTION): Define.
5910         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
5911         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
5912         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
5913         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
5914         return values on FPU-enabled SHmedia.
5915         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
5916         FPU-enabled SHmedia.
5917         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
5918         value is returned in a non-FP reg and is not returned by
5919         reference.
5920         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
5921         jump_ind.
5922         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
5923         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
5924         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
5925         quad-aligned to be passed by callee-copy reference.
5926         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
5927         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
5928         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
5929         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
5930         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
5931         copying low-numbered FP regs to r7 and r8.
5932         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
5933         FP regs to general-purpose regs only if the copy was passed on the
5934         stack.
5935         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
5936         copying FP reg to r9.
5937         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
5938         copy FP regs to general-purpose regs only in outgoing calls.
5939         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
5940         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
5941         HOST_WIDE_INT.
5942         * config/sh/sh.h (struct sh_args): Document all fields.
5943         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
5944         passed partially on the stack should not consider making
5945         sibcalls.
5946         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
5947         stack_regs only for incoming calls.  When passing FP args,
5948         make sure there are FP regs available before modifying
5949         call_cookie.
5950         (SHCOMPACT_BYREF): Pass double args in general-purpose
5951         registers by reference.
5952         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
5953         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
5954         attempt to generate sibcalls if the caller got any arguments
5955         by reference.
5956         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
5957         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
5958         to 8-byte boundaries.
5959         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
5960         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
5961         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
5962         stored in the stack.
5963         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
5964         for the offsets to have the ISA bit set.
5965         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
5966         invocation.  Use beq instead of bgt to mark end of sequence of
5967         loads.
5968         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
5969         bgt to mark end of sequence of stores.
5970         * config/sh/sh.c (arith_operand): Don't check whether
5971         CONST_OK_FOR_J for now.
5972         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
5973         instead of long for conversion.
5974         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
5975         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
5976         before passing it to fprintf.
5977         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
5978         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
5979         Call set_fpscr before reading/writing SR.
5980         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
5981         Call set_fpscr.
5982         * config/sh/lib1funcs.asm: Add `.align 2' directives before
5983         SHmedia code.
5984         (FMOVD_WORKS): Define on SH5 with FPU.
5985         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
5986         setting.
5987         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
5988         _fpscr_values.
5989         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
5990         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
5991         address.
5992         (ia_main_table): Ditto.
5993         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
5994         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
5995         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
5996         the definitions from sh.h.
5997         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
5998         TARGET_SH5.
5999         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
6000         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
6001         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6002         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
6003         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
6004         Increment LABEL_NUSES.
6005
6006         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
6007         TARGET_SH5.
6008         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
6009         defined.
6010         * config/sh/elf.h (SIZE_TYPE): Likewise.
6011         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6012         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6013         shcompact_incoming_args): Load switch table addresses using
6014         datalabel.
6015         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6016         (NO_BUILTIN_SIZE_TYPE): Define.
6017         (SIZE_TYPE): Don't define.
6018         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6019         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
6020         definition of __SH5__=32 for -m5-compact-nofpu.
6021         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
6022         ADDR_DIFF_VEC.
6023         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
6024         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
6025         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
6026         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
6027         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
6028         (INSN_LENGTH_ALIGNMENT): Likewise.
6029         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6030         * config/sh/sh.md (call, call_value, sibcall): Simplify
6031         copying of non-branch-target register.
6032         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6033         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
6034         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
6035         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6036         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
6037         floating-point values as structs.
6038         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
6039         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
6040         general-purpose register.
6041         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
6042         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6043         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
6044         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
6045         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
6046         (ENCODE_SECTION_INFO): Enclose variables and constants in
6047         DATALABEL unspecs.
6048         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
6049         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
6050         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
6051         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
6052         only for LABEL_REFs.  For SYMBOL_REFs, prepend
6053         SH_DATALABEL_ENCODING to the symbol name.
6054         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
6055         convert_mode().
6056         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6057         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
6058         UNSPEC_DATALABEL.
6059         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
6060         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
6061         (DATALABEL_REF_P): Don't require CONST.
6062         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
6063         REL label.
6064         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
6065         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
6066         right.
6067         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6068         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
6069         Use shallow_copy_rtx and PUT_MODE to change the mode of
6070         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
6071         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
6072         on SHmedia using GENERAL_REGs.
6073         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6074         bltu_media_i): Fix reversion of conditions.
6075         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6076         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
6077         * config/sh/sh.c (output_far_jump): Save r13 in macl.
6078         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
6079         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
6080         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
6081         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
6082         (GCC_nested_trampoline): Likewise.
6083         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
6084         * config/sh/sh.c (gen_datalabel_ref): Define.
6085         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
6086         (INITIALIZE_TRAMPOLINE): Likewise.
6087         (TRAMPOLINE_ADJUST_ADDRESS): Define.
6088         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
6089         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
6090         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
6091         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
6092         (ic_invalidate): Adjust for SH5.
6093         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
6094         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
6095         _nested_trampoline.
6096         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
6097         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
6098         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
6099         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6100         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
6101         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
6102         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6103         * config/sh/sh.c (target_reg_operand): Match only target-branch
6104         registers and pseudos that aren't virtual registers.
6105         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6106         Copy operands that don't match target_reg_operand to pseudos.
6107         (call_media, call_value_media, sibcall_media): Use
6108         target_reg_operand instead of target_operand.
6109         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
6110         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
6111         * config/sh/sh.c (target_reg_operand): Match hardware registers
6112         other than branch-target registers.
6113         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
6114         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
6115         (fpscr_values) [SH5 == 32]: Define.
6116         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
6117         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6118         Handle function addresses coming in SUBREGs.
6119         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
6120         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6121         shcompact_return_trampoline): Use datalabel where appropriate.
6122         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
6123         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
6124         general-purpose register to copy one branch-target register to
6125         another.
6126         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6127         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
6128         SYMBOL_REFs with VOIDmode.
6129         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6130         bltu_media_i): New insns.
6131         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6132         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
6133         (INIT_CUMULATIVE_ARGS): Likewise.
6134         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
6135         * machmode.def (V16SFmode): New mode.
6136         * c-common.c (type_for_mode): Support V2SF and V16SF.
6137         * tree.c (build_common_tree_nodes_2): Likewise.
6138         * tree.h (tree_index): Likewise.
6139         * calls.c (emit_call_1): Take args_so_far.  Adjust all
6140         callers.  Introduce CALL_POPS_ARGS.
6141         * tm.texi (CALL_POPS_ARGS): Document.
6142         * config/sh/crt1.asm: Implement in SHmedia mode.
6143         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
6144         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
6145         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
6146         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
6147         Implement divsi and udivsi in SHmedia mode.  Introduce
6148         SHcompact trampolines.
6149         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
6150         only in SHmedia64.
6151         (regno_reg_class): Rewrite.
6152         (fp_reg_names): Remove.
6153         (sh_register_names, sh_additional_register_names): New.
6154         (print_operand): Added `u'.  Support SUBREGs in addresses.
6155         Add parentheses around shifted CONSTs.
6156         (output_file_start): Output .mode and .abi directives.
6157         (shiftcosts, addsubcosts, multcosts): Adjust.
6158         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
6159         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
6160         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
6161         bytes, not registers.  Take into account the need for the
6162         SHcompact incoming args trampoline.  Adjust all callers.
6163         (sh_expand_prologue): Take stack_regs into account.  Call
6164         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
6165         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
6166         stack aligned as per SH5 ABI.
6167         (sh_builtin_saveregs): Support SH5 ABI.
6168         (sh_build_va_list, sh_va_start): Likewise.
6169         (initial_elimination_offset): Take alignment into account.
6170         Compute location of PR according to the SH5 stack frame.
6171         (arith_reg_operand): Reject branch-target registers.
6172         (shmedia_6bit_operand): New.
6173         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
6174         (target_reg_operand): Match DImode only.  Accept SUBREGs.
6175         (target_operand): New.
6176         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
6177         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
6178         SIBCALL_REGS for SHmedia.
6179         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
6180         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
6181         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
6182         (TARGET_SWITCHES): New SH5 flags.
6183         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
6184         VALID_REGISTER_P to disable unsupported registers.
6185         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
6186         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
6187         (FUNCTION_ARG_PADDING): Define.
6188         (FASTEST_ALIGNMENT): Adjust.
6189         (SH_REGISTER_NAMES_INITIALIZER): New.
6190         (sh_register_names): Declare.
6191         (DEBUG_REGISTER_NAMES): Define.
6192         (REGISTER_NAMES): Define based on sh_register_names.
6193         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
6194         (sh_additional_register_names): Declare.
6195         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
6196         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
6197         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
6198         (REGISTER_NATURAL_MODE): Define.
6199         (FIRST_PSEUDO_REGISTER): Adjust.
6200         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
6201         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
6202         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
6203         (VECTOR_MODE_SUPPORTED_P): Define.
6204         (REG_CLASS_CONTENTS): Adjust.
6205         (SMALL_REGISTER_CLASSES): Adjust.
6206         (REG_ALLOC_ORDER): Adjust.
6207         (INDEX_REG_CLASS): Adjust.
6208         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
6209         (CONST_OK_FOR_LETTER_P): Adjust.
6210         (PREFERRED_RELOAD_CLASS): Adjust.
6211         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
6212         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
6213         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
6214         (FIRST_FP_PARM_REG): Adjust.
6215         (CALL_POPS_ARGS): Define.
6216         (FUNCTION_ARG_REGNO_P): Adjust.
6217         (struct sh_args): New fields.
6218         (GET_SH_ARG_CLASS): Adjust.
6219         (INIT_CUMULATIVE_ARGS): Adjust.
6220         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
6221         (FUNCTION_ARG_ADVANCE): Adjust.
6222         (FUNCTION_ARG): Adjust.
6223         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
6224         (FUNCTION_ARG_CALLEE_COPIES): Define.
6225         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
6226         (STRICT_ARGUMENT_NAMING): Define.
6227         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
6228         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
6229         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
6230         (SETUP_INCOMING_VARARGS): Adjust.
6231         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
6232         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
6233         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
6234         (SUBREG_OK_FOR_INDEX_P): Adjust.
6235         (EXTRA_CONSTRAINT_S): Update.
6236         (EXTRA_CONSTRAINT_T): New.
6237         (EXTRA_CONSTRAINT): Adjust.
6238         (GO_IF_LEGITIMATE_INDEX): Adjust.
6239         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
6240         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
6241         (MOVE_MAX): Adjust.
6242         (MAX_MOVE_MAX): Define.
6243         (Pmode): Adjust.
6244         (CONST_COSTS): Adjust.
6245         (REGISTER_MOVE_COST): Adjust.
6246         (BRANCH_COST): Adjust.
6247         (TEXT_SECTION_ASM_OP): Adjust.
6248         (DBX_REGISTER_NUMBER): Adjust.
6249         (ASM_OUTPUT_DOUBLE_INT): New.
6250         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
6251         (PREDICATE_CODES): Adjust.
6252         (PROMOTE_MODE): Adjust.
6253         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
6254         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
6255         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
6256         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
6257         (DR0_REG, DR2_REG, DR4_REG): Renumber.
6258         (TR0_REG, TR1_REG, TR2_REG): New.
6259         (XD0_REG): Renumber.
6260         (UNSPEC_COMPACT_ARGS): New.
6261         (type): Added pt and ptabs.
6262         (length): Default to 4 on SHmedia.  Default pt length to 12
6263         and     20 on SHmedia32 and SHmedia64, respectively.
6264         (pt): New function unit.
6265         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
6266         Add whitespace between operands of SHmedia instructions.
6267         (movdicc): Fix.
6268         (adddi3_media, addsi3_media): Adjust constraints.
6269         (subsi3) [SHmedia]: Force operand 1 into a register.
6270         (udivsi3_i1_media, udivsi3_i4_media): New.
6271         (udivsi3): Support SHmedia.
6272         (divsi3_i1_media, divsi3_i4_media): New.
6273         (divsi3): Support SHmedia.
6274         (anddi3, iordi3, xordi3): Adjust constraints.
6275         (zero_extendhidi2, zero_extendqidi2): New.
6276         (extendsidi2, extendhidi2, extendqidi2): New.
6277         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
6278         (pop_e, pop_fpul, pop_4): Likewise.
6279         (movsi_media): Support FP and BT registers.
6280         (movsi_media_nofpu): New.  Adjust splits to DImode.
6281         (lduw, ldub): Renamed to zero_extend* above.
6282         (movqi_media): Fix typo.
6283         (movdi_media): Support FP and BT registers.
6284         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
6285         (movdi_const_32bit): New.
6286         (shori_media): Require immediate operand.  Use `u' for output.
6287         (movdf_media, movsf_media): Simplified.
6288         (movdf_media_nofpu, movsf_media_nofpu): New.
6289         (movdf, movsf): Adjust
6290         (movv2sf, movv2sf, movv16sf): New.
6291         (beq_media, beq_media_i): Adjust constraints.  Don't use
6292         scratch BT register.
6293         (bne_media, bne_media_i): Likewise.
6294         (bgt_media, bgt_media_i): Likewise.
6295         (bge_media, bge_media_i): Likewise.
6296         (bgtu_media, bgtu_media_i): Likewise.
6297         (bgeu_media, bgeu_media_i): Likewise.
6298         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
6299         bunordered): Emit jump insn.  Force operands to registers when
6300         needed.
6301         (jump_media, jump): Simplify.
6302         (call_compact, call_compact_rettramp): New.
6303         (call_value_compact, call_value_compact_rettramp): New.
6304         (call_media, call_value_media): Simplify.
6305         (sibcall_compact, sibcall_media): New.
6306         (call, call_value): Adjust for SHmedia and SHcompact.
6307         (sibcall, sibcall_value, untyped_call): Likewise.
6308         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
6309         (indirect_jump): Adjust for SHmedia.
6310         (casesi_jump_media): New.
6311         (nop): Re-enable for SHmedia.
6312         (call_site): Restrict to SH1.
6313         (casesi): Adjust for SHmedia.
6314         (casesi_shift_media, casesi_load_media): New.
6315         (return): Explicitly use PR register.  Call return trampoline
6316         on SHcompact.
6317         (return_i): Explicitly use PR register.
6318         (shcompact_return_tramp, shcompact_return_tramp_i): New.
6319         (return_media): Adjust.
6320         (shcompact_incoming_args): New.
6321         (epilogue): Adjust.
6322         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
6323         (movstrsi): Disable on SH5.
6324         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
6325         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
6326         (subsf3, subsf3_media): Likewise.
6327         (mulsf3, mulsf3_media, mac_media): Likewise.
6328         (divsf3, divsf3_media): Likewise.
6329         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
6330         (floatsisf2, fux_truncsfsi2): Likewise.
6331         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
6332         constraints.
6333         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
6334         (cmpunsf_media, cmpsf): Likewise.
6335         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
6336         (abssf2, abssf2_media): Likewise.
6337         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
6338         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
6339         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
6340         (floatsidf2, fix_truncdfsi2): Likewise.
6341         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
6342         constraints.
6343         (cmpeqdf_media, cmpgtdf_media): Likewise.
6344         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
6345         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
6346         (absdf2, absdf2_media): Likewise.
6347         (extendsfdf2, extendsfdf2_media): Likewise.
6348         (truncsfdf2, truncsfdf2_media): Likewise.
6349         * config/sh/sh64.h: New file.
6350         * config/sh/t-sh64: New file.
6351         * config/sh/shmedia.h: New file.
6352         * config/sh/ushmedia.h: New file.
6353         * config/sh/sshmedia.h: New file.
6354         * configure.in: Added sh64-*-elf.
6355         * configure: Rebuilt.
6356         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
6357         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
6358         (reg_class_from_letter): Use `b' for TARGET_REGS.
6359         (print_operand): Support `%M', `%m', `AND' and
6360         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
6361         (andcosts): Adjust for SHmedia.
6362         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
6363         Likewise.
6364         (target_reg_operand): New function.
6365         * config/sh/sh-protos.h (target_reg_operand): Declare.
6366         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
6367         FP registers on SH5.
6368         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
6369         on SH4.
6370         (TARGET_REGISTER_P): New macro.
6371         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
6372         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
6373         (EXTRA_CONSTRAINT_S): New macro.
6374         (EXTRA_CONSTRAINT): Adjust.
6375         (FLOAT_TYPE_SIZE): Define to 32.
6376         (Pmode): DImode on SHmedia.
6377         (CONST_COSTS): Adjust for SHmedia literals.
6378         (PREDICATE_CODES): Added target_reg_operand.
6379         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
6380         * config/sh/sh.md: Remove all attrs from SHmedia insns.
6381         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
6382         (cmpdi): Accept SHmedia.
6383         (movdicc_false, movdicc_true): New insns.
6384         (movdicc): New expand.
6385         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
6386         no_new_pseudos.
6387         (addsi3_media): Match `S' constraint.
6388         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
6389         (negdi2): Expand for SHmedia.
6390         (one_cmpldi2): New expand.
6391         (zero_extendsidi2): Change from expand to insn.
6392         (extendsidi2): Add constraints.
6393         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
6394         LD/ST address.  Fix SI immediate loading split.
6395         (movhi_media, movqi_media, lduw, ldub): New insns.
6396         (movhi, movqi): Accept SHmedia.
6397         (shori_media, movdi_media): Relax input constraints.  Split
6398         symbolic constants.
6399         (movdf_media, movsf_media): New insn.  New split to movdi.
6400         (movdf, movsf): Match on SHmedia.
6401         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
6402         bgeu_media): New insns and splits.  New insns with `_i' suffix.
6403         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
6404         (bunordered): New expand.
6405         (jump_compact): Renamed from `jump'.
6406         (jump_media): New insn.
6407         (jump): New expand.
6408         (call_media, call_value_media): New insns.
6409         (call, call_value): Adjust.
6410         (indirect_jump_compact): Renamed from `indirect_jump'.
6411         (indirect_jump_media): New insn.
6412         (indirect_jump): New expand.
6413         (untyped_call, return): Accept SHmedia.
6414         (return_media): New insn.
6415         (prologue, epilogue, blockage): Accept SHmedia.
6416         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
6417         (sunordered): New expand.
6418         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
6419         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
6420         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
6421         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
6422         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
6423         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
6424         abssf2_media): New insns.
6425         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
6426         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
6427         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
6428         floatdidf2, floatsidf2_media, fix_truncdfdi2,
6429         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
6430         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
6431         absdf2_media): New insns.
6432         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
6433         (extendsfdf2_media, truncdfsf2_media): New insns.
6434         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
6435         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
6436         * config/sh/sh.h (CONST_OK_FOR_J): Document.
6437         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
6438         * config/sh/sh.md (adddi3): New expand.
6439         (adddi3_media, adddi3z_media): New insns.
6440         (adddi3_compact): Renamed from adddi3.
6441         (addsi3_media): Use add.l r63 to add constant zero.
6442         (subdi3): New expand.
6443         (subdi3_media): New insn.
6444         (subdi3_compact): Renamed from subdi3.
6445         (mulsidi3): New expand.
6446         (mulsidi3_media): New insn.
6447         (mulsidi3_compact): Renamed from mulsidi3.
6448         (umulsidi3): New expand.
6449         (umulsidi3_media): New insn.
6450         (umulsidi3_compact): Renamed from umulsidi3.
6451         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
6452         (ashlsi3, ashrsi3, lshrsi3): Use them.
6453         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
6454         (ashldi3, ashrdi3, lshrdi3): Use them.
6455         (zero_extendsidi2): New expand.
6456         (extendsidi2): New insn.
6457         (movsi_media): New insn.  Split to movdi to load constants.
6458         (movsi): Enable for shmedia.
6459         (movdi_media): New insn.  Use shori_media to load wide constants.
6460         (short_media): New insn.
6461         (movdi): Enable for shmedia.
6462         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
6463         * config/sh/sh.h (CPP_SPEC): Added `m5'.
6464         (SUBTARGET_CPP_SPEC): Added `!m5'.
6465         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
6466         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
6467         to all other SH variants.
6468         (TARGET_DEFAULT): Set to SH1_BIT.
6469         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
6470         (BITS_PER_WORD): Raise to 64 on shmedia.
6471         (MAX_BITS_PER_WORD): Change to 64.
6472         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
6473         (INT_TYPE_SIZE): Keep as 32.
6474         (UNITS_PER_WORD): Raise to 8 on shmedia.
6475         (MIN_UNITS_PER_WORD): Keep as 4.
6476         (POINTER_SIZE): Raise to 64 on shmedia.
6477         (CONST_OK_FOR_J): New macro.
6478         (CONST_OK_FOR_LETTER_P): Use it.
6479         (processor_type): Add PROCESSOR_SH5.
6480         * config/sh/sh.md: Conditionalize all expands, insns and
6481         splits to TARGET_SH1.
6482         (cpu): Added sh5.
6483         (addsi3_compact): Renamed from...
6484         (addsi3): Now an expand.
6485         (addsi3_media, subsi3_media): New insns.
6486         (subsi3): Don't negate constants with SHmedia.
6487
6488         * hooks.c: New file.
6489         * hooks.h: New file.
6490         * Makefile.in (HOOKS_H): New.
6491         (TARGET_DEF_H): Added $(HOOKS_H).
6492         (OBJS): Added hooks.o.
6493         (cfgcleanup.o, bb-reorder.o): Added target.h.
6494         (hooks.o): Added dependencies.
6495         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
6496         (TARGET_INITIALIZER): this.
6497         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
6498         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
6499         * bb-reorder.c: Include target.h.
6500         (reorder_basic_blocks): Skip if cannot modify jumps.
6501         * cfgcleanup.c: Include target.h.
6502         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
6503
6504 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
6505
6506         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6507         Protect jump delay slot instructions with .set noreorder and
6508         .set nomacro.
6509
6510 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
6511
6512         * config/mips/mips.md (casesi_internal_di): Calculate
6513         the index into the target offset table correctly.
6514
6515 2002-02-08  Richard Henderson  <rth@redhat.com>
6516
6517         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
6518         * final.c (output_addr_const): Accept and discard SUBREG.
6519         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
6520         mark them unknown instead.
6521         (simplify_subtraction): Handle RTX_UNKNOWN.
6522         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
6523
6524 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
6525
6526         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
6527
6528 2002-02-08  Richard Henderson  <rth@redhat.com>
6529
6530         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
6531
6532 2002-02-08  Andreas Jaeger  <aj@suse.de>
6533
6534         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
6535         * config/i386/t-linux64: New file.
6536
6537 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
6538
6539         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
6540         * c-parse.in (compstmt): Clear last_expr_type.
6541
6542 2002-02-07  Richard Henderson  <rth@redhat.com>
6543
6544         * loop.c (strength_reduce): Sink final_value when not
6545         eliminating a biv.
6546
6547 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
6548
6549         * config/sparc/freebsd.h: Fix mismatched spec {.
6550
6551 2002-02-07  Richard Henderson  <rth@redhat.com>
6552
6553         * cfgrtl.c: Include recog.h and insn-config.h.
6554         (keep_with_call_p): Fix general_operand invocation.
6555         * Makefile.in (cfgrtl.o): Update dependencies.
6556
6557 2002-02-07  Kazu Hirata  <kazu@hxi.com>
6558
6559         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
6560         comment.  Accept HImode only if TARGET_H8300.
6561
6562 2002-02-07  Eric Christopher  <echristo@redhat.com>
6563
6564         * config/mips/crtn.asm: Cleanup #ifdefs.
6565
6566 2002-02-07  Eric Christopher  <echristo@redhat.com>
6567
6568         * config/mips/crti.asm: Add changes for mips16. mips16 uses
6569         register 7 as RA instead of $31.
6570         * config/mips/crtn.asm: Ditto.
6571         * config/mips/mips.c (mips_move_2words): Add case for
6572         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
6573         (compute_frame_size): Fix typo.
6574         (save_restore_insns): Ditto.  Make documentation about using
6575         register $7 as return register more precise.
6576         (mips_expand_epilogue): Fix comment. Add code to work around not
6577         being able to add to the stack pointer directly.
6578         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
6579         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
6580         epilogue.
6581
6582 2002-02-07  Tom Rix  <trix@redhat.com>
6583
6584         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
6585         immediates in ldu and stdu DS opcode field.
6586         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
6587         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
6588         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
6589
6590 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
6591
6592         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
6593         offset for stack bias.
6594
6595 2002-02-07  H.J. Lu <hjl@gnu.org>
6596
6597         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
6598
6599 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
6600
6601         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
6602
6603 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
6604
6605         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
6606         * i386.c (x86_order_regs_for_local_alloc): New global function.
6607         * i386.h (REG_ALLOC_ORDER): CLeanup.
6608         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
6609
6610 2002-02-07  Richard Henderson  <rth@redhat.com>
6611
6612         PR optimization/2463
6613         * alias.c (find_base_value): Recall base values for fixed hard regs.
6614         * loop.c (loop_regs_update): Don't use single_set on non-insns.
6615
6616 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
6617
6618         * config/mips/mips.md (define_delay) [mips16]: Adjust required
6619         length.
6620
6621 2002-02-06  Richard Henderson  <rth@redhat.com>
6622
6623         PR c/5609
6624         * stmt.c (resolve_operand_name_1): Take more care with mixed
6625         named and unnamed operands.
6626
6627 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
6628             Jan Hubicka  <jh@suse.cz>
6629
6630         * loop.c (remove_constant_addition): Avoid clobbering a shared
6631         CONST expression.
6632
6633 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6634
6635         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
6636         * config/s390/t-linux64: New file.
6637         * config/s390/libgcc-glibc.ver: New file.
6638
6639 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6640
6641         * config/s390/linux64.h: Delete file.
6642         * config/s390/s390x.h: New file.
6643         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
6644         as target header file.
6645         * config/s390/linux.h (TARGET_VERSION): Define depending on
6646         DEFAULT_TARGET_64BIT.
6647         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
6648         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
6649         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
6650         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
6651         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
6652         (EXTRA_SPEC): New define.
6653         * config/s390/s390.h (TARGET_VERSION): Define depending on
6654         DEFAULT_TARGET_64BIT.
6655         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
6656
6657 2002-02-06  Jason Merrill  <jason@redhat.com>
6658
6659         * c-decl.c (finish_function): Warn about a non-void function with
6660         no return statement and no abnormal exit.
6661         (current_function_returns_abnormally): New variable.
6662         (start_function): Clear it.
6663         (struct c_language_function): Add returns_abnormally.
6664         (push_c_function_context): Save it.
6665         (pop_c_function_context): Restore it.
6666         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
6667         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
6668         an explicit return type.
6669         * c-tree.h: Declare current_function_returns_abnormally.
6670         (C_FUNCTION_IMPLICIT_INT): New macro.
6671         * c-typeck.c (build_function_call): Set it.
6672         (c_expand_return): Set current_function_returns_value even if the
6673         value is erroneous.
6674
6675 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
6676
6677         PR c/5420:
6678         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
6679         unsafe for reevaluation.
6680
6681 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
6682
6683         PR c/5482:
6684         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
6685         EXPR_STMT, but COMPOUND_STMT, recurse into it.
6686
6687 2002-02-06  Richard Henderson  <rth@redhat.com>
6688
6689         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
6690         be a general_operand.  Dest for function value must be a pseudo.
6691
6692 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
6693
6694         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
6695         as SYMBOL_REFs from the constant pool.
6696
6697 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
6698
6699         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
6700         passed by invisible reference.
6701
6702 2002-02-05  Richard Henderson  <rth@redhat.com>
6703
6704         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
6705
6706 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
6707
6708         Implement using "base addresses" in insn operands as default.
6709         * config/mmix/mmix.c (mmix_conditional_register_usage): if
6710         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
6711         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
6712         used to read the rtx value.
6713         (mmix_target_asm_function_epilogue): Fix spacing.
6714         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
6715         (mmix_legitimate_address): Ditto.
6716         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
6717         should be loaded with a GETA insn.  Don't allocate needless extra
6718         char for nul termination and fix misleading comment.
6719         (mmix_print_operand_address): Handle constants if
6720         TARGET_BASE_ADDRESSES.
6721         (mmix_output_register_setting): Use base addressing if
6722         TARGET_BASE_ADDRESSES and the number of insns is 3.
6723         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
6724         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
6725         to use R as constraint, add LDA to match s.
6726         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
6727         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
6728         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
6729         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
6730         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
6731         order with other fixed registers.
6732         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
6733         other parameter/call-clobbered registers.
6734         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
6735         -mbase-addresses, -mno-base-addresses.
6736         (MMIX Options): Ditto.
6737
6738 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6739
6740         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
6741
6742 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
6743
6744         * config/rs6000/altivec.h: Change elem to _S_elem.
6745
6746 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
6747
6748         * config/netbsd.h (WCHAR_TYPE): Define.
6749         (WCHAR_TYPE_SIZE): Ditto.
6750         (WINT_TYPE): Ditto.
6751         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
6752         (WCHAR_UNSIGNED): Ditto.
6753         (WCHAR_TYPE_SIZE): Ditto.
6754         (WINT_TYPE): Ditto.
6755         * config/arm/netbsd.h: Likewise.
6756         * config/i386/netbsd-elf.h: Likewise.
6757         * config/i386/netbsd.h: Likewise.
6758         * config/m68k/netbsd-elf.h: Likewise.
6759         * config/m68k/netbsd.h: Likewise.
6760         * config/ns32k/netbsd.h: Likewise.
6761         * config/sparc/netbsd.h: Likewise.
6762         * config/vax/netbsd.: Likewise.
6763
6764 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
6765
6766         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
6767         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
6768         (TARGET_INITIALIZER): this.
6769         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
6770         (BITFIELD_NBYTES_LIMITED): Markup fix.
6771         * tree.h (default_ms_bitfield_layout_p): Declare.
6772         (record_layout_info): Added prev_field.
6773         * tree.c (default_ms_bitfield_layout_p): New fn.
6774         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
6775         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
6776         * stor-layout.c: Include target.h.
6777         (start_record_layout): Initialize prev_field.
6778         (place_field): Handle MS bit-field layout, and disregard
6779         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
6780         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
6781         * Makefile.in (stor-layout.o): Adjust dependencies.
6782
6783 2002-02-05  Jason Merrill  <jason@redhat.com>
6784
6785         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
6786
6787 2002-02-05  Andreas Jaeger  <aj@suse.de>
6788
6789         * crtstuff.c: Fix comments.
6790
6791 2002-02-05  Richard Henderson  <rth@redhat.com>
6792
6793         PR fortran/3393
6794         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
6795         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
6796
6797         PR fortran/3392
6798         * config/mips/mips.c (function_arg): Handle TImode.
6799         (function_arg_advance): Likewise.
6800
6801 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
6802
6803         * config/rs6000/altivec.h (vec_step_help): Rename to
6804         __vec_step_help.
6805
6806 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
6807
6808         * config/rs6000/altivec.h: Fix typos.
6809
6810 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
6811
6812         * config/arm/netbsd.h: Correct a comment.
6813
6814 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
6815
6816         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
6817         building void typed builtins.
6818
6819         * config/rs6000/altivec.h (vec_ld*): Fix typos.
6820         (vec_step): Implement for C++.
6821
6822 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6823
6824         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
6825
6826 2002-02-04  Richard Henderson  <rth@redhat.com>
6827
6828         * combine.c (nonzero_bits): Re-introduce special case for
6829         sp/fp/ap wrt REGNO_POINTER_ALIGN.
6830
6831 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
6832
6833         * doc/extend.texi: Warn about unsupported usage of altivec
6834         builtins.
6835
6836         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
6837         (altivec_predicate_*): New.
6838
6839         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
6840         Add C++ version of vec_*() functions.
6841
6842         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
6843         (bdesc_2arg): Remove altivec predicates.
6844         (altivec_expand_builtin): Handle predicates.
6845         (altivec_init_builtins): Handle predicates.
6846         (altivec_expand_predicate_builtin): New.
6847
6848 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6849
6850         * pa.c (DO_FRAME_NOTES): Move forward.
6851         (store_reg): Revise handling of frame notes.
6852         (load_reg): Likewise.
6853         (set_reg_plus_d): Likewise.
6854         (hppa_expand_prologue): Likewise.
6855         (hppa_expand_epilogue): Likewise.
6856
6857 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6858
6859         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
6860
6861 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
6862
6863         PR c/4475, c++/3780:
6864         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
6865         * c-common.h (SWITCH_TYPE): Define.
6866         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
6867         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
6868         Rename spareness variable to sparseness.
6869         (expand_end_case_type): Renamed from expand_end_case, use orig_type
6870         if non-NULL instead of TREE_TYPE (orig_index).
6871         * tree.h (expand_end_case_type): Renamed from expand_end_case.
6872         (expand_end_case): Define using expand_end_case_type.
6873         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
6874         to expand_end_case_type.
6875         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
6876
6877 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6878
6879         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
6880         (BIGGEST_ALIGNMENT): Change to 128.
6881
6882 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6883
6884         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
6885
6886 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6887
6888         * pa.md (call_internal_reg_64bit): Remove unused variable.
6889
6890 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
6891
6892         * config/arm/arm.h (machine_function): Add uses_anonymous_args
6893         field.
6894         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
6895         * config/arm/arm.c (current_function_anonymous_args): Delete,
6896         replace uses with cfun->machine->uses_anonymous_args.
6897         (arm_reorg): Do not reset uses_anonymous_args.
6898
6899         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
6900         any geenral register.
6901
6902 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
6903
6904         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
6905         the entry block.
6906
6907 2002-02-04  Richard Henderson  <rth@redhat.com>
6908
6909         * combine.c (force_to_mode): Remove STACK_BIAS code.
6910         (nonzero_bits): Likewise.  Replace sp/fp special case with
6911         REGNO_POINTER_ALIGN.
6912
6913         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
6914         (HARD_FRAME_POINTER_REGNUM): New.
6915         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
6916         (FIXED_REGS, CALL_USED_REGS): Update.
6917         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
6918         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
6919         (HARD_REGNO_NREGS): Update for SFP.
6920         (STACK_POINTER_OFFSET): Include bias here ...
6921         (FIRST_PARM_OFFSET): ... not here.
6922         (STACK_BIAS): Remove.
6923         (INIT_EXPANDERS): New.
6924         (STARTING_FRAME_OFFSET): Do not include bias.
6925         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
6926         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
6927         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
6928         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
6929         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
6930         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
6931         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
6932         (MUST_SAVE_REGISTER): Likewise.
6933         (sparc_flat_function_prologue): Likewise.
6934         (sparc_flat_function_epilogue): Likewise.
6935         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
6936         (sparc_init_modes): SFP is GENERAL_REGS.
6937         (sparc_builtin_saveregs): SFP does not have bias applied.
6938
6939 2002-02-04  Richard Henderson  <rth@redhat.com>
6940
6941         * config/alpha/alpha.c (current_function_is_thunk): Don't check
6942         current_function_is_thunk.
6943         (alpha_sa_mask): Distinguish between current_function_is_thunk
6944         called from ASM_OUTPUT_MI_THUNK and not.
6945         (alpha_does_function_need_gp): Thunks always need gp.
6946         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
6947         (alpha_output_mi_thunk_osf): New.
6948         * config/alpha/alpha-protos.h: Update.
6949         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
6950
6951 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
6952
6953         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
6954         function types, not when they're taken away.
6955
6956 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
6957
6958         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
6959         CODE_LABEL and jump table when replacing a table jump with a
6960         simple jump.
6961
6962 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
6963
6964         * config/s390/s390-protos.h (legitimize_la_operand,
6965         s390_secondary_input_reload_class, s390_plus_operand,
6966         s390_expand_plus_operand): Add prototypes.
6967
6968         config/s390/s390.c (s390_secondary_input_reload_class,
6969         s390_plus_operand, s390_expand_plus_operand): New functions.
6970
6971         (struct s390_address): New member 'pointer'.
6972         (s390_decompose_address): Compute it.
6973         (legitimate_la_operand_p): Use it.
6974         (legitimize_la_operand): New function.
6975         (movti, movdi, movdf splitters): Call it.
6976
6977         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
6978         (PREDICATE_CODES): Add s390_plus_operand.
6979
6980         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
6981         (la_ccclobber): Allow GENERAL_REGS as output operand.
6982
6983         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
6984         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
6985         (*la_64, *la_31, reload_indi, reload_insi): ... these.
6986
6987 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
6988
6989         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
6990         register names for regular asm () construct.
6991
6992 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
6993
6994         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
6995         registers.
6996
6997 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
6998
6999         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
7000         pat for recog.
7001
7002 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
7003
7004         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
7005         constant pool to be identical by string address and index.
7006
7007 2002-02-04  Anthony Green  <green@redhat.com>
7008
7009         * output.h (SECTION_OVERRIDE): Define.
7010         * varasm.c (named_section): Obey SECTION_OVERRIDE.
7011
7012 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7013
7014         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
7015         by existing arm*-*-netbsd* (a.out) target.
7016         (ns32k-*-netbsdelf*): Likewise.
7017         (sparc-*-netbsdelf*): Likewise.
7018         (vax-*-netbsdelf*): Likewise.
7019
7020 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
7021
7022         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
7023         headers and libobjc headers.
7024
7025 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
7026
7027         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
7028         (_mingw.h): Remove duplicate include.
7029
7030 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7031
7032         * config.gcc: Set cpu_type to m68k for 68010, as well.
7033         (m68010-*-netbsdelf*): New...
7034         (m68k*-*-netbsdelf*): ...targets.
7035         * config/m68k/netbsd-elf.h: New file.
7036
7037 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7038
7039         * config/h8300/h8300.c (hand_list): Move inside function_arg.
7040
7041 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7042
7043         * config/h8300/h8300.c (h8_push_ops): Move inside
7044         h8300_init_once.
7045         (h8_pop_ops): Likewise.
7046         (h8_move_ops): Likewise.
7047
7048 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7049
7050         * config/h8300/h8300.c (os_task): Make it static.
7051         (monitor): Likewise.
7052         (pragma_saveall): Likewise.
7053
7054 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
7055
7056         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
7057         constant is a valid sign-extension for Pmode.
7058
7059 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7060
7061         * config/h8300/h8300.c: Fix formatting.
7062
7063 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7064
7065         * config/h8300/h8300.md: Fix formatting.
7066
7067 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7068
7069         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
7070         predicates of operands[1].  Split the patterns for each
7071         processor variant.
7072
7073 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7074
7075         * config/h8300/h8300.md (xor patterns): Tighten the predicates
7076         of operands[1] to register_operand.
7077
7078 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7079
7080         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
7081         * cpphash.c (_cpp_init_hashtable): Similarly.
7082         * cppinit.c (cpp_create_reader): Default the signed_char flag.
7083         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
7084         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
7085         (cpp_handle_option): Handle the new options.
7086         * cpplex.c (cpp_interpret_charconst): Use new flag.
7087         * cpplib.h (struct cpp_options): New member signed_char.
7088         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
7089         (cpp_options): Handle -fsigned-char and -funsigned-char.
7090         (static_specs): Remove signed_char_spec.
7091         (do_spec1): Don't handle %c.
7092         * system.h: Poison SIGNED_CHAR_SPEC.
7093         * tradcif.y (yylex): Use flag_signed_char.
7094         * tradcpp.h (flag_signed_char): New.
7095         * tradcpp.c (flag_signed_char): New.
7096         (main): Handle new command-line options.
7097         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
7098 config:
7099         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
7100         * avr/avr.h: Remove old comments.
7101         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
7102         (CC1_SPEC): Pass -fsigned-char if -mic*.
7103         (SIGNED_CHAR_SPEC): Remove.
7104 doc:
7105         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
7106
7107 2002-02-01  Eric Christopher  <echristo@redhat.com>
7108
7109         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
7110         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
7111         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
7112         (ASM_OUTPUT_REG_POP): Ditto.
7113
7114 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7115
7116         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
7117         patch.
7118
7119 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7120
7121         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
7122
7123 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7124
7125         PR c/5304:
7126         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
7127         unconditionally.
7128
7129 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7130
7131         * cfganal.c: Include tm_p.h.
7132         (keep_with_call_p): Fix the test that determines if a register holds
7133         the return value of a call.
7134
7135 2002-02-01  DJ Delorie  <dj@redhat.com>
7136
7137         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
7138         we are given conflicting registers, switch to the other one we
7139         had allocated for us.
7140         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
7141         as TImode so we know when the "other" register is available.
7142
7143 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
7144
7145         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
7146         sparc/sparc_bi.h.
7147
7148 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7149
7150         * cfganal.c (keep_with_call_p): New function.
7151         (flow_call_edges_add): Prevent splitting a block between a call and
7152         a single-set instruction that should be kept in the same block.
7153
7154 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7155
7156         * doc/install.texi (avr): Update outdated URL.
7157
7158 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
7159
7160         * config/stormy16/stormy16.md (pushqi): New.
7161         (popqi): New.
7162         (pushhi): New.
7163         (pophi): New.
7164         (movhi): Remove stack operands.
7165         (movqi): Likewise.
7166         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
7167         nonimmediate_nonstack_operand.
7168         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
7169         New.
7170         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
7171         New.
7172
7173 2002-01-31  Jason Merrill  <jason@redhat.com>
7174
7175         * Makefile.in (c-parse.c): Handle .output file.
7176         * objc/Make-lang.in (objc-parse.c): Likewise.
7177
7178 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
7179
7180         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
7181         the -me[lb] option is given.  Don't output the default flag
7182         twice.
7183
7184 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
7185
7186         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
7187         the primary source file; this has not been done yet.
7188         * c-decl.c (c_expand_body): Reset input_filename from
7189         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
7190
7191 2002-01-31  Kazu Hirata  <kazu@hxi.com>
7192
7193         * rtlanal.c (subreg_regno_offset): Do not use
7194         SUBREG_REGNO_OFFSET.
7195         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
7196         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
7197
7198 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7199
7200         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
7201         version rather than GNATS version in --version output.
7202
7203 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
7204
7205         * ifcvt.c (noce_process_if_block): Make a copy of the destination
7206         when copying back from a temporary.
7207
7208 2002-01-30  Richard Henderson  <rth@redhat.com>
7209
7210         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
7211         and new_dest are the same.
7212
7213 2002-01-30  Richard Henderson  <rth@redhat.com>
7214
7215         PR opt/5076
7216         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
7217         * rtl.c (note_insn_name): Update.
7218         * emit-rtl.c (remove_unnecessary_notes): Kill it.
7219         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
7220         to perform loop rotation.
7221         (expand_exit_loop_top_cond): New.
7222         * tree.h (expand_exit_loop_top_cond): Declare it.
7223         * c-semantics.c (genrtl_while_stmt): Use it.
7224         (genrtl_for_stmt): Likewise.
7225
7226 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
7227
7228         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
7229         arguments to 64-bit boundaries on 64-bit ABIs.
7230
7231 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
7232
7233         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
7234
7235 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7236
7237         * c-decl.c (grokdeclarator): Handle type being a typedef for an
7238         invalid type.
7239
7240 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
7241
7242         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
7243         * config/sparc/sparc_bi.h: Remove file.
7244         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
7245
7246 2002-01-30  Richard Henderson  <rth@redhat.com>
7247
7248         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
7249
7250 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
7251
7252         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
7253
7254 2002-01-30  Jason Merrill  <jason@redhat.com>
7255
7256         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
7257         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
7258         (reg_save): Use DW_CFA_offset_extended_sf instead.
7259
7260         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
7261
7262 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7263
7264         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
7265         in cselib_lookup.
7266
7267 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
7268
7269         * rs6000.md ("*call_value_local32"): Remove constraints.
7270         ("*call_value_local64"): Same.
7271         ("*call_value_indirect_nonlocal_aix32"): Same.
7272         ("*call_value_nonlocal_aix32"): Same.
7273         ("*call_value_indirect_nonlocal_aix64"): Same.
7274         ("*call_value_nonlocal_aix64"): Same.
7275         ("*call_value_nonlocal_sysv"): Same.
7276
7277 2002-01-29  Richard Henderson  <rth@redhat.com>
7278
7279         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
7280
7281 2002-01-29  Richard Henderson  <rth@redhat.com>
7282
7283         * expr.c (force_operand): Ignore flag_pic for detecting pic
7284         address loads.
7285         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
7286         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
7287         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
7288         instead of open-coded loop.
7289         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
7290         be fixed when in use.
7291
7292 2002-01-29  Richard Henderson  <rth@redhat.com>
7293
7294         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
7295         * sched-rgn.c (propagate_deps): Update them.
7296         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
7297         clobbers list when either gets too long.
7298
7299 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7300
7301         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
7302         and INDEX_REGS the same as GENERAL_REGS.
7303         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
7304
7305 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7306
7307         * tree.c (build_nonstandard_integer_type): Correct prototype.
7308
7309 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
7310
7311         * config/s390/s390.md (movstrsico, movstrdix_64,
7312         movstrsix_31): Remove, replace by ...
7313         (movstrdi_short, movstrsi_short, movstrdi_long,
7314         movstrsi_long): ... these.  New.
7315         (movstrdi, movstrsi): Adapt.
7316
7317         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
7318         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
7319         Remove unnecessary CC clobber.
7320         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
7321         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
7322
7323         (divmoddi4): Don't partially initialize TImode register.
7324
7325 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
7326
7327         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
7328
7329 2002-01-29  Richard Henderson  <rth@redhat.com>
7330
7331         * flow.c (print_rtl_and_abort): Remove.
7332         (print_rtl_and_abort_fcn): Remove.
7333         (verify_local_live_at_start): Use dump_bb instead.
7334         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
7335         (verify_wide_reg_1): Return 2 on mode test failure.
7336
7337 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7338
7339         PR c/3325, c/3326, c/2511, c/3347
7340         * c-decl.c (enum_decl_context): Remove BITFIELD.
7341         (grokdeclarator): Take bitfield width as an input.
7342         Ensure bitfields are given the correct type.  Perform
7343         bitfield width validation with build_bitfield_integer_type
7344         rather than waiting for finish_struct.
7345         (grok_typename, grok_typename_in_parm_context, start_decl,
7346         push_parmdecl, grokfield, start_function): Update calls to
7347         grokdeclarator.
7348         (build_bitfield_integer_type): New function.
7349         (finish_struct): Move bitfield validation to grokdeclarator
7350         and build_bitfield_integer_type.
7351         * tree.c (build_nonstandard_integer_type): New function.
7352         * tree.h (build_nonstandard_integer_type): New prototype.
7353 objc:
7354         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
7355
7356 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7357
7358         PR other/1502:
7359         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
7360         don't ignore unrecognized -W* options.
7361         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
7362         * cpplib.h (cpp_handle_option): Adjust prototype.
7363         * c-decl.c (c_decode_options): Pass 0 as last argument to
7364         cpp_handle_option.
7365
7366         PR c/2896:
7367         * gcc.c (cpp_unique_options): Split from cpp_options.
7368         (cpp_options): Source cpp_unique_options.
7369         (default_compilers): Use cpp_unique_options instead of cpp_options
7370         when used together with cc1_options.
7371         (static_specs): Add cpp_unique_options.
7372         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
7373         when used together with cc1_options.
7374
7375 2002-01-29  Kazu Hirata  <kazu@hxi.com>
7376
7377         * config/h8300/h8300-protos.h: Update the prototype of
7378         output_a_shift.
7379         * config/h8300/h8300.c (output_a_shift): Remove an unused
7380         argument 'insn'.  Remove redundant code.
7381         * config/h8300/h8300.md: Adust to the new prototype of
7382         output_a_shift.
7383
7384 2002-01-29  Kazu Hirata  <kazu@hxi.com>
7385
7386         * config/h8300/h8300-protos.h: Update the prototypes of
7387         emit_a_rotate and expand_a_rotate.
7388         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
7389         first argument to 'enum rtx_code'.
7390         (expand_a_rotate): Likewise.
7391
7392 2002-01-28  Kazu Hirata  <kazu@hxi.com>
7393
7394         * config/h8300/h8300-protos.h: Update the prototype of
7395         output_simode_bld.
7396         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
7397         'log2'.
7398         * config/h8300/h8300.md: Adjust to the new prototype.
7399
7400 2002-01-28  Kazu Hirata  <kazu@hxi.com>
7401
7402         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
7403         redundant code.
7404
7405 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7406
7407         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
7408         is a fixed register before returning pic_offset_table_rtx.
7409         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
7410         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
7411
7412 2002-01-28  Jason Merrill  <jason@redhat.com>
7413
7414         * dwarf2.h: Sync with src version.
7415
7416 2002-01-28  Paul Koning  <pkoning@equallogic.com>
7417
7418         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
7419         BT_FN_VOID_PTR_VAR.
7420         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
7421         * doc/extend.texi (__builtin_prefetch): Update documentation:
7422         first argument is now const void ptr.
7423
7424 2002-01-28  Kazu Hirata  <kazu@hxi.com>
7425
7426         * config/h8300/h8300-protos.h: Remove an unused prototype.
7427
7428 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
7429
7430         * toplev.c (lang_independent_init): Round up identifier size.
7431
7432 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
7433
7434         * config.gcc: Revert previous change.
7435
7436 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
7437
7438         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
7439
7440 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
7441
7442         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
7443         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
7444         other non-elf netbsd config frags.
7445         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
7446         collect2 will does that.
7447         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
7448         shared-lib frobbing will work.
7449
7450 2002-01-28  Kazu Hirata  <kazu@hxi.com>
7451
7452         * config/h8300/h8300.h: Fix formatting.
7453         * config/h8300/h8300.md: Likewise.
7454
7455 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
7456
7457         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
7458         the old, removed AAA_standards fix.
7459         * fixinc/fixincl.x: Rebuilt.
7460
7461 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
7462
7463         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
7464         atexit call in crtbegin, hooked in after call to frame_dummy;
7465         register EH before registering __fini__start.
7466
7467 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
7468
7469         * config/rs6000/altivec.h: Remove spurious semicolons.
7470
7471 2002-01-27  Kazu Hirata  <kazu@hxi.com>
7472
7473         * config/h8300/h8300.md: Replace dead bit extraction patterns
7474         with ones that work.
7475
7476 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7477
7478         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
7479         if not STRICT_ALIGNMENT.
7480         * rtl.h (MEM_ALIGN): Likewise.
7481
7482 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7483
7484         * doc/invoke.texi (-fdump-translation-unit): Revert this
7485         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7486
7487 2002-01-27  Kazu Hirata  <kazu@hxi.com>
7488
7489         * config/h8300/h8300.md (define_constants): New.
7490         (anonymous patterns) Use defined constants appropriately.
7491
7492 2002-01-27  Kazu Hirata  <kazu@hxi.com>
7493
7494         * config/h8300/h8300.c (function_arg): Remove redundant code.
7495
7496 2002-01-26  Richard Henderson  <rth@redhat.com>
7497
7498         * sched-deps.c (reg_pending_uses_head): New.
7499         (reg_pending_barrier): Rename from reg_pending_sets_all.
7500         (find_insn_list): Don't mark inline.
7501         (find_insn_mem_list): Remove.
7502         (add_dependence_list, add_dependence_list_and_free): New.
7503         (flush_pending_lists): Replace only_write param with separate
7504         for_read and for_write parameters.  Update all callers.  Use
7505         add_dependence_list_and_free.
7506         (sched_analyze_1): Do not add reg dependencies here; just set
7507         the pending bits.  Use add_dependence_list.
7508         (sched_analyze_2): Likewise.
7509         (sched_analyze_insn): Replace schedule_barrier_found with
7510         reg_pending_barrier.  Add all dependencies for pending reg
7511         uses, sets, and clobbers.
7512         (sched_analyze): Don't add reg dependencies for calls, just
7513         set pending bits.  Use regs_invalidated_by_call.  Treat
7514         sched_before_next_call as a normal list, not a fake insn.
7515         (init_deps): No funny init for sched_before_next_call.
7516         (free_deps): Free pending mems lists.  Don't zero reg_last.
7517         (init_deps_global): Init reg_pending_uses.
7518         (finish_deps_global): Free it.
7519         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
7520         (find_insn_mem_list): Remove.
7521         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
7522         (propagate_deps): Use them.  Zero temp mem lists.
7523
7524 2002-01-26  Richard Henderson  <rth@redhat.com>
7525
7526         * Makefile.in (CRTSTUFF_CFLAGS): New.
7527         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
7528         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
7529         crtstuff.c instead of alpha assembly version.
7530         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
7531         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
7532         not FORCE_{INIT,FINI}_SECTION_ALIGN.
7533         (__do_global_dtors_aux): Mark used.
7534         (frame_dummy, __do_global_ctors_aux): Mark used.
7535         (fini_dummy, init_dummy): Remove.
7536
7537         * config/alpha/crtbegin.asm: Remove file.
7538         * config/alpha/crtend.asm: Remove file.
7539         * config/alpha/t-crtbe: Remove file.
7540         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
7541         (LINK_EH_SPEC): New.
7542
7543         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
7544         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
7545         calling constructors.
7546         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
7547
7548         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
7549         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
7550         CRT_END_INIT_DUMMY hack.
7551         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
7552         FORCE_{INIT,FINI}_SECTION_ALIGN.
7553
7554         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
7555         FORCE_{INIT,FINI}_SECTION_ALIGN.
7556
7557         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
7558         invocation sequence.
7559         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
7560
7561         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
7562         (FORCE_CODE_SECTION_ALIGN): New.
7563
7564 2002-01-26  Richard Henderson  <rth@redhat.com>
7565
7566         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
7567
7568 2002-01-26  Richard Henderson  <rth@redhat.com>
7569
7570         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
7571         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
7572
7573 2002-01-26  Kazu Hirata  <kazu@hxi.com>
7574
7575         * config/h8300/h8300.md: Remove bit extraction patterns that
7576         cannot be triggered.
7577         Restrict each bit extraction pattern to a variant on which the
7578         pattern is tested.
7579
7580 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
7581
7582         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
7583
7584 2002-01-26  Kazu Hirata  <kazu@hxi.com>
7585
7586         * config/h8300/h8300.md: Remove bit test patterns that cannot
7587         be triggered.
7588         Restrict each bit test pattern to a variant on which the
7589         pattern is tested.
7590
7591 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7592
7593         * builtins.c (expand_builtin_strncat): Remove redundant check for
7594         INTEGER_CST.
7595
7596 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
7597
7598         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
7599         default setting.
7600         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
7601         existing setting.
7602
7603 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
7604
7605         * dbxout.c (dbxout_init): Use assemble_name rather than just
7606         stripping off the first character.
7607         (dbxout_source_file): Likewise.
7608
7609 2002-01-25  DJ Delorie  <dj@redhat.com>
7610
7611         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
7612         using rtx_equal_p, not by comparing pointers.
7613
7614 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
7615
7616         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
7617         for PIC_OFFSET_TABLE_REGNUM.
7618         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
7619
7620 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
7621
7622         * config.gcc (x86_64-*-freebsd*): New target.
7623         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
7624         value.
7625         (i[34567]86-*-freebsd*): Don't include svr4.h.
7626         * config/i386/freebsd64.h: New file.
7627
7628 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
7629
7630         * config/alpha/x-vms (version): Make static.
7631
7632         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
7633         in previous checkin.
7634
7635         * Makefile.in (install-headers-cp): New target.
7636         * config.gcc (alpha-dec-*vms*): Install headers with
7637         install-headers-cp
7638
7639 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
7640
7641         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
7642         avoid it's copies.
7643
7644 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7645
7646         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
7647         of compare_tree_int.
7648         (expand_builtin_strncat): Likewise.
7649         * c-decl.c (finish_struct): Use tree_low_cst.
7650         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
7651         * tree.c (compare_tree_int): Likewise.
7652
7653 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
7654
7655         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
7656         adjustments even if they are implemented by more than two insns.
7657
7658 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
7659
7660         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
7661         * df.h (struct ref): Kill B.
7662         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
7663
7664         * basic-block.h (PROP_EQUAL_NOTES): New flag.
7665         * flow.c (propagate_one_insn): Use it.
7666         (mark_used_regs): Handle NIL.
7667
7668 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
7669
7670         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
7671         to help folding.
7672
7673 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
7674
7675         * rs6000.md (prefetch): Make address V4SI mode so that the address
7676         is restricted to legitimate form for instruction.
7677
7678 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
7679
7680         * doc/install.texi (xtensa-*-elf): New target.
7681         (xtensa-*-linux*): New target.
7682         * doc/contrib.texi: Add myself.
7683
7684 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
7685
7686         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
7687         purpose register to hold an SImode (or smaller) value.
7688
7689 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
7690
7691         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
7692         registry only.
7693         * crtstuff.c: Likewise.
7694
7695 2002-01-25  Kazu Hirata  <kazu@hxi.com>
7696
7697         * config/h8300/h8300.md (negation patterns): Tighten
7698         predicates to register_operand.
7699
7700 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
7701
7702         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
7703         mode, not Pmode.
7704
7705         * builtins.c (expand_builtin_prefetch): Same.
7706
7707 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
7708
7709         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
7710         modes.
7711
7712 2002-01-24  Kazu Hirata  <kazu@hxi.com>
7713
7714         * config/h8300/h8300.c (print_operand): Remove support for
7715         operand character 'A'.
7716         * config/h8300/h8300.md (three anonymous patterns): Replace
7717         operand character 'A' with either 'T' or 'S'.
7718
7719 2002-01-24  Kazu Hirata  <kazu@hxi.com>
7720
7721         * config/h8300/h8300.c (print_operand): Remove support for
7722         operand character 'U'.
7723
7724 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
7725
7726         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
7727
7728 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
7729
7730         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
7731         values to be assigned to the stack pointer.
7732
7733 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
7734
7735         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
7736         to const_double needs to be done right for big-endian systems.
7737
7738 2002-01-24  Jason Merrill  <jason@redhat.com>
7739
7740         PR c++/2432
7741         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
7742         to can_throw_internal.
7743
7744 2002-01-23  Richard Henderson  <rth@redhat.com>
7745
7746         * fold-const.c (fold): Change UINT_MAX test to check vs precision
7747         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
7748
7749 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
7750
7751         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
7752         (symGOT2reg): Use them, then set as GOT value as unchanging.
7753         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
7754         as a temporary, if possible.
7755         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
7756         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
7757
7758 2002-01-23  Kazu Hirata  <kazu@hxi.com>
7759
7760         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
7761         accept to accept 0x80 as operands[2].
7762
7763 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
7764
7765         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
7766
7767 2002-01-23  Richard Henderson  <rth@redhat.com>
7768
7769         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
7770
7771 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
7772
7773         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
7774         (parmlist_or_identifiers_1): Verify that only a parmlist follows
7775         an attribute.
7776
7777 2002-01-23  Richard Henderson  <rth@redhat.com>
7778
7779         * expr.c (move_by_pieces_1): Extend size before negation.
7780
7781         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
7782         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
7783         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
7784         * config/m68k/t-m68kelf: Likewise.
7785
7786 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
7787
7788         * config/xtensa/elf.h: New file.
7789         * config/xtensa/lib1funcs.asm: New file.
7790         * config/xtensa/lib2funcs.S: New file.
7791         * config/xtensa/linux.h: New file.
7792         * config/xtensa/t-xtensa: New file.
7793         * config/xtensa/xtensa-config.h: New file.
7794         * config/xtensa/xtensa-protos.h: New file.
7795         * config/xtensa/xtensa.c: New file.
7796         * config/xtensa/xtensa.h: New file.
7797         * config/xtensa/xtensa.md: New file.
7798         * config.gcc (xtensa-*-elf*): New target.
7799         (xtensa-*-linux*): New target.
7800         * cse.c (canon_hash): Compare rtx pointers instead of register
7801         numbers.  This is required for the Xtensa port.
7802         * integrate.c (copy_insn_list): Handle case where the static
7803         chain is in memory and the memory address has to be copied to
7804         a register.
7805         * doc/invoke.texi (Option Summary): Add Xtensa options.
7806         (Xtensa Options): New node.
7807         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
7808
7809 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
7810
7811         * diagnostic.c (internal_error): Do ICE suppression only
7812         when ENABLE_CHECKING is not defined.
7813
7814         * c-typeck.c (require_complete_type): Return error_mark_node
7815         if type is error_mark_node.
7816
7817 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
7818
7819         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
7820         -Os and issue a warning.
7821
7822 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
7823
7824         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
7825         current (lack of) need for host configuration by hand.
7826
7827         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
7828         references.  Documentation of some target macros moved from
7829         hostconfig.texi to tm.texi.
7830
7831 2002-01-23  Will Cohen  <wcohen@redhat.com>
7832
7833         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
7834         defined.
7835
7836 2002-01-23  Kazu Hirata  <kazu@hxi.com>
7837
7838         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
7839         operand[3].
7840
7841 2002-01-23  Jason Merrill  <jason@redhat.com>
7842
7843         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
7844
7845         * function.c (assign_parms): Don't put args of inline functions
7846         into registers when not optimizing.
7847
7848 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
7849
7850         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
7851         (prologue_use): New pattern.
7852         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
7853         preference to gen_rtx_USE.
7854         (thumb_expand_prologue): Use gen_prologue_use in preference to
7855         gen_rtx_USE.
7856         (thumb_expand_epilogue): Use gen_prologue_use in preference to
7857         gen_rtx_USE.
7858
7859 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
7860
7861         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
7862
7863 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7864
7865         PR c/3504
7866         * doc/extend.texi: Correct documentation of __alignof__.
7867
7868 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
7869
7870         * params.h: Rename arguments of DEFPARAM so that it will be
7871         recognized as a translation keyword.
7872
7873 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
7874
7875         * extend.texi: Document altivec functions.
7876         Fix N-bit adjectives in X86 builtin documentation.
7877
7878 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
7879
7880         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
7881         auto_inc_dec values.
7882
7883 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
7884
7885         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
7886         after backslash.
7887         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
7888
7889 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
7890
7891         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
7892
7893 2002-01-22  Richard Henderson  <rth@redhat.com>
7894
7895         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
7896         copy_insn not copy_rtx.
7897
7898 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
7899
7900         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
7901         "nonzero" as that might add "1" bits.  Ensure "constop" is
7902         properly sign extened.
7903         (force_to_mode): Tweak for sign extended constop.
7904
7905 2002-01-22  Richard Henderson  <rth@redhat.com>
7906
7907         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
7908         for_each_rtx instead of assuming we're already looking at the MEM.
7909         (split_small_symbolic_mem_operand): Likewise.
7910         * config/alpha/alpha.h (PREDICATE_CODES): Update.
7911         * config/alpha/alpha.md (small symbolic memory splitters): Update.
7912
7913 2002-01-22  Richard Henderson  <rth@redhat.com>
7914
7915         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
7916         sequence number for the literal.
7917         (divmoddi_internal_er): Likewise.
7918
7919 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7920
7921         PR java/4972
7922         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
7923         in LIBICONV variable.
7924         * configure: Regenerated.
7925
7926 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
7927
7928         * dependence.c (build_def_use): Remove array_idx.
7929
7930         * dwarfout.c (last_filename): Remove.
7931         (output_compile_unit_die): Remove last_filename.
7932
7933 2002-01-22  Roger Sayle  <roger@eyesopen.com>
7934             Richard Henderson  <rth@redhat.com>
7935
7936         PR opt/3640
7937         * fold-const.c (fold): Optimize unsigned comparisons against
7938         UINT_MAX (and similar unsigned constants).
7939
7940 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
7941
7942         * Makefile.in (loop.o): Depend on OPTABS_H.
7943         * loop.c (emit_prefetch_instructions): Check the prefetch operand
7944         against the predicate.
7945
7946         PR target/5379
7947         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
7948         for the address operand.
7949
7950 2002-01-22  Richard Henderson  <rth@redhat.com>
7951
7952         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
7953
7954 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7955
7956         PR other/5450
7957         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
7958         preprocessor flags.
7959
7960 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
7961
7962         * config.gcc (x86_64-*-netbsd*): New target.
7963         * config/i386/netbsd64.h: New file.
7964
7965 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
7966
7967         * regrename.c (kill_value): Fix typo.
7968
7969 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
7970
7971         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
7972
7973         * config/rs6000/rs6000.h: Same.
7974
7975         * function.c (instantiate_virtual_regs): Remove
7976         STARTING_FRAME_PHASE.
7977         (assign_stack_local_1): Same.
7978         Calculate frame phase.
7979
7980 2002-01-22  Nick Clifton  <nickc@redhat.com>
7981
7982         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
7983         variable declaration to outer scope in order to simplify
7984         future extensions.
7985         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
7986         arm_hard_regno_mode_ok.
7987         * config/arm/arm-protos.h: Add a prototype for
7988         arm_hard_regno_mode_ok.
7989         * config/arm/arm.c (soft_df_operand): Remove now redundant
7990         check for DImode values using IP_REGNUM.
7991         (nonimmediate_soft_df_operand): Remove now redundant check for
7992         DImode values using IP_REGNUM.
7993         (arm_hard_regno_mode_ok): New function. New check: make sure
7994         that DImode values are not stored in IP_REGNUM.
7995
7996         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
7997         note with a USE.
7998         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
7999
8000 2002-01-22  Jason Merrill  <jason@redhat.com>
8001
8002         * c-semantics.c (genrtl_compound_stmt): Only check nesting
8003         consistency if this COMPOUND_STMT is scoped.
8004
8005 2002-01-22  Kazu Hirata  <kazu@hxi.com>
8006
8007         * predict.c: Fix formatting.
8008         * print-tree.c: Likewise.
8009         * protoize.c: Likewise.
8010         * real.h: Likewise.
8011         * rtl.h: Likewise.
8012         * sbitmap.h: Likewise.
8013         * scan.c: Likewise.
8014         * sched-deps.c: Likewise.
8015         * sched-vis.c: Likewise.
8016         * sdbout.c: Likewise.
8017         * sibcall.c: Likewise.
8018         * ssa.c: Likewise.
8019         * ssa-ccp.c: Likewise.
8020         * ssa-dce.c: Likewise.
8021         * stmt.c: Likewise.
8022         * stor-layout.c: Likewise.
8023         * system.h: Likewise.
8024
8025 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8026
8027         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
8028         if fits in bounds of base type.
8029
8030         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
8031         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
8032         (add_bound_info, default): If can't find a context, make a
8033         SAVE_EXPR.
8034         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
8035
8036 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
8037
8038         * c-typeck.c (parser_build_binary_op): If result from
8039         build_binary_op is ERROR_MARK just return error_mark_node without
8040         further processing.
8041
8042 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
8043
8044         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
8045         Split a.out-specific bits into...
8046         * config/netbsd-aout.h: ...this.
8047         * config/netbsd-elf.h: New file.
8048         * config/alpha/netbsd-elf.h: Remove.
8049         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
8050         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
8051         (STARTFILE_SPEC): Remove redundant definition.
8052         (ENDFILE_SPEC): Likewise.
8053         (LINK_SPEC): Likewise.
8054         (CPP_SPEC): Likewise.
8055         (ASM_SPEC): Likewise.
8056         (LIB_SPEC): Likewise.
8057         (SWITCH_TAKES_ARG): Likewise.
8058         (TARGET_MEM_FUNCTIONS): Likewise.
8059         (CPP_PREDEFINES): Redefine.
8060         (ASM_FINAL_SPEC): Remove redefinition.
8061         (ASM_COMMENT_START): Redefine.
8062         (FUNCTION_PROFILER): Define.
8063         (TARGET_VERSION): Redefine.
8064         Comment and formatting cleanup.
8065         * config/i386/netbsd.h: Include <netbsd-aout.h>.
8066         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
8067         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
8068         big- or little-endian.
8069         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
8070         * config.gcc (*-*-netbsd*): Add definitions common to all
8071         NetBSD configs.
8072         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
8073         gnu_ld definitions.  Add netbsd-elf.h to and remove
8074         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
8075         tmake_file, and don't lose previous tmake_file contents.
8076         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
8077         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
8078         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
8079         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
8080         (mipsel-*-netbsd*): Rename this to...
8081         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
8082         mips/little.h to tm_file for mips*el-*.
8083         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
8084         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
8085         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
8086
8087 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8088
8089         * pa-protos.h (reg_before_reload_operand): New function prototype.
8090         * pa.c (reg_before_reload_operand): New function implementation.
8091         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
8092         contraints to "*m".
8093
8094 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8095
8096         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
8097
8098 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8099
8100         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
8101         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
8102         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
8103         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
8104         (ENDFILE_SPEC): Undefine.
8105         (STARTFILE_SPEC): Redefine for PA.
8106
8107 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8108
8109         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
8110
8111 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
8112
8113         * config.gcc: Add entries to supported PowerPC --with-cpu
8114         types.
8115
8116 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
8117
8118         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
8119         true for 64-bit mode only SSE registers in 32-bit mode.
8120
8121 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8122
8123         * unwind-dw2.c: Fix formatting.
8124         * unwind-dw2-fde.c: Likewise.
8125         * unwind-dw2-fde.h: Likewise.
8126         * unwind-pe.h: Likewise.
8127         * varasm.c: Likewise.
8128         * varray.h: Likewise.
8129
8130 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
8131
8132         Remove workaround for register stack overwrite bug in mmix.
8133         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
8134         support for TARGET_REG_STACK_FILL_BUG.
8135         * config/mmix/mmix.h: Remove member has_call_without_parameters.
8136         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
8137         Delete.
8138         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
8139         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
8140         -mno-reg-stack-fill-bug-workaround.
8141         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
8142         machine member has_call_without_parameters.
8143         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
8144         -mreg-stack-fill-bug-workaround and
8145         -mno-reg-stack-fill-bug-workaround.
8146         (MMIX Options): Ditto.
8147
8148 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8149
8150         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
8151         as appropriate.
8152         Remove redundant code.
8153
8154 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8155
8156         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
8157         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8158         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
8159         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
8160         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
8161         out target macro definitions and non-target-specific comments
8162         mostly taken from old versions of the manual.
8163
8164 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8165
8166         * config/h8300/h8300.h: Fix comment formatting.
8167         * config/ia64/aix.h: Likewise.
8168         * config/ia64/ia64-protos.h: Likewise.
8169         * config/ia64/ia64.c: Likewise.
8170         * config/ia64/ia64.h: Likewise.
8171         * config/ia64/ia64intrin.h: Likewise.
8172         * config/ia64/linux.h: Likewise.
8173         * config/ia64/unwind-aix.c: Likewise.
8174         * config/ia64/unwind-ia64.c: Likewise.
8175
8176 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8177
8178         * config/h8300/h8300.c: Revise comments about shift code.
8179
8180 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8181
8182         * config/h8300/h8300.c (function_arg): Update a comment.
8183
8184 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8185
8186         * config/h8300/h8300.md: Update the comments at the beginning
8187         of the file.
8188
8189 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8190
8191         * config/i370/i370.c: Fix comment formatting.
8192         * config/i370/i370.h: Likewise.
8193         * config/i370/i370.md: Likewise.
8194         * config/i370/linux.h: Likewise.
8195
8196 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8197
8198         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
8199
8200         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
8201         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
8202         in incomplete case.
8203
8204 2002-01-20  Graham Stott  <grahams@redhat.com>
8205
8206         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
8207
8208 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8209
8210         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
8211
8212 2002-01-19  Tom Rix  <trix@redhat.com>
8213
8214         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
8215
8216 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
8217
8218         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
8219
8220         * function.c (assign_stack_local_1): Adjust x_frame_offset with
8221         STARTING_FRAME_PHASE.
8222         (STARTING_FRAME_PHASE): New.
8223         (instantiate_virtual_regs): Check saneness of
8224         STARTING_FRAME_PHASE.
8225
8226         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
8227
8228 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
8229
8230         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
8231
8232 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8233
8234         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
8235         be used for bootstrapping GCC 3.0.
8236
8237 2002-01-18  Kazu Hirata  <kazu@hxi.com>
8238
8239         * config/h8300/h8300.md: Fix an insn length.
8240
8241 2002-01-18  Kazu Hirata  <kazu@hxi.com>
8242
8243         * bitmap.h: Fix comment formatting.
8244         * combine.c: Likewise.
8245         * cppfiles.c: Likewise.
8246         * c-pragma.h: Likewise.
8247         * c-typeck.c: Likewise.
8248         * df.c: Likewise.
8249         * dwarf2out.c: Likewise.
8250         * function.c: Likewise.
8251         * gcc.c: Likewise.
8252         * genattrtab.c: Likewise.
8253         * gthr-win32.h: Likewise.
8254         * haifa-sched.c: Likewise.
8255         * predict.c: Likewise.
8256         * rtlanal.c: Likewise.
8257         * rtl.h: Likewise.
8258         * unwind-dw2-fde.h: Likewise.
8259         * unwind-pe.h: Likewise.
8260         * vmsdbgout.c: Likewise.
8261
8262 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8263
8264         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
8265         if type_required and passed decl.
8266
8267 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
8268
8269         * config.gcc (cpu_type): Include altivec.h in powerpc
8270         extra_headers.
8271         Same for darwin.
8272
8273         * config/rs6000/altivec.h: New.
8274
8275 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
8276
8277         * doc/install.texi (*-ibm-aix*): Update assembler and exception
8278         handling information.
8279         * doc/trouble.texi (Interoperation): Add libstdc++ information
8280         for AIX.
8281         (Misunderstandings): Add template instantiation and static template
8282         member information for AIX.
8283
8284 2002-01-17  Jason Merrill  <jason@redhat.com>
8285
8286         * dbxout.c (dbxout_type): Support const and volatile.
8287
8288         * except.c (add_partial_entry): Remove backwards compatibility code.
8289         (end_protect_partials): Likewise.
8290
8291 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
8292
8293         * config/ia64/ia64.md (prologue_use): New.
8294         * config/ia64/ia64.c (ia64_expand_prologue): Use
8295         gen_prologue_use instead of gen_rtx_USE.
8296         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
8297         as CODE_FOR_pred_rel_mutex.
8298         (ia64_sched_reorder2): Likewise.
8299
8300 2002-01-16  Eric Christopher  <echristo@redhat.com>
8301
8302         * config/mips/r3900.h: Reformat.
8303         (SUBTARGET_CPP_SIZE_SPEC): Remove.
8304         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
8305         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
8306         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
8307         * config/mips/t-elf: Remove mips3 multilib.
8308
8309 2002-01-16  H.J. Lu <hjl@gnu.org>
8310
8311         * config/mips/linux.h: Include "mips/abi64.h".
8312
8313 2002-01-16  H.J. Lu <hjl@gnu.org>
8314
8315         * config/mips/t-linux: New.
8316
8317         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
8318
8319         * config/mips/linux.h: Don't include "gofast.h".
8320         (INIT_SUBTARGET_OPTABS): Removed.
8321
8322 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8323
8324         * config/h8300/h8300-protos.h: Replace emit_a_shift with
8325         output_a_shift.
8326         * config/h8300/h8300.c: Likewise.
8327         * config/h8300/h8300.md: Likewise.
8328
8329 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8330
8331         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
8332         spaces after an opcode name.
8333         (pushqi1_h8300hs): Likewise.
8334         (pushhi1_h8300hs): Likewise.
8335
8336 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8337
8338         * doc/extend.texi: Replace "option" with "attribute"
8339         appropriately.
8340
8341 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
8342
8343         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
8344         (and:DI () (const_int -8)).
8345         (split_small_symbolic_mem_operand): Split
8346         (mem (and:DI () (const_int -8)).
8347
8348 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
8349
8350         PR target/5309:
8351         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
8352         same way as TYPE_IMUL.
8353         (ultrasparc_sched_reorder): Likewise.
8354         * config/sparc/sparc.md (type): Add comment to update
8355         ultrasparc_sched_reorder when making changes.
8356
8357 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8358
8359         * doc/invoke.texi: Change the dump file name of block
8360         reordering pass from 28.bbro to 29.bbro.
8361         Mention -dk option.
8362
8363 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
8364
8365         * i386.md (minsf splitter): Fix pasto.
8366
8367 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
8368
8369         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
8370         to frame pointer initialisation instruction.
8371         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
8372         initialisation instruction.
8373         (soft_df_operand): Do not accept the IP register.
8374         (nonimmediate_soft_df_operand): Do not accept the IP register.
8375
8376 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
8377
8378         PR target/5357:
8379         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
8380         MASK_V8 being both set.
8381
8382 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
8383
8384         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
8385         insn for GOT register; add REG_MAYBE_DEAD notes instead.
8386         config/s390/s390.md (call, call_value): Add GOT register to
8387         CALL_INSN_FUNCTION_USAGE where needed.
8388         (call_exp, call_value_exp): New.
8389
8390 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
8391
8392         * config/arm/arm.c: General formatting tidy up.
8393
8394 2002-01-16  Graham Stott  <grahams@redhat.com>
8395
8396         * calls.c (try_to_integrate): Use "(size_t)" intermediate
8397         cast and when casting an integer literal to "rtx" pointer.
8398         (expand_call): Likewise.
8399         * flow.c (try_pre_increment): Likewise.
8400         (find_use_as_address): Likewise.
8401         * integrate.c (expand_iline_function): Likewise.
8402         * regmove.c (try_auto_increment): Likewise.
8403
8404 2002-01-16  Graham Stott  <grahams@redhat.com>
8405
8406         * sched-rgn.c (passed): Use sbitmap_free.
8407         (header): Likewise.
8408         (inner): Likewise.
8409         (in_queue): Likewise.
8410         (in_stack): Likewise.
8411
8412 2002-01-15  Eric Christopher  <echristo@redhat.com>
8413
8414         * flow.c (propagate_one_insn): Change to use fatal_insn.
8415
8416 2002-01-15  Kazu Hirata  <kazu@hxi.com>
8417
8418         * expmed.c (extract_fixed_bit_field): Remove unused code.
8419         * system.h: Poison SLOW_ZERO_EXTEND.
8420         * doc/tm.texi: Remove.
8421         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
8422         * config/arm/arm.h: Likewise.
8423         * config/avr/avr.h: Likewise.
8424         * config/clipper/clipper.h: Likewise.
8425         * config/convex/convex.h: Likewise.
8426         * config/d30v/d30v.h: Likewise.
8427         * config/dsp16xx/dsp16xx.h: Likewise.
8428         * config/elxsi/elxsi.h: Likewise.
8429         * config/fr30/fr30.h: Likewise.
8430         * config/h8300/h8300.h: Likewise.
8431         * config/i370/i370.h: Likewise.
8432         * config/i386/i386.h: Likewise.
8433         * config/m68k/m68k.h: Likewise.
8434         * config/mips/mips.h: Likewise.
8435         * config/ns32k/ns32k.h: Likewise.
8436         * config/pdp11/pdp11.h: Likewise.
8437         * config/pj/pj.h: Likewise.
8438         * config/s390/s390.h: Likewise.
8439         * config/sh/sh.h: Likewise.
8440         * config/stormy16/stormy16.h: Likewise.
8441         * config/v850/v850.h: Likewise.
8442         * config/vax/vax.h: Likewise.
8443         * config/we32k/we32k.h: Likewise.
8444
8445 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
8446
8447         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
8448         (altivec_lvsl): Change constraint to b.
8449         (altivec_lvsr): Same.
8450         (altivec_lvebx): Same.
8451         (altivec_lvehx): Same.
8452         (altivec_lvewx): Same.
8453         (altivec_lvxl): Same.
8454         (altivec_lvx): Same.
8455         (altivec_stvx): Add parallel.
8456         (altivec_stvxl): Same.
8457         (altivec_stvehx): Same.
8458         (altivec_stvebx): Same.
8459         (altivec_stvebx): Same.
8460
8461 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
8462
8463         * config.gcc: Change altivec.h to altivec-defs.h.
8464
8465         * config/rs6000/altivec.h: Delete.
8466
8467         * config/rs6000/altivec-defs.h: Add.
8468
8469 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8470
8471         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
8472         and UMOD modes.
8473
8474         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
8475         less than or equal to eight bytes.
8476
8477         * vax.md (andsi3): Remove constraints and change SET destination
8478         operand type to nonimmediate_operand.
8479         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
8480         when it is a CONST_INT.
8481
8482 2002-01-15  Jason Merrill  <jason@redhat.com>
8483
8484         * c-common.def (FILE_STMT): New code.
8485         * c-common.c (statement_code_p): It's a statement.
8486         * c-common.h (stmt_tree_s): Add x_last_filename.
8487         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
8488         (last_expr_filename): New macro.
8489         * c-semantics.c (begin_stmt_tree): Initialize it.
8490         (add_stmt): If the filename changed, also insert a
8491         FILE_STMT.
8492         (expand_stmt): Handle seeing one.
8493
8494 2002-01-15  Eric Christopher  <echristo@redhat.com>
8495
8496         * flow.c (propagate_one_insn): Add error message and print out
8497         insn for debugging.
8498
8499 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
8500
8501         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
8502         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
8503         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
8504         TRAMPOLINE_ALIGNMENT.
8505         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
8506         to be in bits.
8507         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
8508         PCC_BITFIELD_TYPE_MATTERS.
8509         * config/interix.h (STDC_VALUE): Remove.  Use
8510         STDC_0_IN_SYSTEM_HEADERS.
8511         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
8512         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
8513         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
8514
8515 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8516
8517         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
8518         not work on this platform currently.
8519
8520 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
8521
8522         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
8523         readonly_warning in _().
8524
8525 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
8526
8527         * gcc.c (delete_if_ordinary): Backout previous change.
8528
8529 2002-01-15  Kazu Hirata  <kazu@hxi.com>
8530
8531         * config/h8300/h8300.c (print_operand): Remove support for
8532         unused operand characters.
8533
8534         * read-rtl.c: Fix formatting.
8535         * real.c: Likewise.
8536         * recog.c: Likewise.
8537         * regclass.c: Likewise.
8538         * regmove.c: Likewise.
8539         * reg-stack.c: Likewise.
8540         * reload1.c: Likewise.
8541         * rtlanal.c: Likewise.
8542
8543 2002-01-15  Kazu Hirata  <kazu@hxi.com>
8544
8545         * config/i386/i386.c: Fix formatting.
8546
8547 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
8548
8549         * c-typeck.c (process_init_element): Don't save_expr
8550         COMPOUND_LITERAL_EXPR if just its initializer will be used.
8551
8552 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
8553
8554         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
8555         emit optional traceback table if optimize_size or TARGET_ELF.
8556         * config/rs6000/rs6000.md (prefetch): New.
8557
8558 2002-01-15  Andreas Jaeger  <aj@suse.de>
8559
8560         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
8561
8562 2002-01-15  Kazu Hirata  <kazu@hxi.com>
8563
8564         * mips-tfile.c: Fix formatting.
8565
8566 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
8567
8568         * unroll.c (final_reg_note_copy): Fix previous commit.
8569
8570 2002-01-14  Kazu Hirata  <kazu@hxi.com>
8571
8572         * config/h8300/h8300-protos.h: Remove the prototype for
8573         eq_operator.
8574         * config/h8300/h8300.c (eq_operator): Remove.
8575
8576 2002-01-14  Richard Henderson  <rth@redhat.com>
8577
8578         * config/i386/i386.md (prefetch): Tidy.
8579         (prefetch_3dnow): Fix locality operand.
8580
8581 2002-01-14  Richard Henderson  <rth@redhat.com>
8582
8583         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
8584         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
8585
8586 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
8587
8588         * reload1.c (reload_combine): Pass reg_sum replacement through
8589         copy_rtx in loop performing multiple changes.
8590
8591 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
8592
8593         * except.c (remove_unreachable_regions): New.
8594         (free_eh_status): Clear exception_handler_labels.
8595         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
8596         (find_exception_handler_labels): Don't add the same label more than
8597         once.
8598         (remove_exception_handler_label): Don't die if
8599         find_exception_handler_labels hasn't been called for the current
8600         function yet.
8601
8602 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
8603
8604         * toplev.c (rest_of_compilation): Rebuild jump labels after
8605         gcse.
8606
8607 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
8608
8609         * doc/extend.texi: Move documentation of X86 built-in functions
8610         here.
8611         * doc/invoke.texi: From here.
8612         * doc/sourcebuild.texi: Document location of documentation for
8613         machine built-in functions.
8614
8615 2002-01-13  Christopher Faylor  <cgf@redhat.com>
8616
8617         * cppfiles.c (TEST_THRESHOLD): New macro.
8618         (SHOULD_MMAP): Ditto.
8619         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
8620         be used.
8621
8622 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
8623
8624         * unroll.c (final_reg_note_copy): Properly handle
8625         REG_LABEL
8626         (unroll_loops): Fix LOOP_CONDITION heuristics.
8627
8628 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
8629
8630         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
8631         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
8632
8633 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
8634
8635         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
8636         threaded loop.
8637
8638 2002-01-14  Tom Rix  <trix@redhat.com>
8639
8640         * config/rs6000/rs6000.md: Fix typo with sradi.
8641
8642 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
8643
8644         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
8645         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
8646         (clrstrdi, clrstrsi): Adapt callers.
8647
8648         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
8649
8650         (movti splitter): Never use register 0 as base register.
8651
8652 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
8653
8654         * combine.c (simplify_shift_const): Always generate new rtx
8655         for shift expression instead of reusing given expression.
8656
8657 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8658
8659         * config/alpha/alpha.c (alpha_expand_mov): Don't call
8660         alpha_legitimize_address unless mode is Pmode.
8661
8662 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
8663
8664         * doc/md.texi (Modifiers): Document the '*' constraint for the
8665         user.
8666
8667         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
8668         * doc/extend.texi (Function Attributes): 'interrupt' is valid
8669         for xstormy16 too.
8670
8671 2002-01-13  Richard Henderson  <rth@redhat.com>
8672
8673         * reload.c (find_reloads): Use a hard reg destination as reload reg
8674         for an input reload of the source.
8675
8676 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8677
8678         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
8679         more generic.
8680
8681 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
8682
8683         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
8684         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
8685
8686         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
8687
8688 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8689
8690         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
8691
8692 2002-01-12  Tom Rix  <trix@redhat.com>
8693
8694         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
8695         TARGET_POWERPC64.
8696
8697 2002-01-12  Richard Henderson  <rth@redhat.com>
8698
8699         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
8700
8701         * doc/invoke.texi: Update Alpha options.
8702
8703         * doc/invoke.texi: Update i386 built-in function lists.
8704
8705 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
8706
8707         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
8708         referencing outside.
8709
8710 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8711
8712         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
8713         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
8714         offsets, and change line folding.
8715         * optabs.c (expand_binop): Remove warnings.
8716         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
8717
8718 2002-01-12  Graham Stott <grahams@redhat.com>
8719
8720         * attribs.c (handle_deprecated_attribute): constify WHAT.
8721         * diagnostic.c (warn_deprecated_use): Add braces, fixes
8722         dangling else warning and constify WHAT.
8723         * except.h (struct function, struct inline_remap): Move
8724         struct tag forward defs before all prototypes.
8725         (duplicate_eh_regions): Whitespace.
8726
8727 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
8728
8729         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
8730         MODE_BASE_REG_CLASS.
8731         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
8732
8733 2002-01-12  Richard Henderson  <rth@redhat.com>
8734
8735         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
8736         (ix86_expand_vector_move): New.
8737         (bdesc_2arg): Remove andps, andnps, orps, xorps.
8738         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
8739         Remove old prefetch builtins.  Special case the logicals removed above.
8740         (ix86_expand_builtin): Likewise.
8741         (safe_vector_operand): Use V4SFmode, not TImode.
8742         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
8743         (ix86_expand_timode_binop_builtin): New.
8744         * config/i386/i386-protos.h: Update.
8745         * config/i386/i386.h (enum ix86_builtins): Update.
8746         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
8747         Use ix86_expand_vector_move in vector move expanders.
8748         (movti_internal, movti_rex64): Add xorps alternative.
8749         (sse_clrv4sf): Rename and adjust from sse_clrti.
8750         (prefetch): Don't work so hard.
8751         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
8752         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
8753         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
8754
8755 2002-01-11  Richard Henderson  <rth@redhat.com>
8756
8757         * config/i386/mmintrin.h: New file.
8758         * config/i386/xmmintrin.h: New file.
8759         * config.gcc (i?86-*-*): Add extra_headers.
8760         * simplify-rtx.c (simplify_unary_operation): Handle saturating
8761         truncation codes.
8762         (simplify_binary_operation): Handle saturating arithmetic codes.
8763         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
8764         not the lowpart subreg.
8765         (ix86_expand_builtin): Return a TImode dummy register instead of 0
8766         on error.
8767         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
8768
8769 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8770
8771         * conflict.c (conflict_graph_compute): Free regsets when finished.
8772         * ssa.c (compute_coalesced_reg_partition): Likewise.
8773
8774 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8775
8776         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
8777         every where we allocate a register.
8778
8779 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8780
8781         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
8782         * lcm.c (compute_earliest, compute_farthest): Likewise.
8783
8784 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
8785
8786         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
8787
8788 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
8789
8790         * doc/rtl.texi (Insns): Fix 2 typos.
8791
8792 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
8793
8794         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
8795         options.  Use @table @gcctabopt for MMIX options.  Add index
8796         entries for MMIX options.  Start new paragraph with first
8797         heading of the machine-dependent options.
8798
8799 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8800
8801         PR other/5299
8802         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
8803         * combine.c (force_to_mode): Same.
8804         * reload1.c (clear_reload_reg_in_use): Same.
8805
8806 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
8807
8808         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
8809         and 'subtargets'.
8810
8811 2002-01-11  Andreas Jaeger  <aj@suse.de>,
8812             Brad Lucier <lucier@math.purdue.edu>
8813
8814         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
8815         mcpu.
8816
8817 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
8818
8819         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
8820         Protect with IN_LIBGCC.
8821         (LINK_EH_SPEC): Add required trailing space.
8822
8823 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
8824
8825         * c-tree.h: Move function declarations so that they are listed
8826         under the filename which contains them.
8827         (check_identifier, finish_decl_top_level,
8828         lookup_name_current_level_global, shadow_record_fields): Remove.
8829
8830 2002-01-11  Andreas Jaeger  <aj@suse.de>
8831
8832         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
8833         march.
8834
8835 2002-01-10  Richard Henderson  <rth@redhat.com>
8836
8837         * config/alpha/alpha.c (print_operand): Add 'J'.
8838         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
8839         new operand with the sequence number for the lituse.  When splitting
8840         the insns, use gen_movdi_er_high_g and generate a sequence number.
8841         (gen_movdi_er_high_g): Print the sequence number if non-zero.
8842
8843 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
8844
8845         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
8846         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
8847         stvxl.
8848         (altivec_expand_builtin): Same.
8849         (altivec_expand_stv_builtin): New.
8850
8851         * config/rs6000/rs6000.h (rs6000_builtins): Same.
8852
8853         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
8854         ("altivec_lvehx"): New.
8855         ("altivec_lvewx"): New.
8856         ("altivec_lvxl"): New.
8857         ("altivec_lvx"): New.
8858         ("altivec_stvx"): New.
8859         ("altivec_stvebx"): New.
8860         ("altivec_stvehx"): New.
8861         ("altivec_stvewx"): New.
8862         ("altivec_stvxl"): New.
8863
8864 2002-01-10  Richard Henderson  <rth@redhat.com>
8865
8866         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
8867         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
8868         care not to delete instructions twice.
8869
8870 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
8871
8872         * toplev.c: Don't declare environ (it's not used anywhere).
8873         * configure.in: Don't check for declaration of environ.
8874         * config/i386/xm-mingw32.h: Don't #define environ.
8875         * config.in, configure: Regenerate.
8876
8877 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
8878
8879         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
8880         * configure: Regenerate.
8881
8882         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
8883         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
8884         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
8885         alpha/xm-vms.h.
8886         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
8887         LIMITS_H_TEST here, not in m68k/x-next.
8888         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
8889         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
8890
8891         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
8892         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
8893         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
8894
8895         * config/i386/x-djgpp: Renamed i386/t-djgpp.
8896         * config/m88k/x-dolph: Renamed m88k/t-dolph.
8897         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
8898         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
8899         replacement of quadlib.asm with quadlib.c.
8900
8901         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
8902         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
8903         config/rs6000/xm-beos.h: Delete file.
8904
8905         * config.gcc: Update to match above changes.
8906
8907 2002-01-10  Kazu Hirata  <kazu@hxi.com>
8908
8909         * config/h8300/h8300.h: Fix comment typos.
8910         * config/h8300/h8300.md: Likewise.
8911         * config/h8300/lib1funcs.asm: Likewise.
8912
8913 2002-01-10  Dale Johannesen  <dalej@apple.com>
8914
8915         PR optimization/5269
8916         * unroll.c (precondition_loop_p): Make *increment be the correct
8917         sign when n_iterations known, to avoid confusing caller.
8918
8919 2002-01-10  Kazu Hirata  <kazu@hxi.com>
8920
8921         * doc/extend.texi (deprecated): Fix a typo.
8922
8923 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
8924
8925         * basic-block.h (update_br_prob_note): Declare.
8926         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
8927         (try_forward_edges): Care negative frequencies and update note.
8928         (outgoing_edges_match): Tweek conditional merging heuristics.
8929         (try_crossjump_to_edge): use update_br_prob_note.
8930         * cfglayout.c (fixup_reorder_chain): Likewise.
8931         * cfrtl.c (update_br_prob_note): New.
8932         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
8933
8934         * i386.c (ix86_decompose_address): Return -1 if address contains
8935         shift.
8936         (legitimate_address_p): Require ix86_decompose_address to return 1.
8937
8938         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
8939         (cprop_insn): Likewise.
8940
8941 2002-01-10  Kazu Hirata  <kazu@hxi.com>
8942
8943         * toplev.c: Fix formatting.
8944         * tree.c: Likewise.
8945         * tree-dump.c: Likewise.
8946         * unroll.c: Likewise.
8947         * unwind-dw2.c: Likewise.
8948         * unwind-dw2-fde.c: Likewise.
8949         * unwind-dw2-fde-glibc.c: Likewise.
8950         * unwind-sjlj.c: Likewise.
8951
8952 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
8953
8954         * doc/invoke.texi: Document PDP-11 options.
8955
8956 2002-01-10  Kazu Hirata  <kazu@hxi.com>
8957
8958         * config/h8300/h8300.h: Fix formatting.
8959
8960 2002-01-10  Ira Ruben   <ira@apple.com>
8961
8962         Add __attribute__ ((deprecated)).
8963         * extend.texi: Document __attribute__ ((deprecated)).
8964         * invoke.texi: Document -Wno-deprecated-declarations.
8965         * testsuite/g++.dg/other/deprecated.C: New C++ test.
8966         * testsuite/gcc.dg/deprecated.c: New C test.
8967         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
8968         (c_common_attribute_table): Add "deprecated" entry.
8969         (handle_deprecated_attribute): New function.
8970         * c-decl.c (deprecated_states): New enum.
8971         deprecated_state: State of "deprecated" handling.
8972         (start_decl): Set deprecated_state based on attributes.
8973         (grokdeclarator): Test for deprecated uses, propagate attribute.
8974         * c-typeck.c (build_component_ref): Test for deprecated fields.
8975         (build_external_ref): Test for deprecated primaries.
8976         * diagnostic.c (warn_deprecated_use) New function to issue
8977         warnings about __attribute__ ((depricated)) references.
8978         * flags.h (warn_deprecated_decl): Extern declared for
8979         -W[no-]deprecated-declarations option.
8980         * print-tree.c (print_node): Show deprecated flag status.
8981         * toplev.c (warn_deprecated_decl): Defined.
8982         (W_options): Added "deprecated-declaration".
8983         * toplev.h (warn_deprecated_use): Extern declared.
8984         * tree.h (struct tree_common): Define deprecated_flag.
8985         (TREE_DEPRECATED): New macro to access flag.
8986         * cp/call.c (build_call): Test for deprecated calls.
8987         * cp/class.c (add_implicitly_declared_members): Set global
8988         flag to tell grokdeclarator to not issue deprecated warnings.
8989         * cp/cp-tree.h: Add extern for adding_implicit_members.
8990         * cp/decl.c (deprecated_states): New enum.
8991         (start_decl): Set deprecated_state based on attributes.
8992         (grokdeclarator): Test for deprecated uses, propagate attribute.
8993         * cp/lex.c (do_identifier): Test for deprecated primaries.
8994         * cp/typeck.c (build_component_ref): Test for deprecated fields.
8995
8996 2002-01-10  Ira Ruben   <ira@apple.com>
8997
8998         Fix to assign attributes to inline member functions.
8999         * cp/decl.c (start_method): Handle attrlist.
9000
9001 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9002
9003         * combine.c (expand_field_assignment): Use subreg_lsb().
9004
9005 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
9006
9007         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
9008         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
9009         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
9010         Recurse for any operand of AND as long as constant is non-zero.
9011
9012 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9013
9014         * config/h8300/h8300.md: Remove constraints from expanders.
9015
9016 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9017
9018         * varasm.c: Fix formatting.
9019         * varray.c: Likewise.
9020         * vmsdbgout.c: Likewise.
9021         * xcoffout.c: Likewise.
9022
9023 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
9024
9025         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
9026         update edge probabilities to match.
9027
9028 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9029
9030         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
9031         dependencies.
9032         * doc/languages.texi, doc/sourcebuild.texi: New files.
9033         * doc/configfiles.texi: Make a subsubsection.  Update.
9034         * doc/configterms.texi: Add @node.  Remove warning that this isn't
9035         instructions for building GCC.
9036         * doc/makefile.texi: Make a subsection.
9037         * doc/gccint.texi: Update.
9038
9039 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
9040
9041         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
9042
9043 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9044
9045         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
9046
9047 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
9048
9049         * optabs.c (expand_fix): Look for wider integer modes first.
9050
9051         * i386.md (mov?f): Avoid the fake const double trick for medium
9052         memory model.
9053         (min?f*/max?f*): Prohibit memory operands for i387 variant.
9054         (fop_df_4): Disable for SSE compilation.
9055
9056 2002-01-10  Graham Stott  <grahams@redhat.com>
9057
9058         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
9059         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
9060
9061 2002-01-10  Richard Henderson  <rth@redhat.com>
9062
9063         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
9064
9065 2002-01-10  Richard Henderson  <rth@redhat.com>
9066
9067         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
9068         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
9069
9070 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9071
9072         * combine.c (can_combine_p): Fix a comment typo.
9073
9074 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
9075
9076         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
9077         empty list correctly.  Change loop index $t to $f for
9078         consistency with rest of Makefile.
9079
9080 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
9081
9082         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
9083         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9084
9085         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
9086         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
9087         (altivec_init_builtins): Same.
9088         (altivec_expand_unop_builtin): Return NULL_RTX on error.
9089         (altivec_expand_binop_builtin): Same.
9090         (altivec_expand_ternop_builtin): Same.
9091         (bdesc_dst): New.
9092
9093         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
9094         ("altivec_vctuxs"): Fix typo.
9095         ("altivec_vnmsubfp"): Same.
9096         ("altivec_dssall"): New.
9097         ("altivec_mfvscr"): New.
9098         ("altivec_dss"): New.
9099         ("altivec_lvsl"): New.
9100         ("altivec_lvsr"): New.
9101         ("altivec_dstt"): New.
9102         ("altivec_dstst"): New.
9103         ("altivec_dststt"): New.
9104         ("altivec_dst"): New.
9105
9106         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
9107         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9108
9109 2002-01-09  Richard Henderson  <rth@redhat.com>
9110
9111         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
9112
9113 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
9114
9115         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
9116         function.
9117         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
9118         prototype.
9119         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
9120
9121 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9122
9123         * read-rtl.c: Fix formatting.
9124         * real.c: Likewise.
9125         * regclass.c: Likewise.
9126         * regrename.c: Likewise.
9127         * reg-stack.c: Likewise.
9128         * reload1.c: Likewise.
9129         * reload.c: Likewise.
9130         * rtl.c: Likewise.
9131
9132 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9133
9134         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
9135         to extract items in the expr_list chain.
9136
9137 2002-01-09  Richard Henderson  <rth@redhat.com>
9138
9139         * config/vax/vax.c (vax_rtx_cost): Never abort.
9140
9141         * config/vax/vax.h (REAL_ARITHMETIC): Define.
9142
9143 2002-01-09  Jan Hubicka  <jh@suse.cz>
9144
9145         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
9146
9147 2002-01-09  Richard Henderson  <rth@redhat.com>
9148
9149         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
9150         Unify code from various alternatives.
9151
9152 2002-01-09  Richard Henderson  <rth@redhat.com>
9153
9154         * regrename.c (copy_value): Ignore the copy if the source register
9155         is present in the value chain with a narrower mode.
9156
9157 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
9158
9159         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
9160         for the c4x target. Also improve layout.
9161
9162 2002-01-09  Richard Henderson  <rth@redhat.com>
9163
9164         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
9165         * config/m32r/m32r.md (and ior xor splitters): Swap operands
9166         to match insn patterns.
9167
9168 2002-01-09  Richard Henderson  <rth@redhat.com>
9169
9170         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
9171         (copyprop_hardreg_forward_1): Likewise.
9172
9173 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9174
9175         * pa.md (decrement_and_branch_until_zero): Change predicate for
9176         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
9177
9178 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9179
9180         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
9181         gets undefined. For Darwin.
9182
9183 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9184
9185         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
9186
9187 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9188
9189         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
9190
9191 2002-01-08  Richard Henderson  <rth@redhat.com>
9192
9193         * regrename.c (copy_value): Ignore overlapping copies.
9194
9195 2002-01-08  Richard Henderson  <rth@redhat.com>
9196
9197         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
9198         as needed to avoid shared structure.
9199
9200 2002-01-08  Kazu Hirata  <kazu@hxi.com>
9201
9202         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
9203         H8/300H and H8/S.
9204
9205 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9206
9207         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
9208         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
9209         documentation of obsolete macros.
9210         * system.h: Poison these macros.
9211         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
9212         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
9213         config/c4x/c4x.h, config/clipper/clipper.h,
9214         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
9215         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
9216         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
9217         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
9218         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
9219         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
9220         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
9221         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
9222         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
9223         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
9224         config/sparc/sparc.h, config/stormy16/stormy16.h,
9225         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
9226         definitions and commented out definitions of obsolete macros.
9227         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
9228         of MAX_INT_TYPE_SIZE.
9229
9230 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
9231
9232         * config/s390/s390.c (s390_preferred_reload_class): Never
9233         return ADDR_REGS if it isn't a subset of the given class.
9234         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
9235         FP_REGS, but all superclasses as well.
9236
9237         * config/s390/s390.c (s390_function_profiler): Fix thinko.
9238
9239         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
9240         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
9241         must not be a const_int.
9242
9243 2002-01-08  Richard Henderson  <rth@redhat.com>
9244
9245         * Makefile.in (toplev.o): Depend on options.h.
9246         (gcc.o): Depend on specs.h.
9247
9248 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
9249
9250         * expr.c (store_expr): Convert VOIDmode constants back to target's
9251         mode.
9252
9253 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9254
9255         * doc/invoke.texi: Markup gcc as @command.  Refer to
9256         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
9257         of http://gcc.gnu.org/thanks.html.
9258
9259 2002-01-08  Dale Johannesen  <dalej@apple.com>
9260
9261         * config/rs6000/rs6000.md: Add missing int register
9262         target case to movdf_low.
9263
9264 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
9265
9266         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
9267         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
9268         (cppinit.o): Depend on except.h.
9269         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
9270         s-specs): New rules.
9271
9272         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
9273         Don't create specs.h/options.h/gencheck.h here.  Remove
9274         unnecessary variable settings from last argument of AC_OUTPUT.
9275         * config.in, configure: Regenerate.
9276         * intl.c: Hardcode package name as "gcc".
9277
9278         * cppinit.c: Include except.h.
9279         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
9280         appropriate.
9281         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
9282         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
9283         (!)USING_SJLJ_EXCEPTIONS.
9284         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
9285
9286 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9287
9288         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
9289         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
9290         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
9291         documentation of obsolete macros.
9292         * system.h: Poison these macros.
9293         * config/d30v/d30v.h, config/ns32k/encore.h,
9294         config/stormy16/stormy16.h: Remove definitions and commented out
9295         definitions of obsolete macros.
9296
9297 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
9298
9299         * objc/objc-act.c (handle_class_ref): Mark the declaration of
9300         %sobjc_class_ref_%s as used - to prevent unwanted compiler
9301         warnings.
9302
9303 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
9304
9305         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
9306         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
9307         to insn adjusting stack/frame pointer.
9308         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
9309         accept operands that cause the insn to be non-splittable.
9310
9311 2002-01-08  Graham Stott  <grahams@redhat.com>
9312
9313         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
9314         (C_TYPE_FIELDS_VOLATILE): Likewise.
9315         (C_TYPE_BEING_DEFINED): Likewise.
9316         (C_IS_RESERVED_WORD): Likewise.
9317         (C_TYPE_VARIABLE_SIZE): Likewise.
9318         (C_DECL_VARIABLE_SIZE): Likewise.
9319         (C_MISSING_PROTOTYPE_WARNED): Likewise.
9320         (C_SET_EXP_ORIGINAL_CODE): Likewise.
9321         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
9322         parenthesis.
9323         (C_DECL_ANTICIPATED): Likewise.
9324         (c_build_type_variant): Add parenthesis.
9325
9326 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9327
9328         * gcc.c (option_map): Remove --version.
9329         (process_command): Handle -fversion following the GNU Coding
9330         Standards.  Partially addresses PR other/704.
9331
9332 2002-01-08  Graham Stott  <grahams@redhat.com>
9333
9334         * combine.c (combine_instructions): Fix typo.
9335
9336 2002-01-08  Graham Stott  <grahams@redhat.com>
9337
9338         * debug.h: Use "tree" and "rtx" throughout.
9339
9340         * debug.c: Likewise.
9341
9342 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
9343
9344         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
9345         constant pool, use the pool's version of the symbol instead.
9346
9347 2002-01-07  Richard Henderson  <rth@redhat.com>
9348
9349         * regrename.c (find_oldest_value_reg): Ignore the value chain if
9350         the original register was copied in a mode with a fewer number of
9351         hard registers than the desired mode.
9352         (copyprop_hardreg_forward_1): Likewise.
9353         (debug_value_data): Fix loop test.
9354         * toplev.c (parse_options_and_default_flags): Reenable
9355         -fcprop-registers at -O1.
9356
9357 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
9358
9359         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
9360         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
9361
9362         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
9363         predicates.
9364
9365         * config/rs6000/rs6000.md: Add altivec predicate patterns.
9366
9367 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9368
9369         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
9370         (pa_output_function_prologue): Output local label at the beginning of
9371         the prologue when profiling.
9372         (hppa_profile_hook): Use the local label rather than the function label.
9373         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
9374
9375 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
9376
9377         * config/rs6000/rs6000.c (print_operand): Remove extra space.
9378         (altivec_expand_unop_builtin): Fix thinko.
9379         (altivec_expand_binop_builtin): Same.
9380         (altivec_expand_ternop_builtin): Same.
9381         (altivec_expand_builtin): Same.
9382
9383 2002-01-07  Richard Henderson  <rth@redhat.com>
9384
9385         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
9386
9387 2002-01-07  Jason Merrill  <jason@redhat.com>
9388
9389         * unwind-dw2.c (execute_cfa_program): Use < again.
9390
9391 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
9392
9393         * predict.c (combine_predictions_for_insn): Avoid division by zero.
9394
9395 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
9396
9397         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
9398         Don't allow -1 - x -> ~x simplifications in the first pass.
9399
9400 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
9401
9402         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
9403         arguments.
9404         (altivec_expand_binop_builtin): Same.
9405         (altivec_expand_unop_builtin): Same.
9406         (print_operand): Fix typo.
9407         (bdesc_1arg): Add vupk* variants.
9408
9409         * rs6000.h (rs6000_builtins): Add vupk* enums.
9410
9411         * rs6000.md: Add altivec_vupk* variants.
9412
9413 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
9414
9415         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
9416         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
9417         and last update dates.
9418
9419 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
9420
9421         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
9422
9423 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9424
9425         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
9426         * config/avr/avr.h (CPP_SPEC): Likewise.
9427         (LINK_SPEC): Likewise.
9428         (CRT_BINUTILS_SPECS): Likewise.
9429         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
9430         * doc/invoke.texi (AVR Options): Document them.
9431
9432 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
9433
9434         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
9435         LABEL_NUSES.
9436
9437 2002-01-07  Graham Stott  <grahams@redhat.com>
9438
9439         * config/i386/i386.h: Update copyright date.
9440         (HALF_PIC_PTR): Add parenthesis.
9441         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
9442         (CONSTANT_ALIGNMENT): Add parenthesis.
9443         (DATA_ALIGNMENT): Likewise.
9444         (LOCAL_ALIGNMENT): Likewise.
9445         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
9446         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
9447         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
9448         (HARD_REGNO_NREGS): Add paranethesis.
9449         (VALID_SSE_REG_MODE): Whitespace.
9450         (VALID_MMX_REG_MODE): Whitespace.
9451         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
9452         (ix86_hard_regno_mode_ok): Add parenthesis.
9453         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
9454         (RETURN_IN_MEMORY): Whitespace.
9455         (N_REG_CLASSES): Add parenthesis.
9456         (INTEGER_CLASS_P): Add parenthesis and wrap.
9457         (FLOAT_CLASS_P): Likewise.
9458         (SSE_CLASS_P): Likewise.
9459         (MMX_CLASS_P): Likewise.
9460         (MAYBE_INTEGER_CLASS_P): Likewise.
9461         (MAYBE_FLOAT_CLASS_P): Likewise.
9462         (MAYBE_SSE_CLASS_P): Likewise.
9463         (MAYBE_MMX_CLASS_P): Likewise.
9464         (Q_CLASS_P): Likewise.
9465         (GENERAL_REGNO_P): Uppercase macro parameter.
9466         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
9467         (FP_REGNO_P): Likewise.
9468         (ANY_FP_REGNO_P): Uppercase macro parameter.
9469         (SSE_REGNO_P): Likewise.
9470         (SSE_REGNO): Likewise.
9471         (SSE_REG_P): Likewise.
9472         (SSE_FLOAT_MODE_P): Likewise.
9473         (MMX_REGNO_P): Likewise.
9474         (MMX_REG_P):Likewise.
9475         (STACK_REG_P): Likewise.
9476         (NON_STACK_REG_P): Likewise.
9477         (STACK_TOP_P): Likewise.
9478         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
9479         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
9480         (SECONDARY_MEMORY_NEEDED): Likewise.
9481         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
9482         (MD_ASM_CLOBBERS): Whitespace and wrap.
9483         (MUST_PASS_IN_STACK): Whitespace and wrap.
9484         (RETURN_POPS_ARGS): Add parenthesis.
9485         (INIT_CUMULATIVE_ARGS): Likewise.
9486         (FUNCTION_ARG): Likewise.
9487         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
9488         (SETUP_INCOMING_VARARGS): Likewise.
9489         (BUILD_VA_LIST_TYPE):  Add parenthesis.
9490         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
9491         parenthsis.
9492         (EXPAND_BUILTIN_VA_ARG): Likewise.
9493         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
9494         (INITIALIZE_TRAMPOLINE): Add parenthesis.
9495         (INITIAL_ELIMINATION_OFFSET): Likewise.
9496         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
9497         (REGNO_OK_FOR_BASE_P): Likewise.
9498         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
9499         (REGNO_OK_FOR_DIREG_P): Likewise.
9500         (REG_OK_FOR_INDEX_P): Whitespace.
9501         (REG_OK_FOR_BASE_P): Whitespace.
9502         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
9503         parenthesis.
9504         (FIND_BASE_TERM): Fix typo.
9505         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
9506         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
9507         (SYMBOLIC_CONST; Whitespace.
9508         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
9509         (ENCODE_SECTION_INFO): Whitespace.
9510         (FINALIZE_PIC): Remove do { ... } while (0).
9511         (PROMOTE_MODE): Wrap in do { ... } while (0).
9512         (CONST_COSTS): Whitespace.
9513         (RTX_COSTS): Add paramethesis, whitespace and wrap.
9514         (REGISTER_MOVE_COST): Add parenthesis.
9515         (MEMORY_MOVE_COST): Likewise.
9516         (EXTRA_CC_MODES): Whitespace.
9517         (SELECT_CC_MODE): Add parenthesis and whitespace.
9518         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
9519         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
9520         (ASM_OUTPUT_LABEL): Add paramethesis.
9521         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
9522         (ASM_OUTPUT_REG_POP): Likewise.
9523         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
9524         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9525
9526         * config/i386/i386.c: Update copyright.
9527         (CHECK_STACK_LIMIT): Add parenthesis.
9528         (AT_BP): Uppercase macro parameter.
9529         (x86_64_int_parameter_registers): Constify.
9530         (x86_64_int_return_registers): Likewise.
9531         (ix86_compare_op0): Use rtx.
9532         (construct_container): Constify INTREG parameter.
9533         (function_arg): Use rtx.
9534
9535         * diagnostic.h: Update copyright date.
9536         (output_buffer_state): Add parenthesis.
9537         (output_buffer_format_args): Likewise.
9538
9539         * combine.c (combine_instructions): Replace XEXP (links, 0)
9540         with link.
9541
9542 2002-01-06  H.J. Lu <hjl@gnu.org>
9543
9544         * cfgcleanup.c (thread_jump): Fix 2 typos.
9545
9546 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
9547
9548         * config.gcc: Add support for --enable-altivec.
9549
9550 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9551
9552         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
9553
9554 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
9555
9556         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
9557         __objc_class_name_*.
9558
9559 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9560
9561         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
9562
9563 2002-01-06  Richard Henderson  <rth@redhat.com>
9564
9565         * reorg.c (emit_delay_sequence): Remove death notes, not merely
9566         nop them out.  Increment label reference count for REG_LABEL.
9567         (fill_slots_from_thread): Frob label reference count around
9568         delete_related_insns.
9569
9570 2002-01-05  Richard Henderson  <rth@redhat.com>
9571
9572         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
9573         jump threading.
9574
9575 2002-01-05  Richard Henderson  <rth@redhat.com>
9576
9577         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
9578         * integrate.c (output_inline_function): Likewise.
9579         * toplev.c (rest_of_compilation): Do it here instead.  Move call
9580         to remove_unnecessary_notes after emitting abstract instance.
9581         Force an emitted nested function to have its parent emited as well.
9582         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
9583         for null.
9584         (rtl_for_decl_location): Do not look at reload data structures
9585         before reload has run.
9586
9587 2002-01-05  Kazu Hirata  <kazu@hxi.com>
9588
9589         * cse.c: Fix formatting.
9590         * dwarf2asm.c: Likewise.
9591         * dwarf2out.c: Likewise.
9592         * explow.c: Likewise.
9593         * expmed.c: Likewise.
9594         * function.c: Likewise.
9595         * gcov.c: Likewise.
9596         * gencheck.c: Likewise.
9597         * genrecog.c: Likewise.
9598         * ggc-common.c: Likewise.
9599         * ggc-page.c: Likewise.
9600         * global.c: Likewise.
9601
9602 2002-01-05  Kazu Hirata  <kazu@hxi.com>
9603
9604         * combine.c: Fix formatting.
9605
9606 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
9607
9608         PR middle-end/1557
9609         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
9610
9611 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
9612
9613         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
9614         as 1 for __powerpc64__ as well.
9615
9616         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
9617
9618         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
9619         return it.
9620
9621 2002-01-05  Daniel Berlin  <dan@dberlin.org>
9622
9623         * lcm.c: Revert change, due to performance regression it causes on
9624         SPEC because it's slightly more conservative (sigh, I hate
9625         edge-based LCM).
9626
9627 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
9628
9629         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
9630
9631 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9632
9633         * doc/cppinternals.texi: Update.
9634
9635 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
9636
9637         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
9638         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
9639         negatives.
9640         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
9641         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
9642         kludge for pre-october-14th mmix versions to handle new-found bug
9643         with PUSHJ/PUSHGO and the register stack.
9644         * config/mmix/mmix.h (struct machine_function): Rename member
9645         has_call_value_without_parameters to has_call_without_parameters.
9646         All referers changed.
9647         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
9648         TARGET_MASK_BRANCH_PREDICT): New macros.
9649         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
9650         -mno-reg-stack-fill-bug-workaround.
9651         * config/mmix/mmix.md ("call"): Set struct machine member
9652         has_call_without_parameters.
9653
9654 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
9655
9656         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
9657
9658 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
9659
9660         * cfgcleanup.c: Include tm_p.h
9661         (mark_effect): Fix handling of hard register; fix handling of SET
9662
9663 2002-01-04  Kazu Hirata  <kazu@hxi.com>
9664
9665         * config/h8300/h8300.md (anonymous patterns): Check that
9666         operands are registers before using REGNO on them.
9667
9668 2002-01-03  Roland McGrath  <roland@frob.com>
9669
9670         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
9671
9672 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
9673
9674         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
9675         * c-common.h (genrtl_expr_stmt_value): Likewise.
9676         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
9677         (expand_expr_stmt_value): Add maybe_last argument.
9678         Don't warn about statement with no effect if it is the last statement
9679         in expression statement.
9680         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
9681         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
9682         expand_expr_stmt_value.
9683         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
9684         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
9685         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
9686         as maybe_last to expand_expr_stmt_value.
9687
9688 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
9689
9690         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
9691         be passed in, do not build it.
9692         (c_begin_if_stmt): New function.
9693         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
9694         * c-common.h (c_expand_start_cond): Update prototype.
9695         (c_begin_if_stmt): Prototype new function.
9696         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
9697         * c-parse.in (if_prefix): Use c_begin_if_stmt,
9698         c_begin_while_stmt and c_finish_while_stmt_cond.
9699
9700 2002-01-04  William Cohen  <wcohen@redhat.com>
9701
9702         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
9703         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
9704         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
9705         * config/pa/som.h (ASM_FILE_START): Likewise.
9706
9707 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
9708
9709         * lcm.c: Include df.h.
9710         Add available_transfer_function prototype.
9711         (compute_available): Rework to use iterative dataflow framework.
9712         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
9713         with bb_info in df.h
9714         (available_transfer_function): New function.
9715
9716         * Makefile.in (lcm.o): add df.h to dependencies.
9717
9718 2002-01-04  Richard Henderson  <rth@redhat.com>
9719
9720         * config/alpha/alpha.c (some_operand): Accept HIGH.
9721         (input_operand): Likewise; accept simple references to globals.
9722         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
9723         (alpha_const_double_ok_for_letter_p): Likewise.
9724         (alpha_extra_constraint): Likewise.
9725         (alpha_preferred_reload_class): Likewise.  Do not force
9726         symbolic constants to memory.
9727         (alpha_legitimate_address_p): Accept simple references
9728         to small_symbolic_operand.
9729         (alpha_legitimize_address): New arg scratch.  Be prepared to be
9730         called when no_new_pseudos.  Emit simple symbolic references.
9731         Split integers into low, high, and rest.
9732         (alpha_expand_mov): Use alpha_legitimize_address.
9733         (some_small_symbolic_mem_operand): New.
9734         (split_small_symbolic_mem_operand): New.
9735         * config/alpha/alpha-protos.h: Update.
9736         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
9737         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
9738         (EXTRA_CONSTRAINT): Likewise.
9739         (PREFERRED_RELOAD_CLASS): Likewise.
9740         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
9741         (PREDICATE_CODES): Update.
9742         * config/alpha/alpha.md: New post-reload splitters to convert
9743         simplfied symbolic operands to the form that references $29.
9744         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
9745         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
9746
9747 2002-01-03  Richard Henderson  <rth@redhat.com>
9748
9749         * local-alloc.c (function_invariant_p): Update commentary.
9750
9751 2002-01-04  H.J. Lu <hjl@gnu.org>
9752
9753         * toplev.c (rest_of_compilation): Fix a typo when calling
9754         cleanup_cfg.
9755
9756 2002-01-03  Kazu Hirata  <kazu@hxi.com>
9757
9758         * c-common.c: Fix formatting.
9759         * diagnostic.c: Likewise.
9760         * doloop.c: Likewise.
9761         * dwarf2out.c: Likewise.
9762
9763 2002-01-03  Kazu Hirata  <kazu@hxi.com>
9764
9765         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
9766         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
9767
9768 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9769
9770         * cpperror.c: Update comments and copyright.
9771         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
9772         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
9773
9774 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9775
9776         * collect2.c (main): Use strcmp when testing for "-shared".
9777
9778 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9779
9780         * cppmacro.c: Don't include intl.h.  Update comments.
9781         (new_number_token): Allocate enough buffer for 64-bit unsigned
9782         integers; update prototype.
9783         * cppmain.c: Update comments.
9784
9785 2002-01-03  William Cohen  <wcohen@redhat.com>
9786
9787         * function.h (struct function): Add profile.
9788         (current_function_profile): New.
9789         doc/extend.texi: Update documentation.
9790         * final.c (final_start_function): Use current_function_profile
9791         instead of profile_flag.
9792         (profile_after_prologue): Likewise.
9793         * function.c (expand_function_start): Likewise.
9794         (expand_function_start): Likewise.
9795         * config/alpha/alpha.c (direct_call_operand):
9796         (alpha_does_function_need_gp): Likewise.
9797         (alpha_expand_prologue): Likewise.
9798         * config/arm/arm.c (arm_expand_prologue): Likewise.
9799         thumb_expand_prologue: Likewise.
9800         * config/d30v/d30v.c (d30v_stack_info): Likewise.
9801         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
9802         (fr30_expand_prologue): Likewise.
9803         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
9804         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
9805         * config/i386/i386.h (FINALIZE_PIC): Likewise.
9806         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
9807         * config/i960/i960.c (i960_output_function_prologue): Likewise.
9808         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
9809         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
9810         (m32r_expand_prologue): Likewise.
9811         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
9812         (m88k_expand_prologue): Likewise.
9813         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
9814         * config/mips/mips.c (compute_frame_size): Likewise.
9815         (mips_expand_prologue): Likewise.
9816         (mips_can_use_return_insn): Likewise.
9817         * config/pa/elf.h (ASM_FILE_START): Likewise.
9818         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
9819         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
9820         * config/pa/som.h (ASM_FILE_START): Likewise.
9821         * config/romp/romp.c (romp_using_r14): Likewise.
9822         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
9823         (rs6000_stack_info): Likewise.
9824         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9825         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
9826         * config/v850/v850.c (compute_register_save_size): Likewise.
9827
9828 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
9829
9830         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
9831         gen_lowpart_common fails, use gen_lowpart_SUBREG.
9832
9833 2002-01-03  Turly O'Connor  <turly@apple.com>
9834
9835         * darwin.c (machopic_output_possible_stub_label): Don't generate
9836         stub routines for pseudo-stubs which we've just defined.
9837
9838 2002-01-03  Kazu Hirata  <kazu@hxi.com>
9839
9840         * builtins.c: Fix formatting.
9841         * c-typeck.c: Likewise.
9842         * combine.c: Likewise.
9843         * expr.c: Likewise.
9844         * loop.c: Likewise.
9845
9846 2002-01-03  Andreas Schwab  <schwab@suse.de>
9847
9848         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
9849         and return true if _cpp_push_next_buffer pushed a new include
9850         file.
9851         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
9852         _cpp_pop_file_buffer did not push a new file.
9853         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
9854
9855 2002-01-02  Eric Christopher  <echristo@redhat.com>
9856
9857         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
9858         FIND_REG_INC_NOTE call. Update copyright.
9859         * loop.c (canonicalize_condition): Ditto.
9860         * reorg.c (delete_scheduled_jump): Ditto.
9861
9862 2002-01-03  Kazu Hirata  <kazu@hxi.com>
9863
9864         * gcse.c: Fix formatting.
9865
9866 2002-01-03  Graham Stott  <grahams@redhat.com>
9867
9868         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
9869         forward defs for struct tags rtx_def, union_tree, rtvec_def
9870         also output corresponding typedefs for rtx, tree, and rtvec.
9871
9872         * system.h: Move forward defs for struct tags rtx_def, union_tree,
9873         rtvec_def along with corresponding typedefs for rtx, tree, and
9874         rtvec to config.h, hconfig.h, tconfig.h.
9875
9876 2002-01-03  Graham Stott  <grahams@redhat.com>
9877
9878         * tree.h: Update copyright date.
9879         (IS_EXPR_CODE_CLASS): Add parenthesis.
9880         (TREE_SET_CODE): Add whitespace.
9881         (TREE_CHECK): Add parenthesis.
9882         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
9883         (CST_OR_CONSTRUCTOR_CHECK):
9884         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
9885         (TREE_SYMBOL_REFERENCED): Whitespace.
9886         (INT_CST_LT): Likewise.
9887         (INT_CST_LT_UNSIGNED): Likewise.
9888         (tree_real_cst): Unwrap comment.
9889         (tree_string): Likewise.
9890         (tree_complex): Likewise.
9891         (IDENTIFIER_POINTER): correct cast.
9892         (SAVE_EXPR_CONTEXT): Whitespace.
9893         (EXPR_WFL_FILENAME_NODE): Likewise.
9894         (EXPR_WFL_FILENAME): Remove parenthesis.
9895         (DECL_ORIGIN): Add parenthesis.
9896         (DECL_FROM_INLINE): Use NULL_TREE.
9897         (build_int_2): Whitespace.
9898         (build_type_variant): Add parenthesis.
9899
9900         * gcc/jcf-parse.c: Update copyright date.
9901         (yyparse): Constify resource_filename.
9902
9903 2002-01-03  Graham Stott  <grahams@redhat.com>
9904
9905         * rtl.h: Update copyright date.
9906         (RTL_CHECK1): Wrap long line.
9907         (RTL_CHECK2): Likewise.
9908         (RTL_CHECKC1): Wrap long line and whitespace.
9909         (RTL_CHECKC2): Likewise.
9910         (XWINT): Whitespace.
9911         (XINT): Likewise.
9912         (XSTR): Likewise.
9913         (XEXP): Likewise.
9914         (XVEC): Likewise.
9915         (XMODE): Likewise.
9916         (XBITMAP): Likewise.
9917         (XTREE): Likewise.
9918         (XBBDEF): Likewise.
9919         (XTMPL): Likewise.
9920         (X0WINT): Likewise.
9921         (X0INT):Likewise.
9922         (X0UINT): Likewise.
9923         (X0STR): Likewise.
9924         (X0EXP): Likewise.
9925         (X0VEC): Likewise.
9926         (X0MODE): Likewise.
9927         (X0BITMAP): Likewise.
9928         (X0TREE): Likewise.
9929         (X0BBDEF): Likewise.
9930         (X0ADVFLAGS): Likewise.
9931         (X0CSELIB): Likewise.
9932         (X0MEMATTR): Likewise.
9933         (XCWINT): Likewise.
9934         (XCINT): Likewise.
9935         (XCUINT): Likewise.
9936         (XCSTR): Likewise.
9937         (XCEXP): Likewise.
9938         (XCVEC): Likewise.
9939         (XCMODE): Likewise.
9940         (XCBITMAP): Likewise.
9941         (XCTREE): Likewise.
9942         (XCBBDEF): Likewise.
9943         (XCADVFLAGS): Likewise.
9944         (XCCSELIB): Likewise.
9945         (XC2EXP): Likewise.
9946         (INSN_UID): Likewise.
9947         (PREV_INSN): Likewise.
9948         (PATTERN): Likewise.
9949         (INSN_CODE): Likewise.
9950         (PUT_REG_NOTE_KIND): Likewise.
9951         (CODE_LABEL_NUMBER): Likewise.
9952         (NOTE_SOURCE_FILE): Likewise.
9953         (NOTE_BLOCK): Likewise.
9954         (NOTE_EH_HANDLER): Likewise.
9955         (NOTE_RANGE_INFO): Likewise.
9956         (NOTE_LIVE_INFO): Likewise.
9957         (NOTE_BASIC_BLOCK): Likewise.
9958         (NOTE_EXPECTED_VALUE): Likewise.
9959         (NOTE_LINE_NUMBER): Likewise.
9960         (LABEL_NAME): Likewise.
9961         (LABEL_NUSES): Likewise.
9962         (LABEL_ALTERNATE_NAME): Likewise.
9963         (ADDRESSOF_DECL): Likewise.
9964         (JUMP_LABEL): Likewise.
9965         (LABEL_NEXTREF): Likewise.
9966         (REGNO): Likewise.
9967         (ORIGINAL_REGNO: Likewise.
9968         (HARD_REGISTER_NUM_P): Add parenthesis.
9969         (SUBREG_REG): Whitespace.
9970         (SUBREG_BYTE): Likewise.
9971         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
9972         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
9973         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
9974         (ASM_OPERANDS_INPUT_VEC): Likewise.
9975         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
9976         (ASM_OPERANDS_INPUT): Likewise.
9977         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
9978         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
9979         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
9980         (ASM_OPERANDS_INPUT_MODE): Likewise.
9981         (ASM_OPERANDS_SOURCE_FILE): Likewise.
9982         (ASM_OPERANDS_SOURCE_LINE): Likewise.
9983         (MEM_SET_IN_STRUCT_P): Minor reformat.
9984         (TRAP_CONDITION): Whitespace.
9985         (TRAP_CODE): Likewise.
9986         (COND_EXEC_TEST): Likewise.
9987         (COND_EXEC_CODE): Likewise.
9988         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
9989         (PHI_NODE_P): Add parenthesis.
9990         (plus_constant): Whitespace and add parenthesis.
9991
9992 2002-01-03  Kazu Hirata  <kazu@hxi.com>
9993
9994         * config/avr/avr.c: Fix comment typos.
9995         * config/c4x/c4x.md: Likewise.
9996         * config/dsp16xx/dsp16xx.h: Likewise.
9997         * config/dsp16xx/dsp16xx.md: Likewise.
9998         * config/i386/i386.md: Likewise.
9999         * config/ia64/ia64.c: Likewise.
10000         * config/m32r/m32r.h: Likewise.
10001         * config/m68hc11/m68hc11.md: Likewise.
10002         * config/mmix/mmix.c: Likewise.
10003         * config/mn10200/mn10200.c: Likewise.
10004         * config/romp/romp.c: Likewise.
10005         * config/sh/sh.c: Likewise.
10006         * config/stormy16/stormy16.c: Likewise.
10007         * config/stormy16/stormy16.h: Likewise.
10008         * config/stormy16/stormy16.md: Likewise.
10009
10010 2002-01-03  Graham Stott  <grahams@redhat.com>
10011
10012         * loop.h: Update copyright date.
10013         (LOOP_MOVABLES): Fix typo.
10014         (LOOP_REGS): Likewise.
10015         (LOOP_IVS): Likewise.
10016
10017 2002-01-03  Graham Stott  <grahams@redhat.com>
10018
10019         * cppinit.c: Update copyright date.
10020         Don't include output.h
10021         * Makefile.in: Update copyright date.
10022         Update dependency.
10023
10024 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10025
10026         PR c/5226
10027         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
10028         (-pthread) Add to RS/6000 options.
10029
10030 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10031
10032         * except.c: Fix comment typos.
10033         * loop.c: Likewise.
10034         * varasm.c: Likewise.
10035         * doc/tm.texi: Fix a typo.
10036
10037 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
10038
10039         * c-typeck.c (output_init_element): Allow initializing static storage
10040         duration objects with compound literals.
10041
10042 2002-01-02  Richard Henderson  <rth@redhat.com>
10043
10044         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
10045         after abusing it.
10046
10047 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10048
10049         * gcc.c (default_compilers): Const-ify.
10050         * mips-tdump.c (stab_names): Likewise.
10051         * mips-tfile.c (map_coff_types, map_coff_storage,
10052         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
10053         pseudo_ops_t, pseudo_ops): Likewise.
10054         * protoize.c (default_include): Likewise
10055
10056         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
10057         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
10058         Add array size in declaration.
10059         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
10060         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
10061         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
10062         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
10063         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
10064         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
10065         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
10066         emtens, make_nan): Const-ify.
10067         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
10068         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
10069
10070 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10071
10072         * config.gcc (ia64-*-*): Set extra_headers.
10073         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
10074         * config/alpha/t-osf: Remove.
10075         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
10076
10077 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
10078
10079         * config/rs6000/t-aix43: Revert previous change.
10080
10081 2002-01-02  Jason Merrill  <jason@redhat.com>
10082
10083         * c-decl.c (c_expand_body): Call outlining_inline_function when
10084         emitting an inline function out of line.
10085
10086 2002-01-02  Richard Henderson  <rth@redhat.com>
10087
10088         * dwarf2out.c (limbo_die_node): Add created_for member.
10089         (new_die): New argument created_for.  Update all callers.
10090         (mark_limbo_die_list): New.
10091         (dwarf2out_init): Register limbo_die_list as a root.
10092         (dwarf2out_finish): Force insert limbo dies into their function
10093         context.
10094
10095 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
10096
10097         PR c++/5089
10098         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
10099
10100 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10101
10102         * config/h8300/fixunssfsi.c: Update copyright.
10103         Fix comment typos.
10104         Fix formatting.
10105         * config/h8300/h8300.c: Update copyright.
10106         Eliminate warnings.
10107
10108 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10109
10110         * config/romp/romp.c: Fix comment formatting.
10111         * config/romp/romp.h: Likewise.
10112         * config/romp/romp.md: Likewise.
10113         * config/s390/s390.c: Likewise.
10114         * config/stormy16/stormy16.c: Likewise.
10115         * config/stormy16/stormy16.h: Likewise.
10116
10117 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
10118
10119         * c-common.h (genrtl_expr_stmt_value): Declare.
10120         * c-semantics.c (genrtl_goto_stmt): Redirect to...
10121         (genrtl_goto_stmt_value): ... this new function.  Pass new
10122         argument down to expand_expr_stmt_value, taking
10123         TREE_ADDRESSABLE into account.
10124         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
10125         STMT_EXPR as addressable, i.e., one whose result we want.
10126         * expr.c (expand_expr): Don't save expression statement value
10127         of labeled_blocks or loop_exprs.
10128         * stmt.c (expand_expr_stmt): Redirect to...
10129         (expand_expr_stmt_value): ... this new function.  Use new
10130         argument to tell whether to save expression value.
10131         (expand_end_stmt_expr): Reset last_expr_type and
10132         last_expr_value if we don't have either.
10133         * tree-inline.c (declare_return_variable): Mark its use
10134         statement as addressable.
10135         * tree.h: Document new use of TREE_ADDRESSABLE.
10136         (expand_expr_stmt_value): Declare.
10137
10138 2002-01-01  Tom Rix  <trix@redhat.com>
10139
10140         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
10141         rs6000_emit_allocate_stack.
10142
10143 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10144
10145         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
10146         ${srcdir}/ginclude/ to every entry in extra_headers.
10147         * configure: Regenerate.
10148         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
10149         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
10150         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
10151         * ginclude/proto.h: Rename to config/convex/proto.h.
10152
10153 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10154
10155         * attribs.c (handle_vector_size_attribute): Use host_integerp
10156         and tree_int_cst; remove warnings.
10157         * caller-save.c (insert_restore): Add cast to get rid of warning.
10158         (insert_save): Likewise.
10159         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
10160         * regmove.c (find_matches): Add temporary var to kill a warning.
10161
10162 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
10163
10164         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
10165         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
10166         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
10167         (vms-dwarf2eh.o): Add Makefile rule.
10168         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
10169         * config/alpha/vms-dwarf2eh.asm: New file.
10170
10171         * gcc.c (delete_if_ordinary): Delete all versions.
10172
10173 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
10174
10175         * config/mmix/mmix.md: Update FIXME to not mention
10176         define_constants.
10177         (MMIX_rJ_REGNUM): New define_constants constant.
10178         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
10179         "*movdicc_real"): Adjust contraints formatting.
10180         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
10181         for branch prediction.
10182         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
10183         output template.
10184         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
10185         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
10186         number.  Delete related FIXMEs.
10187         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
10188         from number to MMIX_rJ_REGNUM.
10189         (TARGET_MASK_BRANCH_PREDICT): New.
10190         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
10191         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
10192         value.  Add -mbranch-predict and -mno-branch-predict.
10193         (TARGET_VERSION): Drop date.
10194         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
10195         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
10196         for finding out global symbols.
10197         (mmix_asm_output_labelref): Revert condition for global symbol.
10198         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
10199         (mmix_print_operand_punct_valid_p): A '+' is valid.
10200
10201 See ChangeLog.6 for earlier changes.