OSDN Git Service

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