OSDN Git Service

14bd7a7d8fd709171e36fc2b9c84796b40a5e2f4
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * sh.h (current_function_anonymous_args): Remove.
4         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
5         of current_function_varargs and current_function_stdarg is set.
6         * sh.c (sh_expand_prologue): Check current_function_varargs /
7         current_function_stdarg / TARGET_SH5 instead of
8         current_function_anonymous_args.
9
10         * sh64.h (TARGET_VERSION): Define.
11
12 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
13
14         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
15         VRSAVE_REGNO on TARGET_ALTIVEC.
16
17 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
18
19         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
20         bits of SImode const_int.
21         (includes_rshift_p): Likewise.
22         (print_operand): Call mask_operand and mask64_operand with correct
23         mode. 
24         (rs6000_output_function_epilogue): Pad traceback table to word.
25         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
26         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
27         mask64_operand with correct mode.
28         (FUNCTION_ARG_REGNO_P): Correct parentheses.
29
30 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
31
32         PR debug/4461
33         * varasm.c (get_pool_constant_mark): New.
34         * rtl.h (get_pool_constant_mark): Add prototype.
35         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
36         be represented if it has not been output.
37
38 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
39
40         * combine.c (do_SUBST): Sanity check substitutions of
41         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
42         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
43         CONST_INT into its operand.
44         (known_cond): Likewise, for ZERO_EXTEND.
45         * simplify-rtx.c (simplify_unary_operation): Fix condition to
46         allow for simplification of wide modes.  Reject CONST_INTs in
47         ZERO_EXTEND when their actual mode is not given.
48
49 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
50
51         * c-decl.c (pushdecl): If no global declaration is found for an
52         extern declaration in block scope, try a limbo one.
53
54 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
55
56         PR c++/4401
57         * c-common.c (pointer_int_sum): Moved from...
58         * c-typeck.c (pointer_int_sum): ...here.
59         * c-common.h (pointer_int_sum): Add prototype.
60
61 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
62
63         PR c++/5713
64         * c-decl.c (duplicate_decls): Return 0 if issued error about
65         redeclaration.
66
67 2002-02-20  Roger Sayle  <roger@eyesopen.com>
68             Jakub Jelinek  <jakub@redhat.com>
69
70         PR c/4389
71         * tree.c (host_integerp): Ensure that the constant integer is
72         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
73         when pos is zero or non-zero respectively.  Clarify comment.
74         * c-format.c (check_format_info_recurse): Fix host_integerp
75         usage; the pos argument should be zero when assigning to a
76         signed HOST_WIDE_INT.
77
78 2002-02-20  Richard Henderson  <rth@redhat.com>
79
80         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
81         of the operand, rather than assuming TImode.
82         (ix86_expand_binop_builtin): Cope with commutative patterns
83         using nonimmediate_operand for both operands.
84         (ix86_expand_timode_binop_builtin): Likewise.
85         (ix86_expand_store_builtin): Validate operand 1.
86         (ix86_expand_unop1_builtin): Likewise.
87
88 2002-02-20  Philip Blundell  <philb@gnu.org>
89         
90         PR 5705
91         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
92
93 2002-02-20  Richard Henderson  <rth@redhat.com>
94
95         PR c/5615
96         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
97
98 2002-02-20  Tom Tromey  <tromey@redhat.com>
99
100         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
101         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
102         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
103         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
104         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
105         unconditionally.
106
107 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
108
109         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
110           for (const_int 0) in X not just INTVAL.
111
112 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
113
114         * doc/extend.texi: Avoid or reduce overfull hboxes.
115
116 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
117
118         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
119         operations if the field does not start at a mode boundary.
120
121 2001-02-20      Joel Sherrill <joel@OARcorp.com>
122
123         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
124         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
125         Also done for -Acpu and -Amachine.
126
127 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
128
129         * cppinit.c (init_dependency_output): Take deps output file
130         from -o if none given with -MF.  Suppress normal output.
131         * gcc.c (cpp_unique_options): Have -M and -MM imply -E. 
132         * doc/cpp.texi, doc/invoke.texi: Update.
133
134 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
135
136         * toplev.c (output_quoted_string): Write unprintable
137         characters with octal escapes.
138
139 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
140
141         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
142         really_call_used[VRSAVE_REGNO] if not Altivec.
143
144 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
145         
146         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
147         MODE_MASK.
148         (constant_pool_expr_1): Fix formatting.
149         (rs6000_legitimize_reload_address): Likewise.
150
151 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
152
153         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
154         now that we have one.
155
156 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
157
158         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
159         end of first block of bitfields (which was only seven bits);
160         rename dummy to unused_1; remove comment which is no longer true.
161
162 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
163
164         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
165
166 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
167
168         PR 5399
169         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
170         if generating PIC.
171
172         PR 5054
173         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
174         arm_is_longcall_p rather than inspecting call-type cookie
175         directly.
176         (call_value_insn) [TARGET_THUMB]: Likewise.
177
178 2002-02-19  Graham Stott  <grahams@redhat.com>
179
180         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
181
182 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
183
184         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
185         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
186         (FP_SAVE_INLINE): Delete.
187
188         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
189         * config/rs6000/eabi.asm: Remove ABI save restore routines.
190         * config/rs6000/t-ppccomm: Build crtsavres.o.
191         * config/rs6000/crtsavres.asm: New file.
192
193 2002-02-19  Philip Blundell  <philb@gnu.org>
194
195         * config/arm/arm.c (use_return_insn): Don't reject interrupt
196         functions.
197         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
198         (output_return_instruction): Allow interrupt functions to return with
199         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
200         (arm_expand_prologue): Subtract 4 before stacking LR in an
201         interrupt function.
202
203 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
204
205         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
206         decl, not just FUNCTION_DECL.
207         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
208         (arm_assemble_integer): Likewise.
209         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
210         marked local.
211         
212 2002-02-19  matthew green  <mrg@eterna.com.au>
213
214         * config.gcc (sparc-*-netbsdelf*): Enable target.
215         (sparc64-*-netbsd*): New target.
216         * config/sparc/netbsd-elf.h: New file.
217         * config/sparc/t-netbsd64: New file.
218
219 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
220
221         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
222
223 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
224
225         * doc/invoke.texi: explicitly list the style guidelines that
226         -Weffc++ checks for.
227
228 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
229
230         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
231
232 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
233
234         PR other/5718
235         * gcc.c (cpp_unique_options): Treat -o as indicating object file
236         only if not -E.  If -E, pass -o through to the preprocessor.
237
238 2002-02-19  Kazu Hirata  <kazu@hxi.com>
239
240         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
241         register number with an appropriate macro.
242
243 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
244
245         * doc/rtl.texi (Constants): Close @code tag.
246
247 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
248
249         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
250         ("mmx_uavgv4hi3"): Same.
251         ("pmulhrwv4hi3"): Same.
252
253         * tree-inline.c (walk_tree): Handle vectors.
254
255         * c-common.c (constant_expression_warning): Handle vectors.
256         (overflow_warning): Same.
257
258         * sched-deps.c (sched_analyze_2): Handle vectors.
259
260         * rtlanal.c (rtx_unstable_p): Handle vectors.
261         (rtx_varies_p): Same.
262         (count_occurrences): Same.
263         (regs_set_between_p): Same.
264         (modified_between_p): Same.
265         (modified_in_p): Same.
266         (volatile_insn_p): Same.
267         (volatile_refs_p): Same.
268         (side_effects_p): Same.
269         (may_trap_p): Same.
270         (inequality_comparisons_p): Same.
271         (replace_regs): Same.
272         (computed_jump_p_1): Same.
273
274         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
275         argument.
276         (inner_mode_array): New.
277         (copy_rtx): Handle vectors.
278         (copy_most_rtx): Same.
279         (rtx_equal_p): Same.
280         (get_mode_alignment): Adjust for vectors.
281
282         * resource.c (mark_referenced_resources): Handle vectors.
283         (mark_set_resources): Same.
284
285         * reload1.c (eliminate_regs): Handle vectors.
286         (elimination_effects): Same.
287         (scan_paradoxical_subregs): Same.
288
289         * reload.c (subst_reg_equivs): Handle vectors.
290
291         * regrename.c (scan_rtx): Handle vectors.
292
293         * regclass.c (reg_scan_mark_refs): Handle vectors.
294
295         * recog.c (find_single_use_1): Handle vectors.
296
297         * local-alloc.c (equiv_init_varies_p): Handle vectors.
298         (contains_replace_regs): Same.
299         (memref_referenced_p): Same.
300
301         * integrate.c (copy_rtx_and_substitute): Handle vectors.
302         (subst_constants): Same.
303
304         * genattrtab.c (attr_copy_rtx): Handle vectors.
305         (encode_units_mask): Same.
306         (clear_struct_flag): Same.
307         (count_sub_rtxs): Same.
308
309         * gcse.c (want_to_gcse_p): Handle vectors.
310         (oprs_unchanged_p): Same.
311         (hash_expr_1): Same.
312         (oprs_not_set_p): Same.
313         (expr_killed_p): Same.
314         (compute_transp): Same.
315         (store_ops_ok): Same.
316
317         * function.c (purge_addressof_1): Do not allow paradoxical subregs
318         of vectors.
319         (fixup_var_refs_1): Same.
320         (instantiate_virtual_regs_1): Same.
321
322         * fold-const.c (operand_equal_p): Handle vectors.
323         (fold): Same.
324         (rtl_expr_nonnegative_p): Same.
325
326         * flow.c (mark_used_regs): Handle vectors.
327
328         * df.c (df_uses_record): Handle vectors.
329
330         * cselib.c (cselib_subst_to_values): Handle vectors.
331         (cselib_mem_conflict_p): Same.
332         (hash_rtx): Same.
333
334         * cse.c (canon_reg): Handle vectors.
335         (fold_rt): Same.
336         (cse_process_notes): Same.
337         (count_reg_usage): Same.
338         (canon_hash): Same.
339
340         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
341
342         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
343
344         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
345         (gen_rtx): Handle CONST_VECTOR.
346         (gen_const_vector_0): New.
347         (copy_rtx_if_shared): CONST_VECTORs can be shared.
348         (reset_used_flags): Same.
349         (copy_insn_1): Same.
350         (initializer_constant_valid_p): Handle VECTOR_CST.
351
352         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
353
354         * doc/rtl.texi (Constants): Document const_vector.
355         (CONST0_RTX): Update for vectors.
356         (RTL sharing): Same.
357
358         * print-tree.c (print_node): Add case for VECTOR_CST.
359
360         * tree.h (TREE_VECTOR_CST_ELTS): New.
361         (struct tree_vector): New.
362         (union tree_node): Add vector node.
363         (build_vector): Add prototype.
364
365         * tree.def (VECTOR_CST): New.
366
367         * tree.c (build_vector): New.
368
369         * expmed.c (make_tree): Handle CONST_VECTOR.
370
371         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
372         (CONST_VECTOR_ELT): New.
373         (CONST_VECTOR_NUNITS): New.
374
375         * machmode.h (GET_MODE_INNER): New.
376         (DEF_MACHMODE): Accept 8th arg.
377
378         * machmode.def: Add 8th argument for vector inner mode.
379         Add inner vector modes for vectors.
380
381         * rtl.def (VEC_CONST): Remove.
382         (CONST_VECTOR): New.
383
384         * expr.c (clear_storage): Allow vectors.
385         (is_zeros_p): Handle VECTOR_CST.
386
387         * varasm.c (output_constant_pool): Handle vectors.
388         (rtx_const): Add veclo and vechi fields.
389         (kind): Add RTX_VECTOR.
390         (decode_rtx_const): Add case for vector.
391
392         * config/rs6000/rs6000-protos.h: Add zero_constant.
393         
394         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
395         constants.  Force easy vector constants into memory.
396         (easy_vector_constant): New.
397         (emit_easy_vector_constant): New.
398         (rs6000_legitimize_reload_address): Do not generate bad reloads on
399         darwin.
400
401         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
402         instruction does.
403         ("altivec_lvxl"): Same.
404         (altivec_lvebx): Same.
405         (altivec_lvehx): Same.
406         (altivec_lvewx): Same.
407         ("*movv4si_const0"): New.
408         ("*movv4sf_const0"): New.
409         ("*movv8hi_const0"): New.
410         ("*movv16qi_const0"): New.
411
412 2002-02-18  Kazu Hirata  <kazu@hxi.com>
413
414         * config/h8300/h8300.c (notice_update_cc): Use
415         cc_status.value2.
416
417 2002-02-18  Kazu Hirata  <kazu@hxi.com>
418
419         * config/h8300/h8300.md (divmod patterns): Change the
420         constraints for operands[1] to register_operand.
421
422 2002-02-18  Kazu Hirata  <kazu@hxi.com>
423
424         * config/h8300/h8300-protos.h: Remove the prototype for
425         p_operand.
426         * config/h8300/h8300.c (p_operand): Remove.
427         * config/h8300/h8300.md: Replace p_operand with
428         const_int_operand.
429
430 2002-02-18 Philip Blundell <pb@nexus.co.uk>
431
432         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
433         comment.
434         (output_return_instruction): Allow use of LDR to unstack
435         return addresss even for interrupt handlers or when
436         interworking.  If compiling for ARMv5, use interworking-safe
437         return instructions by default.  Remove duplicated code and
438         lengthy "strcat" sequences.
439
440 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
441
442         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
443         (LINK_EH_SPEC): Define.
444         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
445
446 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
447
448         * config/s390/s390.c (s390_emit_prologue): Do not set the
449         frame_related flag for call-clobbered registers.
450
451 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
452
453         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
454         (construct_container): Fix handling of SSE operands.
455         (ix86_expand_builtin): Fix handling of 64bit pointers.
456         (mmx_maskmovq_rex): New pattern.
457
458 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
459
460         * regrename.c (kill_set_value): Handle subregs properly.
461
462 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
463
464         * objc/objc-act.c (handle_impent): Remove leading '*'
465         from objc_class_name. 
466
467 2002-02-17  Richard Henderson  <rth@redhat.com>
468
469         * config/alpha/alpha.c (some_small_symbolic_operand,
470         some_small_symbolic_operand_1, split_small_symbolic_operand,
471         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
472         Handle small SYMBOL_REFs anywhere, not just inside memories.
473         * config/alpha/alpha-protos.h: Update.
474         * config/alpha/alpha.h (PREDICATE_CODES): Update.
475         * config/alpha/alpha.md (small symbolic operand splitter): Update.
476
477 2002-02-17  Roland McGrath  <roland@frob.com>
478
479         * config.gcc (powerpc-*-gnu-gnualtivec*,
480         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
481         * config/rs6000/gnu.h: New file.
482         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
483         Grok "gnu" in rs6000_abi_name.
484         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
485         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
486         Grok -mcall-gnu analogous to -mcall-linux et al.
487         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
488         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
489         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
490
491 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
492
493         PR c/3444:
494         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
495         shortening.
496
497 2002-02-17  Philipp Thomas  <pthomas@suse.de>
498
499         * config/cris/cris.h: Undefine STARTFILE_SPEC and
500         ENDFILE_SPEC before (re)defining them.
501
502 2002-02-17  Kazu Hirata  <kazu@hxi.com>
503
504         * config/h8300/h8300.c: Fix formatting.
505         * config/h8300/h8300.h: Likewise.
506
507 2002-02-17  Philipp Thomas  <pthomas@suse.de>
508
509         * doc/tm.texi: Explain why empty strings should not be
510         marked for translation.
511
512 2002-02-17  Philipp Thomas  <pthomas@suse.de>
513
514         * final.c (output_operand_lossage): Changed to accept
515         printf style arguments. Change calls where necessary.
516         * output.h (output_operand_lossage): Change declaration
517         accordingly. Update copyright.
518         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
519         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
520         Update copyright date where necessary.
521         
522         * config/i386/i386.c (print_operand): Likewise. Remove use of
523         sprintf.
524
525         * config/cris/cris.c (cris_operand_lossage): Likewise.
526         Rename parameter so that exgettext recognizes it as
527         translatable message.
528         (LOSE_AND_RETURN): Rename parameter to msgid.
529
530 2002-02-17  Kazu Hirata  <kazu@hxi.com>
531
532         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
533         hard coded register number with an appropriate macro.
534         (HARD_REGNO_MODE_OK): Likewise.
535         (ARG_POINTER_REGNUM): Likewise.
536         (STATIC_CHAIN_REGNUM): Likewise.
537         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
538         * config/h8300/h8300.md (define_constants): Define more
539         register numbers.
540
541 2002-02-17  Philipp Thomas  <pthomas@suse.de>
542
543         * config/i386/i386.h: Don't mark empty strings for translation.
544
545 2002-02-16  H.J. Lu <hjl@gnu.org>
546
547         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
548
549 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
550
551         * cppinit.c (merge_include_chains): Check for brack being
552         NULL before attempting to merge it with qtail.
553
554 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
555
556         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
557         DBX_DEBUG.
558
559 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
560
561         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
562
563 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
564
565         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
566         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
567         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
568
569 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
570
571         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
572         now only if !TARGET_FIX.
573         (*movsi_nt_vms_fix): New pattern.
574
575 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
576
577         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
578         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
579         (alpha_sa_mask, alpha_sa_size): Reflect above change.
580         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
581         (alpha_start_function, alpha_expand_epilogue): Likewise.
582         (unicosmk_gen_dsib): Likewise.
583
584 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
585
586         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
587
588 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
589
590         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away, 
591         check_and_change_labels, s390_final_chunkify): Delete.
592         (s390_split_branches, s390_chunkify_pool): New functions.
593         (s390_function_prologue): Call them.
594         
595         * config/s390/s390.h (S390_REL_MAX): Delete.
596         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
597
598         * config/s390/s390.md (cjump, icjump, jump): Fix length 
599         attribute calculation.
600
601
602 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
603
604         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
605         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
606
607 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
608
609         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
610         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
611         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
612
613 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
614
615         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
616
617 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
618
619         * reload.c (find_dummy_reload): Check that an output register
620         is valid for its mode.
621
622 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
623
624         * combine.c (known_cond): After replacing the REG of a SUBREG, try
625         to simplify it.
626
627         * function.c (assign_parms): Demote promoted argument passed by
628         transparent reference.
629
630 2001-02-14      Joel Sherrill <joel@OARcorp.com>
631
632         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
633         -Acpu() and -Amachine() to eliminate warnings.
634
635 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
636
637         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
638
639 2002-02-14  Kazu Hirata  <kazu@hxi.com>
640
641         * config/h8300/h8300-protos.h: Update the prototype for
642         const_costs.
643         * config/h8300/h8300.c (const_costs): Treat SET as a little
644         more expensive operation.
645         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
646         reference to const_costs.
647
648 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
649
650         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
651
652 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
653
654         PR c/5503:
655         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
656         use arguments from newtype.
657
658 2002-02-13  Eric Christopher  <echristo@redhat.com>
659
660         * config/mips/mips.c (override_options): Add check for march/mipsX
661         on the same command line. Fix error message in cpu processing.
662         Remove architecture and ISA checks.
663
664 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
665
666         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
667
668         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
669
670 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
671
672         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
673         alternatives.
674         ("*movv8hi_internal1"): Same.
675         ("*movv16qi_internal1"): Same.
676         ("*movv4sf_internal1"): Same.
677
678         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
679         not push_reload for altivec modes.
680
681 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
682
683         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
684         all RTEMS targets including removal of #includes from config/*/rtems*.h
685         file and adding them to tm_file setting. Added xm_defines=POSIX to
686         many targets.
687         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
688         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
689         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
690         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
691         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
692         config/m68k/rtemself.h: Ditto.
693         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
694         config/mips/rtems64.h: Ditto.
695         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
696         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
697         Ditto.
698         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
699         config/sparc/rtemself.h: Ditto.
700         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
701         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
702         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
703         more like arm-elf.
704         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
705         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
706         target made more similar to i386-elf.
707         * config/i386/t-rtems-i386: Added soft float support and multilibs.
708         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
709         be similar to config/m68k/t-m68kelf.
710         * gthr-rtems.h: Encapsulate with extern "C" for C++.
711
712 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
713
714         * regmove.c (kill_value): Handle subregs.
715
716 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
717
718         * i386.md (mul patterns): Allow memory operand to be first;
719         add expanders where needed; fix constraints.
720         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
721         Allow memory operand to be the first.
722
723         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
724         operands.
725
726 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
727
728         PR c/5681:
729         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
730         GET_MODE (x).
731
732 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
733
734         PR optimization/5547:
735         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
736         all valid IA-32 address modes involving non-scaled %ebx and
737         GOT/GOTOFF as displacement.
738
739 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
740
741         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
742         after emitting ltorg insns.
743
744         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
745         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
746         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
747         *abssf2): Fix "op_type" attribute.
748
749 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
750
751         * mkconfig.sh: Avoid using a subshell redirect.
752         ($output.T): Change to $(output)T.
753         (ENABLE_NLS): Remove unneeded undef.
754
755         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
756         * config/alpha/x-vms (libsubdir): Define.
757
758         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
759         register frame procedures. Optimize retrieving context.
760
761         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
762         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
763         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
764
765 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
766
767         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
768         Make same change as for find_base_value.
769
770 2002-02-13  Kazu Hirata  <kazu@hxi.com>
771
772         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
773         of QImode and SImode.
774
775 2002-02-13  Kazu Hirata  <kazu@hxi.com>
776
777         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
778         length computation of movsi.
779         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
780
781 2002-02-13  Kazu Hirata  <kazu@hxi.com>
782
783         * config/h8300/h8300.md (subqi3): Tighten the predicate for
784         operands[2] to register_operand.
785
786 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
787
788         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
789
790 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
791
792         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
793         for altivec_lvx* and altivec_stvx*.
794         ("*movv4si_internal"): Add constraint for loading from GPRs.
795         ("*movv8hi_internal1"): Same.
796         ("*movv16qi_internal1"): Same.
797         ("*movv4sf_internal1"): Same.
798
799         * config/rs6000/rs6000.c (altivec_register_operand): New.
800
801         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
802         altivec_register_operand.
803
804 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
805
806         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
807         handle SYMBOL_REF.
808
809 2002-02-13  Stan Shebs  <shebs@apple.com>
810
811         * c-typeck.c (digest_init): Handle vectors.
812         (really_start_incremental_init): Same.
813         (pop_init_level): Same.
814         (process_init_element): Same.
815
816         * varasm.c (output_constant): Same.
817
818         * expr.c (clear_storage): Same.
819         (store_constructor): Same.
820
821 2002-02-12  Eric Christopher  <echristo@redhat.com>
822
823         * explow.c (hard_function_value): Add comment explaining
824         signed/unsigned comparison.
825
826 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
827
828         * jump.c (never_reached_warning): Add finish argument.
829         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
830         real insn after end.
831         * rtl.h (never_reached_warning): Adjust prototype.
832         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
833         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
834         never_reached_warning.
835
836 2002-02-12  Graham Stott  <grahams@redhat.com>
837
838         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
839
840 2002-02-12  Kazu Hirata  <kazu@hxi.com>
841
842         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
843         logical shifts on H8/300.
844         (shift_alg_si): Improve several shifts on H8/300.
845         (get_shift_alg): Likewise.
846
847 2002-02-12  Graham Stott  <grahams@redhat.com>
848
849         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
850
851 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
852
853         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
854         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
855
856 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
857
858         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
859         non-CONST_INT through default_assemble_integer.
860         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
861         <case 8>: Abort for CONST_DOUBLE.
862
863 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
864
865         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
866         is specified.
867         * config/pa/pa-linux.h (LIB_SPEC): Delete.
868         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
869
870 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
871
872         * config/stormy16/stormy16.md (zero_extendqihi2): New.
873
874 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
875
876         * regrename.c (regrename_optimize): Don't accept a
877         part-clobbered register if the replaced register is not part
878         clobbered.
879
880         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
881         take padding into account when computing the argument value.
882
883         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
884
885         * combine.c (try_combine): Apply substitutions in
886         CALL_INSN_FUNCTION_USAGE too.
887
888 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
889
890         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
891         __builtin_altivec_abs*.
892         (bdesc_abs): New.
893
894         * config/rs6000/rs6000.h (rs6000_builtins): Add
895         ALTIVEC_BUILTIN_ABS*.
896
897         * config/rs6000/altivec.h: Use const char for builtins expecting
898         literals.
899         (vec_abs): New versions for C and C++.
900         (vec_abss): Same.
901
902 2002-02-10  Kazu Hirata  <kazu@hxi.com>
903
904         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
905         using Pmode.
906
907 2002-02-10  Kazu Hirata  <kazu@hxi.com>
908
909         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
910         constant definition from h8300.md.
911         (FRAME_POINTER_REGNUM): Likewise.
912         * config/h8300/h8300.md (define_constants): Add FP_REG.
913
914 2002-02-10  Kazu Hirata  <kazu@hxi.com>
915
916         * config/h8300/h8300.c (print_operand): Remove redundant code.
917
918 2002-02-10  Kazu Hirata  <kazu@hxi.com>
919
920         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
921         * config/h8300/h8300.c (byte_reg): Make it static.
922
923 2002-02-10  Richard Henderson  <rth@redhat.com>
924
925         PR c/5623
926         * c-typeck.c (incomplete_type_error): Handle flexible array members.
927
928 2002-02-10  Richard Henderson  <rth@redhat.com>
929
930         PR c++/5624
931         * tree.c (append_random_chars): Don't abort if main_input_filename
932         does not exist.
933
934 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
935
936         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
937
938 2002-02-10  Kazu Hirata  <kazu@hxi.com>
939
940         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
941         (pushhi1): Likewise.
942
943 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
944
945         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
946         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
947
948 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
949
950         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
951         remove MASK_VIS.
952         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
953
954 2002-02-09  Kazu Hirata  <kazu@hxi.com>
955
956         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
957         a half of an SImode register on H8/300.
958
959 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
960
961         * i386.md (movdi_2): Add missing '!'.
962
963 2002-02-09  Kazu Hirata  <kazu@hxi.com>
964
965         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
966         definitions.
967
968 2002-02-09  Kazu Hirata  <kazu@hxi.com>
969
970         * config/h8300/h8300.md (length): Correct the distance valid
971         for the short branch.
972
973 2002-02-09  Kazu Hirata  <kazu@hxi.com>
974
975         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
976
977 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
978
979         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
980         registers in SImode.
981         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
982         part-clobbered.
983
984         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
985         patch.
986
987         Contribute sh64-elf.
988         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
989         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
990         (sh_cannot_modify_jumps_p): New function.
991         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
992         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
993         (sh_ms_bitfield_layout_p): New function.
994         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
995                     Zack Weinberg  <zack@codesourcery.com>
996         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
997         expand_simple_binop instead of expand_binop.
998         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
999         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
1000         use of .quad and .uaquad.
1001         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
1002         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
1003         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
1004         * config/sh/sh.md (movdi_const, movdi_const_32bit,
1005         movdi_const_16bit): Make sure all CONSTs have modes.
1006         (sym2PIC): Ditto, but by adjusting all callers.
1007         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
1008         if the prologue calls the SHmedia argument decoder or register
1009         saver.
1010         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
1011         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
1012         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
1013         (sh_expand_epilogue): Don't emit USE of return target register.
1014         (prepare_move_operands): Legitimize DImode PIC addresses.
1015         (sh_media_register_for_return): Skip tr0, used to initialize the
1016         PIC register.
1017         (sh_expand_prologue): Remove explicit USE of return register.
1018         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
1019         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
1020         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
1021         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
1022         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
1023         EXTRA_CONSTRAINT_T.
1024         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
1025         (MOVI_SHORI_BASE_OPERAND_P): New.
1026         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
1027         (EXTRA_CONSTRAINT_T): Define in terms of them.
1028         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
1029         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
1030         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
1031         alternatives supporting TARGET_REGS.
1032         (UNSPEC_GOTPLT): New constant.
1033         (movdi split): Move incrementing of LABEL_NUSES...
1034         (movdi_const, movdi_const_32bit): Here.  Use
1035         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
1036         (movdi_const_16bit): New.
1037         (call, call_value) [flag_pic]: Use GOTPLT.
1038         (call_pop, call_value_pop): New expands.
1039         (call_pop_compact, call_pop_rettramp): New insns.
1040         (call_value_pop_compact, call_value_pop_rettramp): New insns.
1041         (sibcall) [flag_pic]: Use GOT.
1042         (builtint_setjmp_receiver): Remove bogus, unused expand.
1043         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
1044         (*pt, *ptb, ptrel): New insns.
1045         (sym2GOT): Handle DImode GOT.
1046         (sym2GOTPLT, symGOTPLT2reg): New expands.
1047         (sym2PIC): New expand.
1048         (shcompact_return_tramp): Use GOTPLT to return trampoline.
1049         (shcompact_return_tramp_i): Use return register explicitly.
1050         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
1051         disable flag_reorder_blocks.
1052         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
1053         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
1054         clobbers, for clarity.
1055         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
1056         restoring of r0 in macl as MAYBE_DEAD.
1057         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
1058         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
1059         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
1060         alter_subreg all over.
1061         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
1062         reload, instead of emitting instructions that would require
1063         reloading.
1064         (casesi_load_media): Add missing modes.
1065         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
1066         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
1067         as used if the argument decoder is called.
1068         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
1069         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
1070         Pmode, then extend it to DImode if necessary.
1071         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
1072         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
1073         constants in FPU-enabled SHmedia, let them be loaded from memory.
1074         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
1075         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
1076         Adjust whitespace in assembly output templates.
1077         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
1078         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
1079         mode of if_then_else.
1080         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
1081         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
1082         sh.h.
1083         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
1084                     Joern Rennecke <amylaar@redhat.com>
1085         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
1086         (SUBTARGET_CPP_PTR_SPEC): New.
1087         (SUBTARGET_CPP_SPEC): Remove.
1088         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
1089         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
1090         Fix typo in previous checkin.
1091         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
1092         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
1093         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
1094                     Alexandre Oliva  <aoliva@redhat.com>
1095         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
1096         what single FP register can hold for SHmedia target.
1097         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
1098                     Alexandre Oliva  <aoliva@redhat.com>
1099         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
1100         Do not split into SUBREG.
1101         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
1102         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
1103         and added new functions as specified in SH5 ABI r9.
1104         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
1105         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
1106         8-byte boundary.
1107         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
1108         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
1109         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
1110         and consttable_window_ends.
1111         2001-06-03  Graham Stott  <grahams@redhat,com>
1112         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
1113         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
1114         * config/sh/sh.c (print_operand): Handle floating-point pair,
1115         vector and matrix registers.
1116         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
1117         vector modes into account.
1118         * config/sh/sh.md (movv2sf): Split move between registers into
1119         movdf.
1120         (movv4sf, movv16sf): Introduce insns that get split only after
1121         reload.
1122         * config/sh/shmedia.h: Fix Copyright dates.
1123         * config/sh/ushmedia.h: Likewise.  Move loop counter
1124         declarations into conditionals that uses them.
1125         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
1126         loop boundary.
1127         * config/sh/sshmedia.h: Fix Copyright dates.
1128         (sh_media_PUTCFG): Fix constraints.
1129         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
1130         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
1131         ptrmemfunc_vbit_in_delta for SH5.
1132         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
1133         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
1134         * invoke.texi: Likewise.
1135         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
1136         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
1137         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
1138         GCC_pop_shmedia_regs_nofpu): New global symbols.
1139         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
1140         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
1141         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
1142         compact function with nonlocal labels.
1143         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
1144         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
1145         (initial_elimination_offset): Account for their stack space.
1146         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
1147         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
1148         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
1149         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
1150         least one of the operands to be a register.
1151         (movv2sf): Likewise.  Renamed to movv2sf_i.
1152         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
1153         prepare_move_operands() before emitting SHmedia insns.
1154         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
1155         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
1156         Don't save nor initialize r12.  Don't mis-align the stack.
1157         Pad the code with a nop.
1158         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
1159         stack.
1160         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
1161         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
1162         [__SHMEDIA__]: Implement.
1163         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
1164         * config/sh/sh.md: Set latency of `pt' closer to reality.
1165         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
1166         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
1167         Set move, load and store type attributes.
1168         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
1169         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
1170         profiling.
1171         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
1172         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
1173         * config/sh/sh.c (sh_media_register_for_return): New function.
1174         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
1175         branch-target register.
1176         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
1177         * config/sh/sh.md (return_media_i): Use any call-clobbered
1178         branch-target register.
1179         (return_media): If r18 wasn't copied in the prologue, copy it
1180         here.
1181         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
1182         Clear class FP0_REGS.
1183         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
1184         from elf.h.
1185         2001-03-08  DJ Delorie  <dj@redhat.com>
1186         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
1187         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
1188         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
1189         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
1190         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
1191         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
1192         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
1193         return value correctly for call_cookie.
1194         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
1195         * config/sh/crt1.asm (start): Modified so as to call
1196         ___setup_argv_and_call_main.
1197         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
1198         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
1199         SHmedia mode.
1200         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
1201         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
1202         (STRIP_NAME_ENCODING): Use it.
1203         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
1204         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
1205         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
1206         prepare_scc_operands().
1207         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
1208         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
1209         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
1210         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
1211         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
1212         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
1213         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
1214         used in shcompact_incoming_args.
1215         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
1216         change.
1217         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
1218         mode.
1219         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
1220         Adjust accordingly.
1221         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1222         Simplify.  Adjust.  Add sanity check.
1223         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
1224         FPU_SINGLE_BIT.
1225         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
1226         TARGET_SHCOMPACT.
1227         (udivsi3, divsi3): Use them.
1228         (force_mode_for_call): New insn.
1229         (call, call_value, sibcall_value): Emit it before SHcompact
1230         calls.
1231         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
1232         * config/sh/sh.md (call, call_value, sibcall): Make sure the
1233         call cookie is non-NULL before taking its value.
1234         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
1235         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
1236         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
1237         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
1238         block.
1239         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
1240         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
1241         temporary for stack adjusts.  Use MACL and MACH to pass
1242         arguments to shcompact_incoming_args.
1243         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
1244         clobber r1.
1245         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
1246         (nested_trampoline): Load static chain address into r1.
1247         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
1248         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
1249         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
1250         fp_arith_reg_operand().
1251         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
1252         * config/sh/sh.md (casesi): Sign-extend the first two operands,
1253         and use signed compares for them.
1254         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
1255         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
1256         ones properly aligned.
1257         (find_barrier): Account for extra alignment needed for 8-byte wide
1258         constants.
1259         (machine_dependent_reorg): Require a label for the second 4-byte
1260         constant after an 8-byte one.
1261         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
1262         change.
1263         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
1264         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
1265         last_float when switching float modes.
1266         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
1267         auto-increment for general-purpose registers.
1268         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
1269         result.
1270         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
1271         for stack adjust.
1272         * config/sh/sh.c (sh_builtin_saveregs): Support using all
1273         registers for varargs.
1274         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
1275         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
1276         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
1277         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
1278         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
1279         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
1280         call_cookie accordingly.
1281         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
1282         (SHCOMPACT_BYREF): Likewise.
1283         (SHCOMPACT_FORCE_ON_STACK): New macro.
1284         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
1285         (sh_builtin_saveregs): Likewise.
1286         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
1287         shcompact_incoming_args): Use new shift values.  Support
1288         sequences of consecutive and non-consecutive pushes/pops.
1289         * config/sh/sh.md (return): Don't explicitly use PR_REG.
1290         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
1291         * config/sh/sh.h (TEXT_SECTION): Define.
1292         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
1293         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
1294         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
1295         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
1296         return values on FPU-enabled SHmedia.
1297         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
1298         FPU-enabled SHmedia.
1299         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
1300         value is returned in a non-FP reg and is not returned by
1301         reference.
1302         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
1303         jump_ind.
1304         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
1305         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
1306         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
1307         quad-aligned to be passed by callee-copy reference.
1308         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
1309         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
1310         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
1311         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
1312         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
1313         copying low-numbered FP regs to r7 and r8.
1314         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
1315         FP regs to general-purpose regs only if the copy was passed on the
1316         stack.
1317         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
1318         copying FP reg to r9.
1319         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
1320         copy FP regs to general-purpose regs only in outgoing calls.
1321         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
1322         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
1323         HOST_WIDE_INT.
1324         * config/sh/sh.h (struct sh_args): Document all fields.
1325         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
1326         passed partially on the stack should not consider making
1327         sibcalls.
1328         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
1329         stack_regs only for incoming calls.  When passing FP args,
1330         make sure there are FP regs available before modifying
1331         call_cookie.
1332         (SHCOMPACT_BYREF): Pass double args in general-purpose
1333         registers by reference.
1334         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
1335         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
1336         attempt to generate sibcalls if the caller got any arguments
1337         by reference.
1338         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
1339         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
1340         to 8-byte boundaries.
1341         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
1342         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
1343         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
1344         stored in the stack.
1345         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
1346         for the offsets to have the ISA bit set.
1347         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
1348         invocation.  Use beq instead of bgt to mark end of sequence of
1349         loads.
1350         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
1351         bgt to mark end of sequence of stores.
1352         * config/sh/sh.c (arith_operand): Don't check whether
1353         CONST_OK_FOR_J for now.
1354         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
1355         instead of long for conversion.
1356         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
1357         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
1358         before passing it to fprintf.
1359         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
1360         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
1361         Call set_fpscr before reading/writing SR.
1362         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
1363         Call set_fpscr.
1364         * config/sh/lib1funcs.asm: Add `.align 2' directives before
1365         SHmedia code.
1366         (FMOVD_WORKS): Define on SH5 with FPU.
1367         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
1368         setting.
1369         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
1370         _fpscr_values.
1371         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
1372         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
1373         address.
1374         (ia_main_table): Ditto.
1375         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
1376         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
1377         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
1378         the definitions from sh.h.
1379         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
1380         TARGET_SH5.
1381         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
1382         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
1383         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
1384         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
1385         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
1386         Increment LABEL_NUSES.
1387
1388         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
1389         TARGET_SH5.
1390         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
1391         defined.
1392         * config/sh/elf.h (SIZE_TYPE): Likewise.
1393         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
1394         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
1395         shcompact_incoming_args): Load switch table addresses using
1396         datalabel.
1397         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
1398         (NO_BUILTIN_SIZE_TYPE): Define.
1399         (SIZE_TYPE): Don't define.
1400         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
1401         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
1402         definition of __SH5__=32 for -m5-compact-nofpu.
1403         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
1404         ADDR_DIFF_VEC.
1405         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
1406         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
1407         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
1408         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
1409         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
1410         (INSN_LENGTH_ALIGNMENT): Likewise.
1411         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
1412         * config/sh/sh.md (call, call_value, sibcall): Simplify
1413         copying of non-branch-target register.
1414         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
1415         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
1416         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
1417         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
1418         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
1419         floating-point values as structs.
1420         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
1421         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
1422         general-purpose register.
1423         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
1424         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
1425         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
1426         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
1427         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
1428         (ENCODE_SECTION_INFO): Enclose variables and constants in
1429         DATALABEL unspecs.
1430         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
1431         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
1432         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
1433         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
1434         only for LABEL_REFs.  For SYMBOL_REFs, prepend
1435         SH_DATALABEL_ENCODING to the symbol name.
1436         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
1437         convert_mode().
1438         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
1439         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
1440         UNSPEC_DATALABEL.
1441         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
1442         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
1443         (DATALABEL_REF_P): Don't require CONST.
1444         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
1445         REL label.
1446         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
1447         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
1448         right.
1449         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
1450         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
1451         Use shallow_copy_rtx and PUT_MODE to change the mode of
1452         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
1453         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
1454         on SHmedia using GENERAL_REGs.
1455         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
1456         bltu_media_i): Fix reversion of conditions.
1457         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
1458         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
1459         * config/sh/sh.c (output_far_jump): Save r13 in macl.
1460         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
1461         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
1462         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
1463         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
1464         (GCC_nested_trampoline): Likewise.
1465         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
1466         * config/sh/sh.c (gen_datalabel_ref): Define.
1467         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
1468         (INITIALIZE_TRAMPOLINE): Likewise.
1469         (TRAMPOLINE_ADJUST_ADDRESS): Define.
1470         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
1471         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
1472         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
1473         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
1474         (ic_invalidate): Adjust for SH5.
1475         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
1476         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
1477         _nested_trampoline.
1478         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
1479         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
1480         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
1481         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
1482         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
1483         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
1484         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
1485         * config/sh/sh.c (target_reg_operand): Match only target-branch
1486         registers and pseudos that aren't virtual registers.
1487         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
1488         Copy operands that don't match target_reg_operand to pseudos.
1489         (call_media, call_value_media, sibcall_media): Use
1490         target_reg_operand instead of target_operand.
1491         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
1492         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
1493         * config/sh/sh.c (target_reg_operand): Match hardware registers
1494         other than branch-target registers.
1495         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
1496         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
1497         (fpscr_values) [SH5 == 32]: Define.
1498         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
1499         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
1500         Handle function addresses coming in SUBREGs.
1501         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
1502         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
1503         shcompact_return_trampoline): Use datalabel where appropriate.
1504         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
1505         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
1506         general-purpose register to copy one branch-target register to
1507         another.
1508         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
1509         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
1510         SYMBOL_REFs with VOIDmode.
1511         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
1512         bltu_media_i): New insns.
1513         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
1514         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
1515         (INIT_CUMULATIVE_ARGS): Likewise.
1516         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
1517         * machmode.def (V16SFmode): New mode.
1518         * c-common.c (type_for_mode): Support V2SF and V16SF.
1519         * tree.c (build_common_tree_nodes_2): Likewise.
1520         * tree.h (tree_index): Likewise.
1521         * calls.c (emit_call_1): Take args_so_far.  Adjust all
1522         callers.  Introduce CALL_POPS_ARGS.
1523         * tm.texi (CALL_POPS_ARGS): Document.
1524         * config/sh/crt1.asm: Implement in SHmedia mode.
1525         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
1526         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
1527         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
1528         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
1529         Implement divsi and udivsi in SHmedia mode.  Introduce
1530         SHcompact trampolines.
1531         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
1532         only in SHmedia64.
1533         (regno_reg_class): Rewrite.
1534         (fp_reg_names): Remove.
1535         (sh_register_names, sh_additional_register_names): New.
1536         (print_operand): Added `u'.  Support SUBREGs in addresses.
1537         Add parentheses around shifted CONSTs.
1538         (output_file_start): Output .mode and .abi directives.
1539         (shiftcosts, addsubcosts, multcosts): Adjust.
1540         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
1541         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
1542         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
1543         bytes, not registers.  Take into account the need for the
1544         SHcompact incoming args trampoline.  Adjust all callers.
1545         (sh_expand_prologue): Take stack_regs into account.  Call
1546         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
1547         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
1548         stack aligned as per SH5 ABI.
1549         (sh_builtin_saveregs): Support SH5 ABI.
1550         (sh_build_va_list, sh_va_start): Likewise.
1551         (initial_elimination_offset): Take alignment into account.
1552         Compute location of PR according to the SH5 stack frame.
1553         (arith_reg_operand): Reject branch-target registers.
1554         (shmedia_6bit_operand): New.
1555         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
1556         (target_reg_operand): Match DImode only.  Accept SUBREGs.
1557         (target_operand): New.
1558         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
1559         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
1560         SIBCALL_REGS for SHmedia.
1561         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
1562         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
1563         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
1564         (TARGET_SWITCHES): New SH5 flags.
1565         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
1566         VALID_REGISTER_P to disable unsupported registers.
1567         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
1568         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
1569         (FUNCTION_ARG_PADDING): Define.
1570         (FASTEST_ALIGNMENT): Adjust.
1571         (SH_REGISTER_NAMES_INITIALIZER): New.
1572         (sh_register_names): Declare.
1573         (DEBUG_REGISTER_NAMES): Define.
1574         (REGISTER_NAMES): Define based on sh_register_names.
1575         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
1576         (sh_additional_register_names): Declare.
1577         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
1578         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
1579         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
1580         (REGISTER_NATURAL_MODE): Define.
1581         (FIRST_PSEUDO_REGISTER): Adjust.
1582         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1583         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
1584         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
1585         (VECTOR_MODE_SUPPORTED_P): Define.
1586         (REG_CLASS_CONTENTS): Adjust.
1587         (SMALL_REGISTER_CLASSES): Adjust.
1588         (REG_ALLOC_ORDER): Adjust.
1589         (INDEX_REG_CLASS): Adjust.
1590         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
1591         (CONST_OK_FOR_LETTER_P): Adjust.
1592         (PREFERRED_RELOAD_CLASS): Adjust.
1593         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
1594         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
1595         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
1596         (FIRST_FP_PARM_REG): Adjust.
1597         (CALL_POPS_ARGS): Define.
1598         (FUNCTION_ARG_REGNO_P): Adjust.
1599         (struct sh_args): New fields.
1600         (GET_SH_ARG_CLASS): Adjust.
1601         (INIT_CUMULATIVE_ARGS): Adjust.
1602         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
1603         (FUNCTION_ARG_ADVANCE): Adjust.
1604         (FUNCTION_ARG): Adjust.
1605         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
1606         (FUNCTION_ARG_CALLEE_COPIES): Define.
1607         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
1608         (STRICT_ARGUMENT_NAMING): Define.
1609         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
1610         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
1611         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
1612         (SETUP_INCOMING_VARARGS): Adjust.
1613         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
1614         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
1615         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
1616         (SUBREG_OK_FOR_INDEX_P): Adjust.
1617         (EXTRA_CONSTRAINT_S): Update.
1618         (EXTRA_CONSTRAINT_T): New.
1619         (EXTRA_CONSTRAINT): Adjust.
1620         (GO_IF_LEGITIMATE_INDEX): Adjust.
1621         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
1622         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
1623         (MOVE_MAX): Adjust.
1624         (MAX_MOVE_MAX): Define.
1625         (Pmode): Adjust.
1626         (CONST_COSTS): Adjust.
1627         (REGISTER_MOVE_COST): Adjust.
1628         (BRANCH_COST): Adjust.
1629         (TEXT_SECTION_ASM_OP): Adjust.
1630         (DBX_REGISTER_NUMBER): Adjust.
1631         (ASM_OUTPUT_DOUBLE_INT): New.
1632         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
1633         (PREDICATE_CODES): Adjust.
1634         (PROMOTE_MODE): Adjust.
1635         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
1636         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
1637         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
1638         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
1639         (DR0_REG, DR2_REG, DR4_REG): Renumber.
1640         (TR0_REG, TR1_REG, TR2_REG): New.
1641         (XD0_REG): Renumber.
1642         (UNSPEC_COMPACT_ARGS): New.
1643         (type): Added pt and ptabs.
1644         (length): Default to 4 on SHmedia.  Default pt length to 12
1645         and     20 on SHmedia32 and SHmedia64, respectively.
1646         (pt): New function unit.
1647         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
1648         Add whitespace between operands of SHmedia instructions.
1649         (movdicc): Fix.
1650         (adddi3_media, addsi3_media): Adjust constraints.
1651         (subsi3) [SHmedia]: Force operand 1 into a register.
1652         (udivsi3_i1_media, udivsi3_i4_media): New.
1653         (udivsi3): Support SHmedia.
1654         (divsi3_i1_media, divsi3_i4_media): New.
1655         (divsi3): Support SHmedia.
1656         (anddi3, iordi3, xordi3): Adjust constraints.
1657         (zero_extendhidi2, zero_extendqidi2): New.
1658         (extendsidi2, extendhidi2, extendqidi2): New.
1659         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
1660         (pop_e, pop_fpul, pop_4): Likewise.
1661         (movsi_media): Support FP and BT registers.
1662         (movsi_media_nofpu): New.  Adjust splits to DImode.
1663         (lduw, ldub): Renamed to zero_extend* above.
1664         (movqi_media): Fix typo.
1665         (movdi_media): Support FP and BT registers.
1666         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
1667         (movdi_const_32bit): New.
1668         (shori_media): Require immediate operand.  Use `u' for output.
1669         (movdf_media, movsf_media): Simplified.
1670         (movdf_media_nofpu, movsf_media_nofpu): New.
1671         (movdf, movsf): Adjust
1672         (movv2sf, movv2sf, movv16sf): New.
1673         (beq_media, beq_media_i): Adjust constraints.  Don't use
1674         scratch BT register.
1675         (bne_media, bne_media_i): Likewise.
1676         (bgt_media, bgt_media_i): Likewise.
1677         (bge_media, bge_media_i): Likewise.
1678         (bgtu_media, bgtu_media_i): Likewise.
1679         (bgeu_media, bgeu_media_i): Likewise.
1680         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
1681         bunordered): Emit jump insn.  Force operands to registers when
1682         needed.
1683         (jump_media, jump): Simplify.
1684         (call_compact, call_compact_rettramp): New.
1685         (call_value_compact, call_value_compact_rettramp): New.
1686         (call_media, call_value_media): Simplify.
1687         (sibcall_compact, sibcall_media): New.
1688         (call, call_value): Adjust for SHmedia and SHcompact.
1689         (sibcall, sibcall_value, untyped_call): Likewise.
1690         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
1691         (indirect_jump): Adjust for SHmedia.
1692         (casesi_jump_media): New.
1693         (nop): Re-enable for SHmedia.
1694         (call_site): Restrict to SH1.
1695         (casesi): Adjust for SHmedia.
1696         (casesi_shift_media, casesi_load_media): New.
1697         (return): Explicitly use PR register.  Call return trampoline
1698         on SHcompact.
1699         (return_i): Explicitly use PR register.
1700         (shcompact_return_tramp, shcompact_return_tramp_i): New.
1701         (return_media): Adjust.
1702         (shcompact_incoming_args): New.
1703         (epilogue): Adjust.
1704         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
1705         (movstrsi): Disable on SH5.
1706         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
1707         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
1708         (subsf3, subsf3_media): Likewise.
1709         (mulsf3, mulsf3_media, mac_media): Likewise.
1710         (divsf3, divsf3_media): Likewise.
1711         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
1712         (floatsisf2, fux_truncsfsi2): Likewise.
1713         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
1714         constraints.
1715         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
1716         (cmpunsf_media, cmpsf): Likewise.
1717         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
1718         (abssf2, abssf2_media): Likewise.
1719         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
1720         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
1721         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
1722         (floatsidf2, fix_truncdfsi2): Likewise.
1723         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
1724         constraints.
1725         (cmpeqdf_media, cmpgtdf_media): Likewise.
1726         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
1727         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
1728         (absdf2, absdf2_media): Likewise.
1729         (extendsfdf2, extendsfdf2_media): Likewise.
1730         (truncsfdf2, truncsfdf2_media): Likewise.
1731         * config/sh/sh64.h: New file.
1732         * config/sh/t-sh64: New file.
1733         * config/sh/shmedia.h: New file.
1734         * config/sh/ushmedia.h: New file.
1735         * config/sh/sshmedia.h: New file.
1736         * configure.in: Added sh64-*-elf.
1737         * configure: Rebuilt.
1738         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
1739         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
1740         (reg_class_from_letter): Use `b' for TARGET_REGS.
1741         (print_operand): Support `%M', `%m', `AND' and
1742         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
1743         (andcosts): Adjust for SHmedia.
1744         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
1745         Likewise.
1746         (target_reg_operand): New function.
1747         * config/sh/sh-protos.h (target_reg_operand): Declare.
1748         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
1749         FP registers on SH5.
1750         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
1751         on SH4.
1752         (TARGET_REGISTER_P): New macro.
1753         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
1754         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
1755         (EXTRA_CONSTRAINT_S): New macro.
1756         (EXTRA_CONSTRAINT): Adjust.
1757         (FLOAT_TYPE_SIZE): Define to 32.
1758         (Pmode): DImode on SHmedia.
1759         (CONST_COSTS): Adjust for SHmedia literals.
1760         (PREDICATE_CODES): Added target_reg_operand.
1761         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
1762         * config/sh/sh.md: Remove all attrs from SHmedia insns.
1763         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
1764         (cmpdi): Accept SHmedia.
1765         (movdicc_false, movdicc_true): New insns.
1766         (movdicc): New expand.
1767         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
1768         no_new_pseudos.
1769         (addsi3_media): Match `S' constraint.
1770         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
1771         (negdi2): Expand for SHmedia.
1772         (one_cmpldi2): New expand.
1773         (zero_extendsidi2): Change from expand to insn.
1774         (extendsidi2): Add constraints.
1775         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
1776         LD/ST address.  Fix SI immediate loading split.
1777         (movhi_media, movqi_media, lduw, ldub): New insns.
1778         (movhi, movqi): Accept SHmedia.
1779         (shori_media, movdi_media): Relax input constraints.  Split
1780         symbolic constants.
1781         (movdf_media, movsf_media): New insn.  New split to movdi.
1782         (movdf, movsf): Match on SHmedia.
1783         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
1784         bgeu_media): New insns and splits.  New insns with `_i' suffix.
1785         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
1786         (bunordered): New expand.
1787         (jump_compact): Renamed from `jump'.
1788         (jump_media): New insn.
1789         (jump): New expand.
1790         (call_media, call_value_media): New insns.
1791         (call, call_value): Adjust.
1792         (indirect_jump_compact): Renamed from `indirect_jump'.
1793         (indirect_jump_media): New insn.
1794         (indirect_jump): New expand.
1795         (untyped_call, return): Accept SHmedia.
1796         (return_media): New insn.
1797         (prologue, epilogue, blockage): Accept SHmedia.
1798         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
1799         (sunordered): New expand.
1800         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
1801         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
1802         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
1803         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
1804         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
1805         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
1806         abssf2_media): New insns.
1807         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
1808         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
1809         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
1810         floatdidf2, floatsidf2_media, fix_truncdfdi2,
1811         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
1812         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
1813         absdf2_media): New insns.
1814         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
1815         (extendsfdf2_media, truncdfsf2_media): New insns.
1816         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
1817         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
1818         * config/sh/sh.h (CONST_OK_FOR_J): Document.
1819         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
1820         * config/sh/sh.md (adddi3): New expand.
1821         (adddi3_media, adddi3z_media): New insns.
1822         (adddi3_compact): Renamed from adddi3.
1823         (addsi3_media): Use add.l r63 to add constant zero.
1824         (subdi3): New expand.
1825         (subdi3_media): New insn.
1826         (subdi3_compact): Renamed from subdi3.
1827         (mulsidi3): New expand.
1828         (mulsidi3_media): New insn.
1829         (mulsidi3_compact): Renamed from mulsidi3.
1830         (umulsidi3): New expand.
1831         (umulsidi3_media): New insn.
1832         (umulsidi3_compact): Renamed from umulsidi3.
1833         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
1834         (ashlsi3, ashrsi3, lshrsi3): Use them.
1835         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
1836         (ashldi3, ashrdi3, lshrdi3): Use them.
1837         (zero_extendsidi2): New expand.
1838         (extendsidi2): New insn.
1839         (movsi_media): New insn.  Split to movdi to load constants.
1840         (movsi): Enable for shmedia.
1841         (movdi_media): New insn.  Use shori_media to load wide constants.
1842         (short_media): New insn.
1843         (movdi): Enable for shmedia.
1844         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
1845         * config/sh/sh.h (CPP_SPEC): Added `m5'.
1846         (SUBTARGET_CPP_SPEC): Added `!m5'.
1847         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
1848         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
1849         to all other SH variants.
1850         (TARGET_DEFAULT): Set to SH1_BIT.
1851         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
1852         (BITS_PER_WORD): Raise to 64 on shmedia.
1853         (MAX_BITS_PER_WORD): Change to 64.
1854         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
1855         (INT_TYPE_SIZE): Keep as 32.
1856         (UNITS_PER_WORD): Raise to 8 on shmedia.
1857         (MIN_UNITS_PER_WORD): Keep as 4.
1858         (POINTER_SIZE): Raise to 64 on shmedia.
1859         (CONST_OK_FOR_J): New macro.
1860         (CONST_OK_FOR_LETTER_P): Use it.
1861         (processor_type): Add PROCESSOR_SH5.
1862         * config/sh/sh.md: Conditionalize all expands, insns and
1863         splits to TARGET_SH1.
1864         (cpu): Added sh5.
1865         (addsi3_compact): Renamed from...
1866         (addsi3): Now an expand.
1867         (addsi3_media, subsi3_media): New insns.
1868         (subsi3): Don't negate constants with SHmedia.
1869
1870         * hooks.c: New file.
1871         * hooks.h: New file.
1872         * Makefile.in (HOOKS_H): New.
1873         (TARGET_DEF_H): Added $(HOOKS_H).
1874         (OBJS): Added hooks.o.
1875         (cfgcleanup.o, bb-reorder.o): Added target.h.
1876         (hooks.o): Added dependencies.
1877         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
1878         (TARGET_INITIALIZER): this.
1879         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
1880         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
1881         * bb-reorder.c: Include target.h.
1882         (reorder_basic_blocks): Skip if cannot modify jumps.
1883         * cfgcleanup.c: Include target.h.
1884         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
1885
1886 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
1887
1888         * config/mips/mips.md (casesi_internal, casesi_internal_di):
1889         Protect jump delay slot instructions with .set noreorder and
1890         .set nomacro.
1891
1892 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
1893
1894         * config/mips/mips.md (casesi_internal_di): Calculate
1895         the index into the target offset table correctly.
1896
1897 2002-02-08  Richard Henderson  <rth@redhat.com>
1898
1899         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
1900         * final.c (output_addr_const): Accept and discard SUBREG.
1901         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
1902         mark them unknown instead.
1903         (simplify_subtraction): Handle RTX_UNKNOWN.
1904         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
1905
1906 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
1907
1908         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
1909
1910 2002-02-08  Richard Henderson  <rth@redhat.com>
1911
1912         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
1913
1914 2002-02-08  Andreas Jaeger  <aj@suse.de>
1915
1916         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
1917         * config/i386/t-linux64: New file.
1918
1919 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
1920
1921         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
1922         * c-parse.in (compstmt): Clear last_expr_type.
1923
1924 2002-02-07  Richard Henderson  <rth@redhat.com>
1925
1926         * loop.c (strength_reduce): Sink final_value when not
1927         eliminating a biv.
1928
1929 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
1930
1931         * config/sparc/freebsd.h: Fix mismatched spec {.
1932
1933 2002-02-07  Richard Henderson  <rth@redhat.com>
1934
1935         * cfgrtl.c: Include recog.h and insn-config.h.
1936         (keep_with_call_p): Fix general_operand invocation.
1937         * Makefile.in (cfgrtl.o): Update dependencies.
1938
1939 2002-02-07  Kazu Hirata  <kazu@hxi.com>
1940
1941         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
1942         comment.  Accept HImode only if TARGET_H8300.
1943
1944 2002-02-07  Eric Christopher  <echristo@redhat.com>
1945
1946         * config/mips/crtn.asm: Cleanup #ifdefs.
1947
1948 2002-02-07  Eric Christopher  <echristo@redhat.com>
1949
1950         * config/mips/crti.asm: Add changes for mips16. mips16 uses
1951         register 7 as RA instead of $31.
1952         * config/mips/crtn.asm: Ditto.
1953         * config/mips/mips.c (mips_move_2words): Add case for
1954         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
1955         (compute_frame_size): Fix typo.
1956         (save_restore_insns): Ditto.  Make documentation about using
1957         register $7 as return register more precise.
1958         (mips_expand_epilogue): Fix comment. Add code to work around not
1959         being able to add to the stack pointer directly.
1960         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
1961         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
1962         epilogue.
1963
1964 2002-02-07  Tom Rix  <trix@redhat.com>
1965
1966         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
1967         immediates in ldu and stdu DS opcode field.
1968         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
1969         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
1970         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
1971
1972 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
1973
1974         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
1975         offset for stack bias.
1976
1977 2002-02-07  H.J. Lu <hjl@gnu.org>
1978
1979         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
1980
1981 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
1982
1983         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
1984
1985 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
1986
1987         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
1988         * i386.c (x86_order_regs_for_local_alloc): New global function.
1989         * i386.h (REG_ALLOC_ORDER): CLeanup.
1990         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
1991
1992 2002-02-07  Richard Henderson  <rth@redhat.com>
1993
1994         PR optimization/2463
1995         * alias.c (find_base_value): Recall base values for fixed hard regs.
1996         * loop.c (loop_regs_update): Don't use single_set on non-insns.
1997
1998 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
1999
2000         * config/mips/mips.md (define_delay) [mips16]: Adjust required
2001         length.
2002
2003 2002-02-06  Richard Henderson  <rth@redhat.com>
2004
2005         PR c/5609
2006         * stmt.c (resolve_operand_name_1): Take more care with mixed
2007         named and unnamed operands.
2008
2009 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
2010             Jan Hubicka  <jh@suse.cz>
2011
2012         * loop.c (remove_constant_addition): Avoid clobbering a shared
2013         CONST expression.
2014
2015 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
2016
2017         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
2018         * config/s390/t-linux64: New file.
2019         * config/s390/libgcc-glibc.ver: New file.
2020
2021 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
2022
2023         * config/s390/linux64.h: Delete file.
2024         * config/s390/s390x.h: New file.
2025         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
2026         as target header file.
2027         * config/s390/linux.h (TARGET_VERSION): Define depending on
2028         DEFAULT_TARGET_64BIT.
2029         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
2030         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
2031         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
2032         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
2033         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
2034         (EXTRA_SPEC): New define.
2035         * config/s390/s390.h (TARGET_VERSION): Define depending on
2036         DEFAULT_TARGET_64BIT.
2037         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
2038
2039 2002-02-06  Jason Merrill  <jason@redhat.com>
2040
2041         * c-decl.c (finish_function): Warn about a non-void function with
2042         no return statement and no abnormal exit.
2043         (current_function_returns_abnormally): New variable.
2044         (start_function): Clear it.
2045         (struct c_language_function): Add returns_abnormally.
2046         (push_c_function_context): Save it.
2047         (pop_c_function_context): Restore it.
2048         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
2049         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
2050         an explicit return type.
2051         * c-tree.h: Declare current_function_returns_abnormally.
2052         (C_FUNCTION_IMPLICIT_INT): New macro.
2053         * c-typeck.c (build_function_call): Set it.
2054         (c_expand_return): Set current_function_returns_value even if the
2055         value is erroneous.
2056
2057 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
2058
2059         PR c/5420:
2060         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
2061         unsafe for reevaluation.
2062
2063 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
2064
2065         PR c/5482:
2066         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
2067         EXPR_STMT, but COMPOUND_STMT, recurse into it.
2068
2069 2002-02-06  Richard Henderson  <rth@redhat.com>
2070
2071         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
2072         be a general_operand.  Dest for function value must be a pseudo.
2073
2074 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
2075
2076         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
2077         as SYMBOL_REFs from the constant pool.
2078
2079 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
2080
2081         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
2082         passed by invisible reference.
2083
2084 2002-02-05  Richard Henderson  <rth@redhat.com>
2085
2086         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
2087
2088 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
2089
2090         Implement using "base addresses" in insn operands as default.
2091         * config/mmix/mmix.c (mmix_conditional_register_usage): if
2092         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
2093         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
2094         used to read the rtx value.
2095         (mmix_target_asm_function_epilogue): Fix spacing.
2096         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
2097         (mmix_legitimate_address): Ditto.
2098         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
2099         should be loaded with a GETA insn.  Don't allocate needless extra
2100         char for nul termination and fix misleading comment.
2101         (mmix_print_operand_address): Handle constants if
2102         TARGET_BASE_ADDRESSES.
2103         (mmix_output_register_setting): Use base addressing if
2104         TARGET_BASE_ADDRESSES and the number of insns is 3.
2105         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
2106         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
2107         to use R as constraint, add LDA to match s.
2108         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
2109         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
2110         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
2111         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
2112         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
2113         order with other fixed registers.
2114         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
2115         other parameter/call-clobbered registers.
2116         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
2117         -mbase-addresses, -mno-base-addresses.
2118         (MMIX Options): Ditto.
2119
2120 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2121
2122         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
2123
2124 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
2125
2126         * config/rs6000/altivec.h: Change elem to _S_elem.
2127
2128 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
2129
2130         * config/netbsd.h (WCHAR_TYPE): Define.
2131         (WCHAR_TYPE_SIZE): Ditto.
2132         (WINT_TYPE): Ditto.
2133         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
2134         (WCHAR_UNSIGNED): Ditto.
2135         (WCHAR_TYPE_SIZE): Ditto.
2136         (WINT_TYPE): Ditto.
2137         * config/arm/netbsd.h: Likewise.
2138         * config/i386/netbsd-elf.h: Likewise.
2139         * config/i386/netbsd.h: Likewise.
2140         * config/m68k/netbsd-elf.h: Likewise.
2141         * config/m68k/netbsd.h: Likewise.
2142         * config/ns32k/netbsd.h: Likewise.
2143         * config/sparc/netbsd.h: Likewise.
2144         * config/vax/netbsd.: Likewise.
2145
2146 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
2147
2148         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
2149         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
2150         (TARGET_INITIALIZER): this.
2151         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
2152         (BITFIELD_NBYTES_LIMITED): Markup fix.
2153         * tree.h (default_ms_bitfield_layout_p): Declare.
2154         (record_layout_info): Added prev_field.
2155         * tree.c (default_ms_bitfield_layout_p): New fn.
2156         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
2157         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
2158         * stor-layout.c: Include target.h.
2159         (start_record_layout): Initialize prev_field.
2160         (place_field): Handle MS bit-field layout, and disregard
2161         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
2162         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
2163         * Makefile.in (stor-layout.o): Adjust dependencies.
2164
2165 2002-02-05  Jason Merrill  <jason@redhat.com>
2166
2167         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
2168
2169 2002-02-05  Andreas Jaeger  <aj@suse.de>
2170
2171         * crtstuff.c: Fix comments.
2172
2173 2002-02-05  Richard Henderson  <rth@redhat.com>
2174
2175         PR fortran/3393
2176         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
2177         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
2178
2179         PR fortran/3392
2180         * config/mips/mips.c (function_arg): Handle TImode.
2181         (function_arg_advance): Likewise.
2182
2183 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
2184
2185         * config/rs6000/altivec.h (vec_step_help): Rename to
2186         __vec_step_help.
2187
2188 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
2189
2190         * config/rs6000/altivec.h: Fix typos.
2191
2192 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
2193
2194         * config/arm/netbsd.h: Correct a comment.
2195
2196 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
2197
2198         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
2199         building void typed builtins.
2200
2201         * config/rs6000/altivec.h (vec_ld*): Fix typos.
2202         (vec_step): Implement for C++.
2203
2204 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2205
2206         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
2207
2208 2002-02-04  Richard Henderson  <rth@redhat.com>
2209
2210         * combine.c (nonzero_bits): Re-introduce special case for
2211         sp/fp/ap wrt REGNO_POINTER_ALIGN.
2212
2213 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
2214
2215         * doc/extend.texi: Warn about unsupported usage of altivec
2216         builtins.
2217
2218         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
2219         (altivec_predicate_*): New.
2220
2221         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
2222         Add C++ version of vec_*() functions.
2223
2224         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
2225         (bdesc_2arg): Remove altivec predicates.
2226         (altivec_expand_builtin): Handle predicates.
2227         (altivec_init_builtins): Handle predicates.
2228         (altivec_expand_predicate_builtin): New.
2229
2230 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2231
2232         * pa.c (DO_FRAME_NOTES): Move forward.
2233         (store_reg): Revise handling of frame notes.
2234         (load_reg): Likewise.
2235         (set_reg_plus_d): Likewise.
2236         (hppa_expand_prologue): Likewise.
2237         (hppa_expand_epilogue): Likewise.
2238
2239 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2240
2241         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
2242
2243 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
2244
2245         PR c/4475, c++/3780:
2246         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
2247         * c-common.h (SWITCH_TYPE): Define.
2248         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
2249         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
2250         Rename spareness variable to sparseness.
2251         (expand_end_case_type): Renamed from expand_end_case, use orig_type
2252         if non-NULL instead of TREE_TYPE (orig_index).
2253         * tree.h (expand_end_case_type): Renamed from expand_end_case.
2254         (expand_end_case): Define using expand_end_case_type.
2255         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
2256         to expand_end_case_type.
2257         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
2258
2259 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2260
2261         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
2262         (BIGGEST_ALIGNMENT): Change to 128.
2263
2264 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2265
2266         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
2267
2268 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2269
2270         * pa.md (call_internal_reg_64bit): Remove unused variable.
2271
2272 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
2273
2274         * config/arm/arm.h (machine_function): Add uses_anonymous_args
2275         field.
2276         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
2277         * config/arm/arm.c (current_function_anonymous_args): Delete,
2278         replace uses with cfun->machine->uses_anonymous_args.
2279         (arm_reorg): Do not reset uses_anonymous_args.
2280
2281         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
2282         any geenral register.
2283
2284 2001-02-04  Bernd Schmidt  <bernds@redhat.com>
2285
2286         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
2287         the entry block.
2288
2289 2002-02-04  Richard Henderson  <rth@redhat.com>
2290
2291         * combine.c (force_to_mode): Remove STACK_BIAS code.
2292         (nonzero_bits): Likewise.  Replace sp/fp special case with
2293         REGNO_POINTER_ALIGN.
2294
2295         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
2296         (HARD_FRAME_POINTER_REGNUM): New.
2297         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
2298         (FIXED_REGS, CALL_USED_REGS): Update.
2299         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
2300         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
2301         (HARD_REGNO_NREGS): Update for SFP.
2302         (STACK_POINTER_OFFSET): Include bias here ...
2303         (FIRST_PARM_OFFSET): ... not here.
2304         (STACK_BIAS): Remove.
2305         (INIT_EXPANDERS): New.
2306         (STARTING_FRAME_OFFSET): Do not include bias.
2307         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
2308         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
2309         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
2310         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
2311         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
2312         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
2313         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
2314         (MUST_SAVE_REGISTER): Likewise.
2315         (sparc_flat_function_prologue): Likewise.
2316         (sparc_flat_function_epilogue): Likewise.
2317         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
2318         (sparc_init_modes): SFP is GENERAL_REGS.
2319         (sparc_builtin_saveregs): SFP does not have bias applied.
2320
2321 2002-02-04  Richard Henderson  <rth@redhat.com>
2322
2323         * config/alpha/alpha.c (current_function_is_thunk): Don't check
2324         current_function_is_thunk.
2325         (alpha_sa_mask): Distinguish between current_function_is_thunk
2326         called from ASM_OUTPUT_MI_THUNK and not.
2327         (alpha_does_function_need_gp): Thunks always need gp.
2328         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
2329         (alpha_output_mi_thunk_osf): New.
2330         * config/alpha/alpha-protos.h: Update.
2331         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
2332
2333 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
2334
2335         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
2336         function types, not when they're taken away.
2337
2338 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
2339
2340         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
2341         CODE_LABEL and jump table when replacing a table jump with a
2342         simple jump.
2343
2344 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
2345
2346         * config/s390/s390-protos.h (legitimize_la_operand,
2347         s390_secondary_input_reload_class, s390_plus_operand,
2348         s390_expand_plus_operand): Add prototypes.
2349
2350         config/s390/s390.c (s390_secondary_input_reload_class,
2351         s390_plus_operand, s390_expand_plus_operand): New functions.
2352
2353         (struct s390_address): New member 'pointer'.
2354         (s390_decompose_address): Compute it.
2355         (legitimate_la_operand_p): Use it.
2356         (legitimize_la_operand): New function.
2357         (movti, movdi, movdf splitters): Call it.
2358
2359         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
2360         (PREDICATE_CODES): Add s390_plus_operand.
2361
2362         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
2363         (la_ccclobber): Allow GENERAL_REGS as output operand.
2364
2365         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
2366         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
2367         (*la_64, *la_31, reload_indi, reload_insi): ... these.
2368
2369 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
2370
2371         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
2372         register names for regular asm () construct.
2373
2374 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
2375
2376         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
2377         registers.
2378
2379 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
2380
2381         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
2382         pat for recog.
2383
2384 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
2385
2386         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
2387         constant pool to be identical by string address and index.
2388
2389 2002-02-04  Anthony Green  <green@redhat.com>
2390
2391         * output.h (SECTION_OVERRIDE): Define.
2392         * varasm.c (named_section): Obey SECTION_OVERRIDE.
2393
2394 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
2395
2396         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
2397         by existing arm*-*-netbsd* (a.out) target.
2398         (ns32k-*-netbsdelf*): Likewise.
2399         (sparc-*-netbsdelf*): Likewise.
2400         (vax-*-netbsdelf*): Likewise.
2401
2402 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
2403
2404         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
2405         headers and libobjc headers.
2406
2407 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
2408
2409         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
2410         (_mingw.h): Remove duplicate include.
2411
2412 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
2413
2414         * config.gcc: Set cpu_type to m68k for 68010, as well.
2415         (m68010-*-netbsdelf*): New...
2416         (m68k*-*-netbsdelf*): ...targets.
2417         * config/m68k/netbsd-elf.h: New file.
2418
2419 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2420
2421         * config/h8300/h8300.c (hand_list): Move inside function_arg.
2422
2423 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2424
2425         * config/h8300/h8300.c (h8_push_ops): Move inside
2426         h8300_init_once.
2427         (h8_pop_ops): Likewise.
2428         (h8_move_ops): Likewise.
2429
2430 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2431
2432         * config/h8300/h8300.c (os_task): Make it static.
2433         (monitor): Likewise.
2434         (pragma_saveall): Likewise.
2435
2436 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
2437
2438         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
2439         constant is a valid sign-extension for Pmode.
2440
2441 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2442
2443         * config/h8300/h8300.c: Fix formatting.
2444
2445 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2446
2447         * config/h8300/h8300.md: Fix formatting.
2448
2449 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2450
2451         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
2452         predicates of operands[1].  Split the patterns for each
2453         processor variant.
2454
2455 2002-02-02  Kazu Hirata  <kazu@hxi.com>
2456
2457         * config/h8300/h8300.md (xor patterns): Tighten the predicates
2458         of operands[1] to register_operand.
2459
2460 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2461
2462         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
2463         * cpphash.c (_cpp_init_hashtable): Similarly.
2464         * cppinit.c (cpp_create_reader): Default the signed_char flag.
2465         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
2466         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
2467         (cpp_handle_option): Handle the new options.
2468         * cpplex.c (cpp_interpret_charconst): Use new flag.
2469         * cpplib.h (struct cpp_options): New member signed_char.
2470         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
2471         (cpp_options): Handle -fsigned-char and -funsigned-char.
2472         (static_specs): Remove signed_char_spec.
2473         (do_spec1): Don't handle %c.
2474         * system.h: Poison SIGNED_CHAR_SPEC.
2475         * tradcif.y (yylex): Use flag_signed_char.
2476         * tradcpp.h (flag_signed_char): New.
2477         * tradcpp.c (flag_signed_char): New.
2478         (main): Handle new command-line options.
2479         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
2480 config:
2481         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
2482         * avr/avr.h: Remove old comments.
2483         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
2484         (CC1_SPEC): Pass -fsigned-char if -mic*.
2485         (SIGNED_CHAR_SPEC): Remove.
2486 doc:
2487         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
2488
2489 2002-02-01  Eric Christopher  <echristo@redhat.com>
2490
2491         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
2492         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
2493         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
2494         (ASM_OUTPUT_REG_POP): Ditto.
2495
2496 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2497
2498         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
2499         patch.
2500
2501 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
2502
2503         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
2504
2505 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
2506
2507         PR c/5304:
2508         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
2509         unconditionally.
2510
2511 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
2512
2513         * cfganal.c: Include tm_p.h.
2514         (keep_with_call_p): Fix the test that determines if a register holds
2515         the return value of a call.
2516
2517 2002-02-01  DJ Delorie  <dj@redhat.com>
2518
2519         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
2520         we are given conflicting registers, switch to the other one we
2521         had allocated for us.
2522         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
2523         as TImode so we know when the "other" register is available.
2524
2525 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
2526
2527         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
2528         sparc/sparc_bi.h.
2529
2530 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
2531
2532         * cfganal.c (keep_with_call_p): New function.
2533         (flow_call_edges_add): Prevent splitting a block between a call and
2534         a single-set instruction that should be kept in the same block.
2535
2536 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2537
2538         * doc/install.texi (avr): Update outdated URL.
2539
2540 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
2541
2542         * config/stormy16/stormy16.md (pushqi): New.
2543         (popqi): New.
2544         (pushhi): New.
2545         (pophi): New.
2546         (movhi): Remove stack operands.
2547         (movqi): Likewise.
2548         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
2549         nonimmediate_nonstack_operand.
2550         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
2551         New.
2552         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
2553         New.
2554
2555 2002-01-31  Jason Merrill  <jason@redhat.com>
2556
2557         * Makefile.in (c-parse.c): Handle .output file.
2558         * objc/Make-lang.in (objc-parse.c): Likewise.
2559
2560 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
2561
2562         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
2563         the -me[lb] option is given.  Don't output the default flag
2564         twice.
2565
2566 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
2567
2568         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
2569         the primary source file; this has not been done yet.
2570         * c-decl.c (c_expand_body): Reset input_filename from
2571         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
2572
2573 2002-01-31  Kazu Hirata  <kazu@hxi.com>
2574
2575         * rtlanal.c (subreg_regno_offset): Do not use
2576         SUBREG_REGNO_OFFSET.
2577         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
2578         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
2579
2580 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
2581
2582         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
2583         version rather than GNATS version in --version output.
2584
2585 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
2586
2587         * ifcvt.c (noce_process_if_block): Make a copy of the destination
2588         when copying back from a temporary.
2589
2590 2002-01-30  Richard Henderson  <rth@redhat.com>
2591
2592         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
2593         and new_dest are the same.
2594
2595 2002-01-30  Richard Henderson  <rth@redhat.com>
2596
2597         PR opt/5076
2598         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
2599         * rtl.c (note_insn_name): Update.
2600         * emit-rtl.c (remove_unnecessary_notes): Kill it.
2601         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
2602         to perform loop rotation.
2603         (expand_exit_loop_top_cond): New.
2604         * tree.h (expand_exit_loop_top_cond): Declare it.
2605         * c-semantics.c (genrtl_while_stmt): Use it.
2606         (genrtl_for_stmt): Likewise.
2607
2608 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
2609
2610         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
2611         arguments to 64-bit boundaries on 64-bit ABIs.
2612
2613 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
2614
2615         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
2616
2617 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
2618
2619         * c-decl.c (grokdeclarator): Handle type being a typedef for an
2620         invalid type.
2621
2622 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
2623
2624         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
2625         * config/sparc/sparc_bi.h: Remove file.
2626         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
2627
2628 2002-01-30  Richard Henderson  <rth@redhat.com>
2629
2630         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
2631
2632 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
2633
2634         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
2635
2636 2002-01-30  Jason Merrill  <jason@redhat.com>
2637
2638         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
2639         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
2640         (reg_save): Use DW_CFA_offset_extended_sf instead.
2641
2642         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
2643
2644 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2645
2646         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
2647         in cselib_lookup.
2648
2649 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
2650
2651         * rs6000.md ("*call_value_local32"): Remove constraints.
2652         ("*call_value_local64"): Same.
2653         ("*call_value_indirect_nonlocal_aix32"): Same.
2654         ("*call_value_nonlocal_aix32"): Same.
2655         ("*call_value_indirect_nonlocal_aix64"): Same.
2656         ("*call_value_nonlocal_aix64"): Same.
2657         ("*call_value_nonlocal_sysv"): Same.
2658
2659 2002-01-29  Richard Henderson  <rth@redhat.com>
2660
2661         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
2662
2663 2002-01-29  Richard Henderson  <rth@redhat.com>
2664
2665         * expr.c (force_operand): Ignore flag_pic for detecting pic
2666         address loads.
2667         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
2668         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
2669         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
2670         instead of open-coded loop.
2671         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
2672         be fixed when in use.
2673
2674 2002-01-29  Richard Henderson  <rth@redhat.com>
2675
2676         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
2677         * sched-rgn.c (propagate_deps): Update them.
2678         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
2679         clobbers list when either gets too long.
2680
2681 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2682
2683         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
2684         and INDEX_REGS the same as GENERAL_REGS.
2685         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2686
2687 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2688
2689         * tree.c (build_nonstandard_integer_type): Correct prototype.
2690
2691 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
2692
2693         * config/s390/s390.md (movstrsico, movstrdix_64,
2694         movstrsix_31): Remove, replace by ...
2695         (movstrdi_short, movstrsi_short, movstrdi_long,
2696         movstrsi_long): ... these.  New.
2697         (movstrdi, movstrsi): Adapt.
2698
2699         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
2700         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
2701         Remove unnecessary CC clobber.
2702         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
2703         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
2704
2705         (divmoddi4): Don't partially initialize TImode register.
2706
2707 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
2708
2709         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
2710
2711 2002-01-29  Richard Henderson  <rth@redhat.com>
2712
2713         * flow.c (print_rtl_and_abort): Remove.
2714         (print_rtl_and_abort_fcn): Remove.
2715         (verify_local_live_at_start): Use dump_bb instead.
2716         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
2717         (verify_wide_reg_1): Return 2 on mode test failure.
2718
2719 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2720
2721         PR c/3325, c/3326, c/2511, c/3347
2722         * c-decl.c (enum_decl_context): Remove BITFIELD.
2723         (grokdeclarator): Take bitfield width as an input.
2724         Ensure bitfields are given the correct type.  Perform
2725         bitfield width validation with build_bitfield_integer_type
2726         rather than waiting for finish_struct.
2727         (grok_typename, grok_typename_in_parm_context, start_decl,
2728         push_parmdecl, grokfield, start_function): Update calls to
2729         grokdeclarator.
2730         (build_bitfield_integer_type): New function.
2731         (finish_struct): Move bitfield validation to grokdeclarator
2732         and build_bitfield_integer_type.
2733         * tree.c (build_nonstandard_integer_type): New function.
2734         * tree.h (build_nonstandard_integer_type): New prototype.
2735 objc:
2736         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
2737
2738 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
2739
2740         PR other/1502:
2741         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
2742         don't ignore unrecognized -W* options.
2743         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
2744         * cpplib.h (cpp_handle_option): Adjust prototype.
2745         * c-decl.c (c_decode_options): Pass 0 as last argument to
2746         cpp_handle_option.
2747
2748         PR c/2896:
2749         * gcc.c (cpp_unique_options): Split from cpp_options.
2750         (cpp_options): Source cpp_unique_options.
2751         (default_compilers): Use cpp_unique_options instead of cpp_options
2752         when used together with cc1_options.
2753         (static_specs): Add cpp_unique_options.
2754         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
2755         when used together with cc1_options.
2756
2757 2002-01-29  Kazu Hirata  <kazu@hxi.com>
2758
2759         * config/h8300/h8300-protos.h: Update the prototype of
2760         output_a_shift.
2761         * config/h8300/h8300.c (output_a_shift): Remove an unused
2762         argument 'insn'.  Remove redundant code.
2763         * config/h8300/h8300.md: Adust to the new prototype of
2764         output_a_shift.
2765
2766 2002-01-29  Kazu Hirata  <kazu@hxi.com>
2767
2768         * config/h8300/h8300-protos.h: Update the prototypes of
2769         emit_a_rotate and expand_a_rotate.
2770         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
2771         first argument to 'enum rtx_code'.
2772         (expand_a_rotate): Likewise.
2773
2774 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2775
2776         * config/h8300/h8300-protos.h: Update the prototype of
2777         output_simode_bld.
2778         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
2779         'log2'.
2780         * config/h8300/h8300.md: Adjust to the new prototype.
2781
2782 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2783
2784         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
2785         redundant code.
2786
2787 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2788
2789         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
2790         is a fixed register before returning pic_offset_table_rtx.
2791         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
2792         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
2793
2794 2002-01-28  Jason Merrill  <jason@redhat.com>
2795
2796         * dwarf2.h: Sync with src version.
2797
2798 2002-01-28  Paul Koning  <pkoning@equallogic.com>
2799
2800         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
2801         BT_FN_VOID_PTR_VAR.
2802         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
2803         * doc/extend.texi (__builtin_prefetch): Update documentation:
2804         first argument is now const void ptr.
2805
2806 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2807
2808         * config/h8300/h8300-protos.h: Remove an unused prototype.
2809
2810 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
2811
2812         * toplev.c (lang_independent_init): Round up identifier size.
2813
2814 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
2815
2816         * config.gcc: Revert previous change.
2817
2818 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
2819
2820         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
2821
2822 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
2823
2824         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
2825         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
2826         other non-elf netbsd config frags.
2827         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
2828         collect2 will does that.
2829         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
2830         shared-lib frobbing will work.
2831
2832 2002-01-28  Kazu Hirata  <kazu@hxi.com>
2833
2834         * config/h8300/h8300.h: Fix formatting.
2835         * config/h8300/h8300.md: Likewise.
2836
2837 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
2838
2839         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
2840         the old, removed AAA_standards fix.
2841         * fixinc/fixincl.x: Rebuilt.
2842
2843 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
2844
2845         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
2846         atexit call in crtbegin, hooked in after call to frame_dummy;
2847         register EH before registering __fini__start.
2848
2849 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
2850
2851         * config/rs6000/altivec.h: Remove spurious semicolons.
2852
2853 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2854
2855         * config/h8300/h8300.md: Replace dead bit extraction patterns
2856         with ones that work.
2857
2858 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2859
2860         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
2861         if not STRICT_ALIGNMENT.
2862         * rtl.h (MEM_ALIGN): Likewise.
2863
2864 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2865
2866         * doc/invoke.texi (-fdump-translation-unit): Revert this
2867         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2868
2869 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2870
2871         * config/h8300/h8300.md (define_constants): New.
2872         (anonymous patterns) Use defined constants appropriately.
2873
2874 2002-01-27  Kazu Hirata  <kazu@hxi.com>
2875
2876         * config/h8300/h8300.c (function_arg): Remove redundant code.
2877
2878 2002-01-26  Richard Henderson  <rth@redhat.com>
2879
2880         * sched-deps.c (reg_pending_uses_head): New.
2881         (reg_pending_barrier): Rename from reg_pending_sets_all.
2882         (find_insn_list): Don't mark inline.
2883         (find_insn_mem_list): Remove.
2884         (add_dependence_list, add_dependence_list_and_free): New.
2885         (flush_pending_lists): Replace only_write param with separate
2886         for_read and for_write parameters.  Update all callers.  Use
2887         add_dependence_list_and_free.
2888         (sched_analyze_1): Do not add reg dependencies here; just set
2889         the pending bits.  Use add_dependence_list.
2890         (sched_analyze_2): Likewise.
2891         (sched_analyze_insn): Replace schedule_barrier_found with
2892         reg_pending_barrier.  Add all dependencies for pending reg
2893         uses, sets, and clobbers.
2894         (sched_analyze): Don't add reg dependencies for calls, just
2895         set pending bits.  Use regs_invalidated_by_call.  Treat
2896         sched_before_next_call as a normal list, not a fake insn.
2897         (init_deps): No funny init for sched_before_next_call.
2898         (free_deps): Free pending mems lists.  Don't zero reg_last.
2899         (init_deps_global): Init reg_pending_uses.
2900         (finish_deps_global): Free it.
2901         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
2902         (find_insn_mem_list): Remove.
2903         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
2904         (propagate_deps): Use them.  Zero temp mem lists.
2905
2906 2002-01-26  Richard Henderson  <rth@redhat.com>
2907
2908         * Makefile.in (CRTSTUFF_CFLAGS): New.
2909         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
2910         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
2911         crtstuff.c instead of alpha assembly version.
2912         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
2913         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
2914         not FORCE_{INIT,FINI}_SECTION_ALIGN.
2915         (__do_global_dtors_aux): Mark used.
2916         (frame_dummy, __do_global_ctors_aux): Mark used.
2917         (fini_dummy, init_dummy): Remove.
2918
2919         * config/alpha/crtbegin.asm: Remove file.
2920         * config/alpha/crtend.asm: Remove file.
2921         * config/alpha/t-crtbe: Remove file.
2922         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
2923         (LINK_EH_SPEC): New.
2924
2925         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
2926         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
2927         calling constructors.
2928         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
2929
2930         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
2931         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
2932         CRT_END_INIT_DUMMY hack.
2933         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
2934         FORCE_{INIT,FINI}_SECTION_ALIGN.
2935
2936         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
2937         FORCE_{INIT,FINI}_SECTION_ALIGN.
2938
2939         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
2940         invocation sequence.
2941         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
2942
2943         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
2944         (FORCE_CODE_SECTION_ALIGN): New.
2945
2946 2002-01-26  Richard Henderson  <rth@redhat.com>
2947
2948         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
2949
2950 2002-01-26  Richard Henderson  <rth@redhat.com>
2951
2952         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
2953         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
2954
2955 2002-01-26  Kazu Hirata  <kazu@hxi.com>
2956
2957         * config/h8300/h8300.md: Remove bit extraction patterns that
2958         cannot be triggered.
2959         Restrict each bit extraction pattern to a variant on which the
2960         pattern is tested.
2961
2962 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2963
2964         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
2965
2966 2002-01-26  Kazu Hirata  <kazu@hxi.com>
2967
2968         * config/h8300/h8300.md: Remove bit test patterns that cannot
2969         be triggered.
2970         Restrict each bit test pattern to a variant on which the
2971         pattern is tested.
2972
2973 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2974
2975         * builtins.c (expand_builtin_strncat): Remove redundant check for
2976         INTEGER_CST.
2977
2978 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
2979
2980         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
2981         default setting.
2982         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
2983         existing setting.
2984
2985 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
2986
2987         * dbxout.c (dbxout_init): Use assemble_name rather than just
2988         stripping off the first character.
2989         (dbxout_source_file): Likewise.
2990
2991 2002-01-25  DJ Delorie  <dj@redhat.com>
2992
2993         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
2994         using rtx_equal_p, not by comparing pointers.
2995
2996 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
2997
2998         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
2999         for PIC_OFFSET_TABLE_REGNUM.
3000         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
3001
3002 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
3003
3004         * config.gcc (x86_64-*-freebsd*): New target.
3005         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
3006         value.
3007         (i[34567]86-*-freebsd*): Don't include svr4.h.
3008         * config/i386/freebsd64.h: New file.
3009
3010 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
3011
3012         * config/alpha/x-vms (version): Make static.
3013
3014         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
3015         in previous checkin.
3016
3017         * Makefile.in (install-headers-cp): New target.
3018         * config.gcc (alpha-dec-*vms*): Install headers with
3019         install-headers-cp
3020
3021 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
3022
3023         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
3024         avoid it's copies.
3025
3026 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3027
3028         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
3029         of compare_tree_int.
3030         (expand_builtin_strncat): Likewise.
3031         * c-decl.c (finish_struct): Use tree_low_cst.
3032         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
3033         * tree.c (compare_tree_int): Likewise.
3034
3035 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
3036
3037         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
3038         adjustments even if they are implemented by more than two insns.
3039
3040 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
3041
3042         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
3043         * df.h (struct ref): Kill B.
3044         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
3045
3046         * basic-block.h (PROP_EQUAL_NOTES): New flag.
3047         * flow.c (propagate_one_insn): Use it.
3048         (mark_used_regs): Handle NIL.
3049
3050 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
3051
3052         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
3053         to help folding.
3054
3055 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
3056
3057         * rs6000.md (prefetch): Make address V4SI mode so that the address
3058         is restricted to legitimate form for instruction.
3059
3060 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
3061
3062         * doc/install.texi (xtensa-*-elf): New target.
3063         (xtensa-*-linux*): New target.
3064         * doc/contrib.texi: Add myself.
3065
3066 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
3067
3068         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
3069         purpose register to hold an SImode (or smaller) value.
3070
3071 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
3072
3073         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
3074         registry only.
3075         * crtstuff.c: Likewise.
3076
3077 2002-01-25  Kazu Hirata  <kazu@hxi.com>
3078
3079         * config/h8300/h8300.md (negation patterns): Tighten
3080         predicates to register_operand.
3081
3082 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
3083
3084         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
3085         mode, not Pmode.
3086
3087         * builtins.c (expand_builtin_prefetch): Same.
3088
3089 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3090
3091         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
3092         modes.
3093
3094 2002-01-24  Kazu Hirata  <kazu@hxi.com>
3095
3096         * config/h8300/h8300.c (print_operand): Remove support for
3097         operand character 'A'.
3098         * config/h8300/h8300.md (three anonymous patterns): Replace
3099         operand character 'A' with either 'T' or 'S'.
3100
3101 2002-01-24  Kazu Hirata  <kazu@hxi.com>
3102
3103         * config/h8300/h8300.c (print_operand): Remove support for
3104         operand character 'U'.
3105
3106 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
3107
3108         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
3109
3110 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
3111
3112         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
3113         values to be assigned to the stack pointer.
3114
3115 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
3116
3117         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
3118         to const_double needs to be done right for big-endian systems.
3119
3120 2002-01-24  Jason Merrill  <jason@redhat.com>
3121
3122         PR c++/2432
3123         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
3124         to can_throw_internal.
3125
3126 2002-01-23  Richard Henderson  <rth@redhat.com>
3127
3128         * fold-const.c (fold): Change UINT_MAX test to check vs precision
3129         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
3130
3131 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3132
3133         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
3134         (symGOT2reg): Use them, then set as GOT value as unchanging.
3135         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
3136         as a temporary, if possible.
3137         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
3138         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
3139
3140 2002-01-23  Kazu Hirata  <kazu@hxi.com>
3141
3142         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
3143         accept to accept 0x80 as operands[2].
3144
3145 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3146
3147         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
3148
3149 2002-01-23  Richard Henderson  <rth@redhat.com>
3150
3151         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
3152
3153 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
3154
3155         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
3156         (parmlist_or_identifiers_1): Verify that only a parmlist follows
3157         an attribute.
3158
3159 2002-01-23  Richard Henderson  <rth@redhat.com>
3160
3161         * expr.c (move_by_pieces_1): Extend size before negation.
3162
3163         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
3164         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
3165         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
3166         * config/m68k/t-m68kelf: Likewise.
3167
3168 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
3169
3170         * config/xtensa/elf.h: New file.
3171         * config/xtensa/lib1funcs.asm: New file.
3172         * config/xtensa/lib2funcs.S: New file.
3173         * config/xtensa/linux.h: New file.
3174         * config/xtensa/t-xtensa: New file.
3175         * config/xtensa/xtensa-config.h: New file.
3176         * config/xtensa/xtensa-protos.h: New file.
3177         * config/xtensa/xtensa.c: New file.
3178         * config/xtensa/xtensa.h: New file.
3179         * config/xtensa/xtensa.md: New file.
3180         * config.gcc (xtensa-*-elf*): New target.
3181         (xtensa-*-linux*): New target.
3182         * cse.c (canon_hash): Compare rtx pointers instead of register
3183         numbers.  This is required for the Xtensa port.
3184         * integrate.c (copy_insn_list): Handle case where the static
3185         chain is in memory and the memory address has to be copied to
3186         a register.
3187         * doc/invoke.texi (Option Summary): Add Xtensa options.
3188         (Xtensa Options): New node.
3189         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
3190
3191 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
3192
3193         * diagnostic.c (internal_error): Do ICE suppression only
3194         when ENABLE_CHECKING is not defined.
3195
3196         * c-typeck.c (require_complete_type): Return error_mark_node
3197         if type is error_mark_node.
3198
3199 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
3200
3201         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
3202         -Os and issue a warning.
3203
3204 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
3205
3206         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
3207         current (lack of) need for host configuration by hand.
3208
3209         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
3210         references.  Documentation of some target macros moved from
3211         hostconfig.texi to tm.texi.
3212
3213 2002-01-23  Will Cohen  <wcohen@redhat.com>
3214
3215         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
3216         defined.
3217
3218 2002-01-23  Kazu Hirata  <kazu@hxi.com>
3219
3220         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
3221         operand[3].
3222
3223 2002-01-23  Jason Merrill  <jason@redhat.com>
3224
3225         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
3226
3227         * function.c (assign_parms): Don't put args of inline functions
3228         into registers when not optimizing.
3229
3230 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
3231
3232         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
3233         (prologue_use): New pattern.
3234         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
3235         preference to gen_rtx_USE.
3236         (thumb_expand_prologue): Use gen_prologue_use in preference to
3237         gen_rtx_USE.
3238         (thumb_expand_epilogue): Use gen_prologue_use in preference to
3239         gen_rtx_USE.
3240
3241 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
3242
3243         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
3244
3245 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3246
3247         PR c/3504
3248         * doc/extend.texi: Correct documentation of __alignof__.
3249
3250 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
3251
3252         * params.h: Rename arguments of DEFPARAM so that it will be
3253         recognized as a translation keyword.
3254
3255 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
3256
3257         * extend.texi: Document altivec functions.
3258         Fix N-bit adjectives in X86 builtin documentation.
3259
3260 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
3261
3262         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
3263         auto_inc_dec values.
3264
3265 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
3266
3267         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
3268         after backslash.
3269         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
3270
3271 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
3272
3273         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
3274
3275 2002-01-22  Richard Henderson  <rth@redhat.com>
3276
3277         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
3278         copy_insn not copy_rtx.
3279
3280 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
3281
3282         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
3283         "nonzero" as that might add "1" bits.  Ensure "constop" is
3284         properly sign extened.
3285         (force_to_mode): Tweak for sign extended constop.
3286
3287 2002-01-22  Richard Henderson  <rth@redhat.com>
3288
3289         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
3290         for_each_rtx instead of assuming we're already looking at the MEM.
3291         (split_small_symbolic_mem_operand): Likewise.
3292         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3293         * config/alpha/alpha.md (small symbolic memory splitters): Update.
3294
3295 2002-01-22  Richard Henderson  <rth@redhat.com>
3296
3297         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
3298         sequence number for the literal.
3299         (divmoddi_internal_er): Likewise.
3300
3301 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3302
3303         PR java/4972
3304         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
3305         in LIBICONV variable.
3306         * configure: Regenerated.
3307
3308 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
3309
3310         * dependence.c (build_def_use): Remove array_idx.
3311
3312         * dwarfout.c (last_filename): Remove.
3313         (output_compile_unit_die): Remove last_filename.
3314
3315 2002-01-22  Roger Sayle  <roger@eyesopen.com>
3316             Richard Henderson  <rth@redhat.com>
3317
3318         PR opt/3640
3319         * fold-const.c (fold): Optimize unsigned comparisons against
3320         UINT_MAX (and similar unsigned constants).
3321
3322 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
3323
3324         * Makefile.in (loop.o): Depend on OPTABS_H.
3325         * loop.c (emit_prefetch_instructions): Check the prefetch operand
3326         against the predicate.
3327
3328         PR target/5379
3329         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
3330         for the address operand.
3331
3332 2002-01-22  Richard Henderson  <rth@redhat.com>
3333
3334         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
3335
3336 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3337
3338         PR other/5450
3339         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
3340         preprocessor flags.
3341
3342 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
3343
3344         * config.gcc (x86_64-*-netbsd*): New target.
3345         * config/i386/netbsd64.h: New file.
3346
3347 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
3348
3349         * regrename.c (kill_value): Fix typo.
3350
3351 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
3352
3353         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
3354
3355         * config/rs6000/rs6000.h: Same.
3356
3357         * function.c (instantiate_virtual_regs): Remove
3358         STARTING_FRAME_PHASE.
3359         (assign_stack_local_1): Same.
3360         Calculate frame phase.
3361
3362 2002-01-22  Nick Clifton  <nickc@redhat.com>
3363
3364         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
3365         variable declaration to outer scope in order to simplify
3366         future extensions.
3367         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
3368         arm_hard_regno_mode_ok.
3369         * config/arm/arm-protos.h: Add a prototype for
3370         arm_hard_regno_mode_ok.
3371         * config/arm/arm.c (soft_df_operand): Remove now redundant
3372         check for DImode values using IP_REGNUM.
3373         (nonimmediate_soft_df_operand): Remove now redundant check for
3374         DImode values using IP_REGNUM.
3375         (arm_hard_regno_mode_ok): New function. New check: make sure
3376         that DImode values are not stored in IP_REGNUM.
3377
3378         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
3379         note with a USE.
3380         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
3381
3382 2002-01-22  Jason Merrill  <jason@redhat.com>
3383
3384         * c-semantics.c (genrtl_compound_stmt): Only check nesting
3385         consistency if this COMPOUND_STMT is scoped.
3386
3387 2002-01-22  Kazu Hirata  <kazu@hxi.com>
3388
3389         * predict.c: Fix formatting.
3390         * print-tree.c: Likewise.
3391         * protoize.c: Likewise.
3392         * real.h: Likewise.
3393         * rtl.h: Likewise.
3394         * sbitmap.h: Likewise.
3395         * scan.c: Likewise.
3396         * sched-deps.c: Likewise.
3397         * sched-vis.c: Likewise.
3398         * sdbout.c: Likewise.
3399         * sibcall.c: Likewise.
3400         * ssa.c: Likewise.
3401         * ssa-ccp.c: Likewise.
3402         * ssa-dce.c: Likewise.
3403         * stmt.c: Likewise.
3404         * stor-layout.c: Likewise.
3405         * system.h: Likewise.
3406
3407 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3408
3409         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
3410         if fits in bounds of base type.
3411
3412         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
3413         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
3414         (add_bound_info, default): If can't find a context, make a
3415         SAVE_EXPR.
3416         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
3417
3418 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
3419
3420         * c-typeck.c (parser_build_binary_op): If result from
3421         build_binary_op is ERROR_MARK just return error_mark_node without
3422         further processing.
3423
3424 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
3425
3426         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
3427         Split a.out-specific bits into...
3428         * config/netbsd-aout.h: ...this.
3429         * config/netbsd-elf.h: New file.
3430         * config/alpha/netbsd-elf.h: Remove.
3431         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
3432         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
3433         (STARTFILE_SPEC): Remove redundant definition.
3434         (ENDFILE_SPEC): Likewise.
3435         (LINK_SPEC): Likewise.
3436         (CPP_SPEC): Likewise.
3437         (ASM_SPEC): Likewise.
3438         (LIB_SPEC): Likewise.
3439         (SWITCH_TAKES_ARG): Likewise.
3440         (TARGET_MEM_FUNCTIONS): Likewise.
3441         (CPP_PREDEFINES): Redefine.
3442         (ASM_FINAL_SPEC): Remove redefinition.
3443         (ASM_COMMENT_START): Redefine.
3444         (FUNCTION_PROFILER): Define.
3445         (TARGET_VERSION): Redefine.
3446         Comment and formatting cleanup.
3447         * config/i386/netbsd.h: Include <netbsd-aout.h>.
3448         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
3449         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
3450         big- or little-endian.
3451         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
3452         * config.gcc (*-*-netbsd*): Add definitions common to all
3453         NetBSD configs.
3454         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
3455         gnu_ld definitions.  Add netbsd-elf.h to and remove
3456         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
3457         tmake_file, and don't lose previous tmake_file contents.
3458         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
3459         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
3460         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
3461         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
3462         (mipsel-*-netbsd*): Rename this to...
3463         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
3464         mips/little.h to tm_file for mips*el-*.
3465         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
3466         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
3467         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
3468
3469 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3470
3471         * pa-protos.h (reg_before_reload_operand): New function prototype.
3472         * pa.c (reg_before_reload_operand): New function implementation.
3473         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
3474         contraints to "*m".
3475
3476 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3477
3478         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
3479
3480 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3481
3482         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
3483         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
3484         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
3485         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
3486         (ENDFILE_SPEC): Undefine.
3487         (STARTFILE_SPEC): Redefine for PA.
3488
3489 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3490
3491         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
3492
3493 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
3494
3495         * config.gcc: Add entries to supported PowerPC --with-cpu
3496         types.
3497
3498 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
3499
3500         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
3501         true for 64-bit mode only SSE registers in 32-bit mode.
3502
3503 2002-01-21  Kazu Hirata  <kazu@hxi.com>
3504
3505         * unwind-dw2.c: Fix formatting.
3506         * unwind-dw2-fde.c: Likewise.
3507         * unwind-dw2-fde.h: Likewise.
3508         * unwind-pe.h: Likewise.
3509         * varasm.c: Likewise.
3510         * varray.h: Likewise.
3511
3512 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
3513
3514         Remove workaround for register stack overwrite bug in mmix.
3515         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
3516         support for TARGET_REG_STACK_FILL_BUG.
3517         * config/mmix/mmix.h: Remove member has_call_without_parameters.
3518         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
3519         Delete.
3520         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
3521         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
3522         -mno-reg-stack-fill-bug-workaround.
3523         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
3524         machine member has_call_without_parameters.
3525         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
3526         -mreg-stack-fill-bug-workaround and
3527         -mno-reg-stack-fill-bug-workaround.
3528         (MMIX Options): Ditto.
3529
3530 2002-01-21  Kazu Hirata  <kazu@hxi.com>
3531
3532         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
3533         as appropriate.
3534         Remove redundant code.
3535
3536 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3537
3538         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
3539         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
3540         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
3541         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
3542         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
3543         out target macro definitions and non-target-specific comments
3544         mostly taken from old versions of the manual.
3545
3546 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3547
3548         * config/h8300/h8300.h: Fix comment formatting.
3549         * config/ia64/aix.h: Likewise.
3550         * config/ia64/ia64-protos.h: Likewise.
3551         * config/ia64/ia64.c: Likewise.
3552         * config/ia64/ia64.h: Likewise.
3553         * config/ia64/ia64intrin.h: Likewise.
3554         * config/ia64/linux.h: Likewise.
3555         * config/ia64/unwind-aix.c: Likewise.
3556         * config/ia64/unwind-ia64.c: Likewise.
3557
3558 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3559
3560         * config/h8300/h8300.c: Revise comments about shift code.
3561
3562 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3563
3564         * config/h8300/h8300.c (function_arg): Update a comment.
3565
3566 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3567
3568         * config/h8300/h8300.md: Update the comments at the beginning
3569         of the file.
3570
3571 2002-01-20  Kazu Hirata  <kazu@hxi.com>
3572
3573         * config/i370/i370.c: Fix comment formatting.
3574         * config/i370/i370.h: Likewise.
3575         * config/i370/i370.md: Likewise.
3576         * config/i370/linux.h: Likewise.
3577
3578 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3579
3580         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
3581
3582         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
3583         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
3584         in incomplete case.
3585
3586 2002-01-20  Graham Stott  <grahams@redhat.com>
3587
3588         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
3589
3590 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3591
3592         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
3593
3594 2002-01-19  Tom Rix  <trix@redhat.com>
3595
3596         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
3597
3598 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
3599
3600         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
3601
3602         * function.c (assign_stack_local_1): Adjust x_frame_offset with
3603         STARTING_FRAME_PHASE.
3604         (STARTING_FRAME_PHASE): New.
3605         (instantiate_virtual_regs): Check saneness of
3606         STARTING_FRAME_PHASE.
3607
3608         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
3609
3610 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
3611
3612         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
3613
3614 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3615
3616         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
3617         be used for bootstrapping GCC 3.0.
3618
3619 2002-01-18  Kazu Hirata  <kazu@hxi.com>
3620
3621         * config/h8300/h8300.md: Fix an insn length.
3622
3623 2002-01-18  Kazu Hirata  <kazu@hxi.com>
3624
3625         * bitmap.h: Fix comment formatting.
3626         * combine.c: Likewise.
3627         * cppfiles.c: Likewise.
3628         * c-pragma.h: Likewise.
3629         * c-typeck.c: Likewise.
3630         * df.c: Likewise.
3631         * dwarf2out.c: Likewise.
3632         * function.c: Likewise.
3633         * gcc.c: Likewise.
3634         * genattrtab.c: Likewise.
3635         * gthr-win32.h: Likewise.
3636         * haifa-sched.c: Likewise.
3637         * predict.c: Likewise.
3638         * rtlanal.c: Likewise.
3639         * rtl.h: Likewise.
3640         * unwind-dw2-fde.h: Likewise.
3641         * unwind-pe.h: Likewise.
3642         * vmsdbgout.c: Likewise.
3643
3644 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3645
3646         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
3647         if type_required and passed decl.
3648
3649 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
3650
3651         * config.gcc (cpu_type): Include altivec.h in powerpc
3652         extra_headers.
3653         Same for darwin.
3654
3655         * config/rs6000/altivec.h: New.
3656
3657 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
3658
3659         * doc/install.texi (*-ibm-aix*): Update assembler and exception
3660         handling information.
3661         * doc/trouble.texi (Interoperation): Add libstdc++ information
3662         for AIX.
3663         (Misunderstandings): Add template instantiation and static template
3664         member information for AIX.
3665
3666 2002-01-17  Jason Merrill  <jason@redhat.com>
3667
3668         * dbxout.c (dbxout_type): Support const and volatile.
3669
3670         * except.c (add_partial_entry): Remove backwards compatibility code.
3671         (end_protect_partials): Likewise.
3672
3673 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
3674
3675         * config/ia64/ia64.md (prologue_use): New.
3676         * config/ia64/ia64.c (ia64_expand_prologue): Use
3677         gen_prologue_use instead of gen_rtx_USE.
3678         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
3679         as CODE_FOR_pred_rel_mutex.
3680         (ia64_sched_reorder2): Likewise.
3681
3682 2002-01-16  Eric Christopher  <echristo@redhat.com>
3683
3684         * config/mips/r3900.h: Reformat.
3685         (SUBTARGET_CPP_SIZE_SPEC): Remove.
3686         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
3687         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
3688         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
3689         * config/mips/t-elf: Remove mips3 multilib.
3690
3691 2002-01-16  H.J. Lu <hjl@gnu.org>
3692
3693         * config/mips/linux.h: Include "mips/abi64.h".
3694
3695 2002-01-16  H.J. Lu <hjl@gnu.org>
3696
3697         * config/mips/t-linux: New.
3698
3699         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
3700
3701         * config/mips/linux.h: Don't include "gofast.h".
3702         (INIT_SUBTARGET_OPTABS): Removed.
3703
3704 2002-01-16  Kazu Hirata  <kazu@hxi.com>
3705
3706         * config/h8300/h8300-protos.h: Replace emit_a_shift with
3707         output_a_shift.
3708         * config/h8300/h8300.c: Likewise.
3709         * config/h8300/h8300.md: Likewise.
3710
3711 2002-01-16  Kazu Hirata  <kazu@hxi.com>
3712
3713         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
3714         spaces after an opcode name.
3715         (pushqi1_h8300hs): Likewise.
3716         (pushhi1_h8300hs): Likewise.
3717
3718 2002-01-16  Kazu Hirata  <kazu@hxi.com>
3719
3720         * doc/extend.texi: Replace "option" with "attribute"
3721         appropriately.
3722
3723 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
3724
3725         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
3726         (and:DI () (const_int -8)).
3727         (split_small_symbolic_mem_operand): Split
3728         (mem (and:DI () (const_int -8)).
3729
3730 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
3731
3732         PR target/5309:
3733         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
3734         same way as TYPE_IMUL.
3735         (ultrasparc_sched_reorder): Likewise.
3736         * config/sparc/sparc.md (type): Add comment to update
3737         ultrasparc_sched_reorder when making changes.
3738
3739 2002-01-16  Kazu Hirata  <kazu@hxi.com>
3740
3741         * doc/invoke.texi: Change the dump file name of block
3742         reordering pass from 28.bbro to 29.bbro.
3743         Mention -dk option.
3744
3745 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
3746
3747         * i386.md (minsf splitter): Fix pasto.
3748
3749 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
3750
3751         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
3752         to frame pointer initialisation instruction.
3753         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
3754         initialisation instruction.
3755         (soft_df_operand): Do not accept the IP register.
3756         (nonimmediate_soft_df_operand): Do not accept the IP register.
3757
3758 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
3759
3760         PR target/5357:
3761         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
3762         MASK_V8 being both set.
3763
3764 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
3765
3766         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
3767         insn for GOT register; add REG_MAYBE_DEAD notes instead.
3768         config/s390/s390.md (call, call_value): Add GOT register to
3769         CALL_INSN_FUNCTION_USAGE where needed.
3770         (call_exp, call_value_exp): New.
3771
3772 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
3773
3774         * config/arm/arm.c: General formatting tidy up.
3775
3776 2002-01-16  Graham Stott  <grahams@redhat.com>
3777
3778         * calls.c (try_to_integrate): Use "(size_t)" intermediate
3779         cast and when casting an integer literal to "rtx" pointer.
3780         (expand_call): Likewise.
3781         * flow.c (try_pre_increment): Likewise.
3782         (find_use_as_address): Likewise.
3783         * integrate.c (expand_iline_function): Likewise.
3784         * regmove.c (try_auto_increment): Likewise.
3785
3786 2002-01-16  Graham Stott  <grahams@redhat.com>
3787
3788         * sched-rgn.c (passed): Use sbitmap_free.
3789         (header): Likewise.
3790         (inner): Likewise.
3791         (in_queue): Likewise.
3792         (in_stack): Likewise.
3793
3794 2002-01-15  Eric Christopher  <echristo@redhat.com>
3795
3796         * flow.c (propagate_one_insn): Change to use fatal_insn.
3797
3798 2002-01-15  Kazu Hirata  <kazu@hxi.com>
3799
3800         * expmed.c (extract_fixed_bit_field): Remove unused code.
3801         * system.h: Poison SLOW_ZERO_EXTEND.
3802         * doc/tm.texi: Remove.
3803         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
3804         * config/arm/arm.h: Likewise.
3805         * config/avr/avr.h: Likewise.
3806         * config/clipper/clipper.h: Likewise.
3807         * config/convex/convex.h: Likewise.
3808         * config/d30v/d30v.h: Likewise.
3809         * config/dsp16xx/dsp16xx.h: Likewise.
3810         * config/elxsi/elxsi.h: Likewise.
3811         * config/fr30/fr30.h: Likewise.
3812         * config/h8300/h8300.h: Likewise.
3813         * config/i370/i370.h: Likewise.
3814         * config/i386/i386.h: Likewise.
3815         * config/m68k/m68k.h: Likewise.
3816         * config/mips/mips.h: Likewise.
3817         * config/ns32k/ns32k.h: Likewise.
3818         * config/pdp11/pdp11.h: Likewise.
3819         * config/pj/pj.h: Likewise.
3820         * config/s390/s390.h: Likewise.
3821         * config/sh/sh.h: Likewise.
3822         * config/stormy16/stormy16.h: Likewise.
3823         * config/v850/v850.h: Likewise.
3824         * config/vax/vax.h: Likewise.
3825         * config/we32k/we32k.h: Likewise.
3826
3827 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
3828
3829         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
3830         (altivec_lvsl): Change constraint to b.
3831         (altivec_lvsr): Same.
3832         (altivec_lvebx): Same.
3833         (altivec_lvehx): Same.
3834         (altivec_lvewx): Same.
3835         (altivec_lvxl): Same.
3836         (altivec_lvx): Same.
3837         (altivec_stvx): Add parallel.
3838         (altivec_stvxl): Same.
3839         (altivec_stvehx): Same.
3840         (altivec_stvebx): Same.
3841         (altivec_stvebx): Same.
3842
3843 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
3844
3845         * config.gcc: Change altivec.h to altivec-defs.h.
3846
3847         * config/rs6000/altivec.h: Delete.
3848
3849         * config/rs6000/altivec-defs.h: Add.
3850
3851 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3852
3853         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
3854         and UMOD modes.
3855
3856         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
3857         less than or equal to eight bytes.
3858
3859         * vax.md (andsi3): Remove constraints and change SET destination
3860         operand type to nonimmediate_operand.
3861         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
3862         when it is a CONST_INT.
3863
3864 2002-01-15  Jason Merrill  <jason@redhat.com>
3865
3866         * c-common.def (FILE_STMT): New code.
3867         * c-common.c (statement_code_p): It's a statement.
3868         * c-common.h (stmt_tree_s): Add x_last_filename.
3869         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
3870         (last_expr_filename): New macro.
3871         * c-semantics.c (begin_stmt_tree): Initialize it.
3872         (add_stmt): If the filename changed, also insert a
3873         FILE_STMT.
3874         (expand_stmt): Handle seeing one.
3875
3876 2002-01-15  Eric Christopher  <echristo@redhat.com>
3877
3878         * flow.c (propagate_one_insn): Add error message and print out
3879         insn for debugging.
3880
3881 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
3882
3883         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
3884         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
3885         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
3886         TRAMPOLINE_ALIGNMENT.
3887         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
3888         to be in bits.
3889         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
3890         PCC_BITFIELD_TYPE_MATTERS.
3891         * config/interix.h (STDC_VALUE): Remove.  Use
3892         STDC_0_IN_SYSTEM_HEADERS.
3893         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
3894         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
3895         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
3896
3897 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3898
3899         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
3900         not work on this platform currently.
3901
3902 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
3903
3904         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
3905         readonly_warning in _().
3906
3907 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
3908
3909         * gcc.c (delete_if_ordinary): Backout previous change.
3910
3911 2002-01-15  Kazu Hirata  <kazu@hxi.com>
3912
3913         * config/h8300/h8300.c (print_operand): Remove support for
3914         unused operand characters.
3915
3916         * read-rtl.c: Fix formatting.
3917         * real.c: Likewise.
3918         * recog.c: Likewise.
3919         * regclass.c: Likewise.
3920         * regmove.c: Likewise.
3921         * reg-stack.c: Likewise.
3922         * reload1.c: Likewise.
3923         * rtlanal.c: Likewise.
3924
3925 2002-01-15  Kazu Hirata  <kazu@hxi.com>
3926
3927         * config/i386/i386.c: Fix formatting.
3928
3929 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
3930
3931         * c-typeck.c (process_init_element): Don't save_expr
3932         COMPOUND_LITERAL_EXPR if just its initializer will be used.
3933
3934 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
3935
3936         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
3937         emit optional traceback table if optimize_size or TARGET_ELF.
3938         * config/rs6000/rs6000.md (prefetch): New.
3939
3940 2002-01-15  Andreas Jaeger  <aj@suse.de>
3941
3942         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
3943
3944 2002-01-15  Kazu Hirata  <kazu@hxi.com>
3945
3946         * mips-tfile.c: Fix formatting.
3947
3948 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
3949
3950         * unroll.c (final_reg_note_copy): Fix previous commit.
3951
3952 2002-01-14  Kazu Hirata  <kazu@hxi.com>
3953
3954         * config/h8300/h8300-protos.h: Remove the prototype for
3955         eq_operator.
3956         * config/h8300/h8300.c (eq_operator): Remove.
3957
3958 2002-01-14  Richard Henderson  <rth@redhat.com>
3959
3960         * config/i386/i386.md (prefetch): Tidy.
3961         (prefetch_3dnow): Fix locality operand.
3962
3963 2002-01-14  Richard Henderson  <rth@redhat.com>
3964
3965         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
3966         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
3967
3968 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
3969
3970         * reload1.c (reload_combine): Pass reg_sum replacement through
3971         copy_rtx in loop performing multiple changes.
3972
3973 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
3974
3975         * except.c (remove_unreachable_regions): New.
3976         (free_eh_status): Clear exception_handler_labels.
3977         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
3978         (find_exception_handler_labels): Don't add the same label more than
3979         once.
3980         (remove_exception_handler_label): Don't die if
3981         find_exception_handler_labels hasn't been called for the current
3982         function yet.
3983
3984 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
3985
3986         * toplev.c (rest_of_compilation): Rebuild jump labels after
3987         gcse.
3988
3989 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
3990
3991         * doc/extend.texi: Move documentation of X86 built-in functions
3992         here.
3993         * doc/invoke.texi: From here.
3994         * doc/sourcebuild.texi: Document location of documentation for
3995         machine built-in functions.
3996
3997 2002-01-13  Christopher Faylor  <cgf@redhat.com>
3998
3999         * cppfiles.c (TEST_THRESHOLD): New macro.
4000         (SHOULD_MMAP): Ditto.
4001         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
4002         be used.
4003
4004 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
4005
4006         * unroll.c (final_reg_note_copy): Properly handle
4007         REG_LABEL
4008         (unroll_loops): Fix LOOP_CONDITION heuristics.
4009
4010 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
4011
4012         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
4013         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
4014
4015 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4016
4017         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
4018         threaded loop.
4019
4020 2002-01-14  Tom Rix  <trix@redhat.com>
4021
4022         * config/rs6000/rs6000.md: Fix typo with sradi.
4023
4024 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
4025
4026         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
4027         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
4028         (clrstrdi, clrstrsi): Adapt callers.
4029
4030         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
4031
4032         (movti splitter): Never use register 0 as base register.
4033
4034 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
4035
4036         * combine.c (simplify_shift_const): Always generate new rtx
4037         for shift expression instead of reusing given expression.
4038
4039 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4040
4041         * config/alpha/alpha.c (alpha_expand_mov): Don't call
4042         alpha_legitimize_address unless mode is Pmode.
4043
4044 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
4045
4046         * doc/md.texi (Modifiers): Document the '*' constraint for the
4047         user.
4048
4049         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
4050         * doc/extend.texi (Function Attributes): 'interrupt' is valid
4051         for xstormy16 too.
4052
4053 2002-01-13  Richard Henderson  <rth@redhat.com>
4054
4055         * reload.c (find_reloads): Use a hard reg destination as reload reg
4056         for an input reload of the source.
4057
4058 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4059
4060         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
4061         more generic.
4062
4063 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
4064
4065         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
4066         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
4067
4068         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
4069
4070 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4071
4072         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
4073
4074 2002-01-12  Tom Rix  <trix@redhat.com>
4075
4076         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
4077         TARGET_POWERPC64.
4078
4079 2002-01-12  Richard Henderson  <rth@redhat.com>
4080
4081         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
4082
4083         * doc/invoke.texi: Update Alpha options.
4084
4085         * doc/invoke.texi: Update i386 built-in function lists.
4086
4087 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
4088
4089         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
4090         referencing outside.
4091
4092 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4093
4094         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
4095         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
4096         offsets, and change line folding.
4097         * optabs.c (expand_binop): Remove warnings.
4098         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
4099
4100 2002-01-12  Graham Stott <grahams@redhat.com>
4101
4102         * attribs.c (handle_deprecated_attribute): constify WHAT.
4103         * diagnostic.c (warn_deprecated_use): Add braces, fixes
4104         dangling else warning and constify WHAT.
4105         * except.h (struct function, struct inline_remap): Move
4106         struct tag forward defs before all prototypes.
4107         (duplicate_eh_regions): Whitespace.
4108
4109 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
4110
4111         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
4112         MODE_BASE_REG_CLASS.
4113         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
4114
4115 2002-01-12  Richard Henderson  <rth@redhat.com>
4116
4117         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
4118         (ix86_expand_vector_move): New.
4119         (bdesc_2arg): Remove andps, andnps, orps, xorps.
4120         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
4121         Remove old prefetch builtins.  Special case the logicals removed above.
4122         (ix86_expand_builtin): Likewise.
4123         (safe_vector_operand): Use V4SFmode, not TImode.
4124         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
4125         (ix86_expand_timode_binop_builtin): New.
4126         * config/i386/i386-protos.h: Update.
4127         * config/i386/i386.h (enum ix86_builtins): Update.
4128         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
4129         Use ix86_expand_vector_move in vector move expanders.
4130         (movti_internal, movti_rex64): Add xorps alternative.
4131         (sse_clrv4sf): Rename and adjust from sse_clrti.
4132         (prefetch): Don't work so hard.
4133         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
4134         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
4135         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
4136
4137 2002-01-11  Richard Henderson  <rth@redhat.com>
4138
4139         * config/i386/mmintrin.h: New file.
4140         * config/i386/xmmintrin.h: New file.
4141         * config.gcc (i?86-*-*): Add extra_headers.
4142         * simplify-rtx.c (simplify_unary_operation): Handle saturating
4143         truncation codes.
4144         (simplify_binary_operation): Handle saturating arithmetic codes.
4145         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
4146         not the lowpart subreg.
4147         (ix86_expand_builtin): Return a TImode dummy register instead of 0
4148         on error.
4149         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
4150
4151 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4152
4153         * conflict.c (conflict_graph_compute): Free regsets when finished.
4154         * ssa.c (compute_coalesced_reg_partition): Likewise.
4155
4156 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4157
4158         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
4159         every where we allocate a register.
4160
4161 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4162
4163         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
4164         * lcm.c (compute_earliest, compute_farthest): Likewise.
4165
4166 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
4167
4168         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
4169
4170 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
4171
4172         * doc/rtl.texi (Insns): Fix 2 typos.
4173
4174 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
4175
4176         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
4177         options.  Use @table @gcctabopt for MMIX options.  Add index
4178         entries for MMIX options.  Start new paragraph with first
4179         heading of the machine-dependent options.
4180
4181 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4182
4183         PR other/5299
4184         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
4185         * combine.c (force_to_mode): Same.
4186         * reload1.c (clear_reload_reg_in_use): Same.
4187
4188 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
4189
4190         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
4191         and 'subtargets'.
4192
4193 2002-01-11  Andreas Jaeger  <aj@suse.de>,
4194             Brad Lucier <lucier@math.purdue.edu>
4195
4196         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
4197         mcpu.
4198
4199 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
4200
4201         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
4202         Protect with IN_LIBGCC.
4203         (LINK_EH_SPEC): Add required trailing space.
4204
4205 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
4206
4207         * c-tree.h: Move function declarations so that they are listed
4208         under the filename which contains them.
4209         (check_identifier, finish_decl_top_level,
4210         lookup_name_current_level_global, shadow_record_fields): Remove.
4211
4212 2002-01-11  Andreas Jaeger  <aj@suse.de>
4213
4214         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
4215         march.
4216
4217 2002-01-10  Richard Henderson  <rth@redhat.com>
4218
4219         * config/alpha/alpha.c (print_operand): Add 'J'.
4220         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
4221         new operand with the sequence number for the lituse.  When splitting
4222         the insns, use gen_movdi_er_high_g and generate a sequence number.
4223         (gen_movdi_er_high_g): Print the sequence number if non-zero.
4224
4225 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
4226
4227         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
4228         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
4229         stvxl.
4230         (altivec_expand_builtin): Same.
4231         (altivec_expand_stv_builtin): New.
4232
4233         * config/rs6000/rs6000.h (rs6000_builtins): Same.
4234
4235         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
4236         ("altivec_lvehx"): New.
4237         ("altivec_lvewx"): New.
4238         ("altivec_lvxl"): New.
4239         ("altivec_lvx"): New.
4240         ("altivec_stvx"): New.
4241         ("altivec_stvebx"): New.
4242         ("altivec_stvehx"): New.
4243         ("altivec_stvewx"): New.
4244         ("altivec_stvxl"): New.
4245
4246 2002-01-10  Richard Henderson  <rth@redhat.com>
4247
4248         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
4249         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
4250         care not to delete instructions twice.
4251
4252 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
4253
4254         * toplev.c: Don't declare environ (it's not used anywhere).
4255         * configure.in: Don't check for declaration of environ.
4256         * config/i386/xm-mingw32.h: Don't #define environ.
4257         * config.in, configure: Regenerate.
4258
4259 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
4260
4261         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
4262         * configure: Regenerate.
4263
4264         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
4265         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
4266         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
4267         alpha/xm-vms.h.
4268         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
4269         LIMITS_H_TEST here, not in m68k/x-next.
4270         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
4271         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
4272
4273         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
4274         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
4275         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
4276
4277         * config/i386/x-djgpp: Renamed i386/t-djgpp.
4278         * config/m88k/x-dolph: Renamed m88k/t-dolph.
4279         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
4280         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
4281         replacement of quadlib.asm with quadlib.c.
4282
4283         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
4284         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
4285         config/rs6000/xm-beos.h: Delete file.
4286
4287         * config.gcc: Update to match above changes.
4288
4289 2002-01-10  Kazu Hirata  <kazu@hxi.com>
4290
4291         * config/h8300/h8300.h: Fix comment typos.
4292         * config/h8300/h8300.md: Likewise.
4293         * config/h8300/lib1funcs.asm: Likewise.
4294
4295 2002-01-10  Dale Johannesen  <dalej@apple.com>
4296
4297         PR optimization/5269
4298         * unroll.c (precondition_loop_p): Make *increment be the correct
4299         sign when n_iterations known, to avoid confusing caller.
4300
4301 2002-01-10  Kazu Hirata  <kazu@hxi.com>
4302
4303         * doc/extend.texi (deprecated): Fix a typo.
4304
4305 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
4306
4307         * basic-block.h (update_br_prob_note): Declare.
4308         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
4309         (try_forward_edges): Care negative frequencies and update note.
4310         (outgoing_edges_match): Tweek conditional merging heuristics.
4311         (try_crossjump_to_edge): use update_br_prob_note.
4312         * cfglayout.c (fixup_reorder_chain): Likewise.
4313         * cfrtl.c (update_br_prob_note): New.
4314         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
4315
4316         * i386.c (ix86_decompose_address): Return -1 if address contains
4317         shift.
4318         (legitimate_address_p): Require ix86_decompose_address to return 1.
4319
4320         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
4321         (cprop_insn): Likewise.
4322
4323 2002-01-10  Kazu Hirata  <kazu@hxi.com>
4324
4325         * toplev.c: Fix formatting.
4326         * tree.c: Likewise.
4327         * tree-dump.c: Likewise.
4328         * unroll.c: Likewise.
4329         * unwind-dw2.c: Likewise.
4330         * unwind-dw2-fde.c: Likewise.
4331         * unwind-dw2-fde-glibc.c: Likewise.
4332         * unwind-sjlj.c: Likewise.
4333
4334 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
4335
4336         * doc/invoke.texi: Document PDP-11 options.
4337
4338 2002-01-10  Kazu Hirata  <kazu@hxi.com>
4339
4340         * config/h8300/h8300.h: Fix formatting.
4341
4342 2002-01-10  Ira Ruben   <ira@apple.com>
4343
4344         Add __attribute__ ((deprecated)).
4345         * extend.texi: Document __attribute__ ((deprecated)).
4346         * invoke.texi: Document -Wno-deprecated-declarations.
4347         * testsuite/g++.dg/other/deprecated.C: New C++ test.
4348         * testsuite/gcc.dg/deprecated.c: New C test.
4349         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
4350         (c_common_attribute_table): Add "deprecated" entry.
4351         (handle_deprecated_attribute): New function.
4352         * c-decl.c (deprecated_states): New enum.
4353         deprecated_state: State of "deprecated" handling.
4354         (start_decl): Set deprecated_state based on attributes.
4355         (grokdeclarator): Test for deprecated uses, propagate attribute.
4356         * c-typeck.c (build_component_ref): Test for deprecated fields.
4357         (build_external_ref): Test for deprecated primaries.
4358         * diagnostic.c (warn_deprecated_use) New function to issue
4359         warnings about __attribute__ ((depricated)) references.
4360         * flags.h (warn_deprecated_decl): Extern declared for
4361         -W[no-]deprecated-declarations option.
4362         * print-tree.c (print_node): Show deprecated flag status.
4363         * toplev.c (warn_deprecated_decl): Defined.
4364         (W_options): Added "deprecated-declaration".
4365         * toplev.h (warn_deprecated_use): Extern declared.
4366         * tree.h (struct tree_common): Define deprecated_flag.
4367         (TREE_DEPRECATED): New macro to access flag.
4368         * cp/call.c (build_call): Test for deprecated calls.
4369         * cp/class.c (add_implicitly_declared_members): Set global
4370         flag to tell grokdeclarator to not issue deprecated warnings.
4371         * cp/cp-tree.h: Add extern for adding_implicit_members.
4372         * cp/decl.c (deprecated_states): New enum.
4373         (start_decl): Set deprecated_state based on attributes.
4374         (grokdeclarator): Test for deprecated uses, propagate attribute.
4375         * cp/lex.c (do_identifier): Test for deprecated primaries.
4376         * cp/typeck.c (build_component_ref): Test for deprecated fields.
4377
4378 2002-01-10  Ira Ruben   <ira@apple.com>
4379
4380         Fix to assign attributes to inline member functions.
4381         * cp/decl.c (start_method): Handle attrlist.
4382
4383 2002-01-10  Kazu Hirata  <kazu@hxi.com>
4384
4385         * combine.c (expand_field_assignment): Use subreg_lsb().
4386
4387 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
4388
4389         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
4390         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
4391         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
4392         Recurse for any operand of AND as long as constant is non-zero.
4393
4394 2002-01-10  Kazu Hirata  <kazu@hxi.com>
4395
4396         * config/h8300/h8300.md: Remove constraints from expanders.
4397
4398 2002-01-10  Kazu Hirata  <kazu@hxi.com>
4399
4400         * varasm.c: Fix formatting.
4401         * varray.c: Likewise.
4402         * vmsdbgout.c: Likewise.
4403         * xcoffout.c: Likewise.
4404
4405 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
4406
4407         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
4408         update edge probabilities to match.
4409
4410 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
4411
4412         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
4413         dependencies.
4414         * doc/languages.texi, doc/sourcebuild.texi: New files.
4415         * doc/configfiles.texi: Make a subsubsection.  Update.
4416         * doc/configterms.texi: Add @node.  Remove warning that this isn't
4417         instructions for building GCC.
4418         * doc/makefile.texi: Make a subsection.
4419         * doc/gccint.texi: Update.
4420
4421 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
4422
4423         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
4424
4425 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
4426
4427         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
4428
4429 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
4430
4431         * optabs.c (expand_fix): Look for wider integer modes first.
4432
4433         * i386.md (mov?f): Avoid the fake const double trick for medium
4434         memory model.
4435         (min?f*/max?f*): Prohibit memory operands for i387 variant.
4436         (fop_df_4): Disable for SSE compilation.
4437
4438 2002-01-10  Graham Stott  <grahams@redhat.com>
4439
4440         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
4441         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
4442
4443 2002-01-10  Richard Henderson  <rth@redhat.com>
4444
4445         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
4446
4447 2002-01-10  Richard Henderson  <rth@redhat.com>
4448
4449         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
4450         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
4451
4452 2002-01-10  Kazu Hirata  <kazu@hxi.com>
4453
4454         * combine.c (can_combine_p): Fix a comment typo.
4455
4456 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
4457
4458         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
4459         empty list correctly.  Change loop index $t to $f for
4460         consistency with rest of Makefile.
4461
4462 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
4463
4464         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
4465         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
4466
4467         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
4468         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
4469         (altivec_init_builtins): Same.
4470         (altivec_expand_unop_builtin): Return NULL_RTX on error.
4471         (altivec_expand_binop_builtin): Same.
4472         (altivec_expand_ternop_builtin): Same.
4473         (bdesc_dst): New.
4474
4475         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
4476         ("altivec_vctuxs"): Fix typo.
4477         ("altivec_vnmsubfp"): Same.
4478         ("altivec_dssall"): New.
4479         ("altivec_mfvscr"): New.
4480         ("altivec_dss"): New.
4481         ("altivec_lvsl"): New.
4482         ("altivec_lvsr"): New.
4483         ("altivec_dstt"): New.
4484         ("altivec_dstst"): New.
4485         ("altivec_dststt"): New.
4486         ("altivec_dst"): New.
4487
4488         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
4489         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
4490
4491 2002-01-09  Richard Henderson  <rth@redhat.com>
4492
4493         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
4494
4495 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
4496
4497         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
4498         function.
4499         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
4500         prototype.
4501         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
4502
4503 2002-01-09  Kazu Hirata  <kazu@hxi.com>
4504
4505         * read-rtl.c: Fix formatting.
4506         * real.c: Likewise.
4507         * regclass.c: Likewise.
4508         * regrename.c: Likewise.
4509         * reg-stack.c: Likewise.
4510         * reload1.c: Likewise.
4511         * reload.c: Likewise.
4512         * rtl.c: Likewise.
4513
4514 2002-01-09  Kazu Hirata  <kazu@hxi.com>
4515
4516         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
4517         to extract items in the expr_list chain.
4518
4519 2002-01-09  Richard Henderson  <rth@redhat.com>
4520
4521         * config/vax/vax.c (vax_rtx_cost): Never abort.
4522
4523         * config/vax/vax.h (REAL_ARITHMETIC): Define.
4524
4525 2002-01-09  Jan Hubicka  <jh@suse.cz>
4526
4527         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
4528
4529 2002-01-09  Richard Henderson  <rth@redhat.com>
4530
4531         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
4532         Unify code from various alternatives.
4533
4534 2002-01-09  Richard Henderson  <rth@redhat.com>
4535
4536         * regrename.c (copy_value): Ignore the copy if the source register
4537         is present in the value chain with a narrower mode.
4538
4539 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
4540
4541         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
4542         for the c4x target. Also improve layout.
4543
4544 2002-01-09  Richard Henderson  <rth@redhat.com>
4545
4546         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
4547         * config/m32r/m32r.md (and ior xor splitters): Swap operands
4548         to match insn patterns.
4549
4550 2002-01-09  Richard Henderson  <rth@redhat.com>
4551
4552         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
4553         (copyprop_hardreg_forward_1): Likewise.
4554
4555 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4556
4557         * pa.md (decrement_and_branch_until_zero): Change predicate for
4558         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
4559
4560 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
4561
4562         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
4563         gets undefined. For Darwin.
4564
4565 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4566
4567         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
4568
4569 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4570
4571         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
4572
4573 2002-01-08  Richard Henderson  <rth@redhat.com>
4574
4575         * regrename.c (copy_value): Ignore overlapping copies.
4576
4577 2002-01-08  Richard Henderson  <rth@redhat.com>
4578
4579         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
4580         as needed to avoid shared structure.
4581
4582 2002-01-08  Kazu Hirata  <kazu@hxi.com>
4583
4584         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
4585         H8/300H and H8/S.
4586
4587 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4588
4589         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
4590         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
4591         documentation of obsolete macros.
4592         * system.h: Poison these macros.
4593         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
4594         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
4595         config/c4x/c4x.h, config/clipper/clipper.h,
4596         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
4597         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
4598         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
4599         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
4600         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
4601         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
4602         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
4603         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
4604         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
4605         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
4606         config/sparc/sparc.h, config/stormy16/stormy16.h,
4607         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
4608         definitions and commented out definitions of obsolete macros.
4609         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
4610         of MAX_INT_TYPE_SIZE.
4611
4612 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
4613
4614         * config/s390/s390.c (s390_preferred_reload_class): Never
4615         return ADDR_REGS if it isn't a subset of the given class.
4616         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
4617         FP_REGS, but all superclasses as well.
4618
4619         * config/s390/s390.c (s390_function_profiler): Fix thinko.
4620
4621         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
4622         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
4623         must not be a const_int.
4624
4625 2002-01-08  Richard Henderson  <rth@redhat.com>
4626
4627         * Makefile.in (toplev.o): Depend on options.h.
4628         (gcc.o): Depend on specs.h.
4629
4630 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
4631
4632         * expr.c (store_expr): Convert VOIDmode constants back to target's
4633         mode.
4634
4635 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4636
4637         * doc/invoke.texi: Markup gcc as @command.  Refer to
4638         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
4639         of http://gcc.gnu.org/thanks.html.
4640
4641 2002-01-08  Dale Johannesen  <dalej@apple.com>
4642
4643         * config/rs6000/rs6000.md: Add missing int register
4644         target case to movdf_low.
4645
4646 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
4647
4648         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
4649         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
4650         (cppinit.o): Depend on except.h.
4651         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
4652         s-specs): New rules.
4653
4654         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
4655         Don't create specs.h/options.h/gencheck.h here.  Remove
4656         unnecessary variable settings from last argument of AC_OUTPUT.
4657         * config.in, configure: Regenerate.
4658         * intl.c: Hardcode package name as "gcc".
4659
4660         * cppinit.c: Include except.h.
4661         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
4662         appropriate.
4663         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
4664         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
4665         (!)USING_SJLJ_EXCEPTIONS.
4666         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
4667
4668 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4669
4670         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
4671         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
4672         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
4673         documentation of obsolete macros.
4674         * system.h: Poison these macros.
4675         * config/d30v/d30v.h, config/ns32k/encore.h,
4676         config/stormy16/stormy16.h: Remove definitions and commented out
4677         definitions of obsolete macros.
4678
4679 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
4680
4681         * objc/objc-act.c (handle_class_ref): Mark the declaration of
4682         %sobjc_class_ref_%s as used - to prevent unwanted compiler
4683         warnings.
4684
4685 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
4686
4687         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
4688         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
4689         to insn adjusting stack/frame pointer.
4690         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
4691         accept operands that cause the insn to be non-splittable.
4692
4693 2002-01-08  Graham Stott  <grahams@redhat.com>
4694
4695         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
4696         (C_TYPE_FIELDS_VOLATILE): Likewise.
4697         (C_TYPE_BEING_DEFINED): Likewise.
4698         (C_IS_RESERVED_WORD): Likewise.
4699         (C_TYPE_VARIABLE_SIZE): Likewise.
4700         (C_DECL_VARIABLE_SIZE): Likewise.
4701         (C_MISSING_PROTOTYPE_WARNED): Likewise.
4702         (C_SET_EXP_ORIGINAL_CODE): Likewise.
4703         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
4704         parenthesis.
4705         (C_DECL_ANTICIPATED): Likewise.
4706         (c_build_type_variant): Add parenthesis.
4707
4708 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4709
4710         * gcc.c (option_map): Remove --version.
4711         (process_command): Handle -fversion following the GNU Coding
4712         Standards.  Partially addresses PR other/704.
4713
4714 2002-01-08  Graham Stott  <grahams@redhat.com>
4715
4716         * combine.c (combine_instructions): Fix typo.
4717
4718 2002-01-08  Graham Stott  <grahams@redhat.com>
4719
4720         * debug.h: Use "tree" and "rtx" throughout.
4721
4722         * debug.c: Likewise.
4723
4724 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
4725
4726         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
4727         constant pool, use the pool's version of the symbol instead.
4728
4729 2002-01-07  Richard Henderson  <rth@redhat.com>
4730
4731         * regrename.c (find_oldest_value_reg): Ignore the value chain if
4732         the original register was copied in a mode with a fewer number of
4733         hard registers than the desired mode.
4734         (copyprop_hardreg_forward_1): Likewise.
4735         (debug_value_data): Fix loop test.
4736         * toplev.c (parse_options_and_default_flags): Reenable
4737         -fcprop-registers at -O1.
4738
4739 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
4740
4741         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
4742         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
4743
4744         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
4745         predicates.
4746
4747         * config/rs6000/rs6000.md: Add altivec predicate patterns.
4748
4749 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4750
4751         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
4752         (pa_output_function_prologue): Output local label at the beginning of
4753         the prologue when profiling.
4754         (hppa_profile_hook): Use the local label rather than the function label.
4755         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
4756
4757 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
4758
4759         * config/rs6000/rs6000.c (print_operand): Remove extra space.
4760         (altivec_expand_unop_builtin): Fix thinko.
4761         (altivec_expand_binop_builtin): Same.
4762         (altivec_expand_ternop_builtin): Same.
4763         (altivec_expand_builtin): Same.
4764
4765 2002-01-07  Richard Henderson  <rth@redhat.com>
4766
4767         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
4768
4769 2002-01-07  Jason Merrill  <jason@redhat.com>
4770
4771         * unwind-dw2.c (execute_cfa_program): Use < again.
4772
4773 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
4774
4775         * predict.c (combine_predictions_for_insn): Avoid division by zero.
4776
4777 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
4778
4779         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
4780         Don't allow -1 - x -> ~x simplifications in the first pass.
4781
4782 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
4783
4784         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
4785         arguments.
4786         (altivec_expand_binop_builtin): Same.
4787         (altivec_expand_unop_builtin): Same.
4788         (print_operand): Fix typo.
4789         (bdesc_1arg): Add vupk* variants.
4790
4791         * rs6000.h (rs6000_builtins): Add vupk* enums.
4792
4793         * rs6000.md: Add altivec_vupk* variants.
4794
4795 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4796
4797         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
4798         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
4799         and last update dates.
4800
4801 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
4802
4803         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
4804
4805 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4806
4807         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
4808         * config/avr/avr.h (CPP_SPEC): Likewise.
4809         (LINK_SPEC): Likewise.
4810         (CRT_BINUTILS_SPECS): Likewise.
4811         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
4812         * doc/invoke.texi (AVR Options): Document them.
4813
4814 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
4815
4816         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
4817         LABEL_NUSES.
4818
4819 2002-01-07  Graham Stott  <grahams@redhat.com>
4820
4821         * config/i386/i386.h: Update copyright date.
4822         (HALF_PIC_PTR): Add parenthesis.
4823         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
4824         (CONSTANT_ALIGNMENT): Add parenthesis.
4825         (DATA_ALIGNMENT): Likewise.
4826         (LOCAL_ALIGNMENT): Likewise.
4827         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
4828         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
4829         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
4830         (HARD_REGNO_NREGS): Add paranethesis.
4831         (VALID_SSE_REG_MODE): Whitespace.
4832         (VALID_MMX_REG_MODE): Whitespace.
4833         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
4834         (ix86_hard_regno_mode_ok): Add parenthesis.
4835         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
4836         (RETURN_IN_MEMORY): Whitespace.
4837         (N_REG_CLASSES): Add parenthesis.
4838         (INTEGER_CLASS_P): Add parenthesis and wrap.
4839         (FLOAT_CLASS_P): Likewise.
4840         (SSE_CLASS_P): Likewise.
4841         (MMX_CLASS_P): Likewise.
4842         (MAYBE_INTEGER_CLASS_P): Likewise.
4843         (MAYBE_FLOAT_CLASS_P): Likewise.
4844         (MAYBE_SSE_CLASS_P): Likewise.
4845         (MAYBE_MMX_CLASS_P): Likewise.
4846         (Q_CLASS_P): Likewise.
4847         (GENERAL_REGNO_P): Uppercase macro parameter.
4848         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
4849         (FP_REGNO_P): Likewise.
4850         (ANY_FP_REGNO_P): Uppercase macro parameter.
4851         (SSE_REGNO_P): Likewise.
4852         (SSE_REGNO): Likewise.
4853         (SSE_REG_P): Likewise.
4854         (SSE_FLOAT_MODE_P): Likewise.
4855         (MMX_REGNO_P): Likewise.
4856         (MMX_REG_P):Likewise.
4857         (STACK_REG_P): Likewise.
4858         (NON_STACK_REG_P): Likewise.
4859         (STACK_TOP_P): Likewise.
4860         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
4861         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
4862         (SECONDARY_MEMORY_NEEDED): Likewise.
4863         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
4864         (MD_ASM_CLOBBERS): Whitespace and wrap.
4865         (MUST_PASS_IN_STACK): Whitespace and wrap.
4866         (RETURN_POPS_ARGS): Add parenthesis.
4867         (INIT_CUMULATIVE_ARGS): Likewise.
4868         (FUNCTION_ARG): Likewise.
4869         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
4870         (SETUP_INCOMING_VARARGS): Likewise.
4871         (BUILD_VA_LIST_TYPE):  Add parenthesis.
4872         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
4873         parenthsis.
4874         (EXPAND_BUILTIN_VA_ARG): Likewise.
4875         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
4876         (INITIALIZE_TRAMPOLINE): Add parenthesis.
4877         (INITIAL_ELIMINATION_OFFSET): Likewise.
4878         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
4879         (REGNO_OK_FOR_BASE_P): Likewise.
4880         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
4881         (REGNO_OK_FOR_DIREG_P): Likewise.
4882         (REG_OK_FOR_INDEX_P): Whitespace.
4883         (REG_OK_FOR_BASE_P): Whitespace.
4884         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
4885         parenthesis.
4886         (FIND_BASE_TERM): Fix typo.
4887         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
4888         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
4889         (SYMBOLIC_CONST; Whitespace.
4890         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
4891         (ENCODE_SECTION_INFO): Whitespace.
4892         (FINALIZE_PIC): Remove do { ... } while (0).
4893         (PROMOTE_MODE): Wrap in do { ... } while (0).
4894         (CONST_COSTS): Whitespace.
4895         (RTX_COSTS): Add paramethesis, whitespace and wrap.
4896         (REGISTER_MOVE_COST): Add parenthesis.
4897         (MEMORY_MOVE_COST): Likewise.
4898         (EXTRA_CC_MODES): Whitespace.
4899         (SELECT_CC_MODE): Add parenthesis and whitespace.
4900         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
4901         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
4902         (ASM_OUTPUT_LABEL): Add paramethesis.
4903         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
4904         (ASM_OUTPUT_REG_POP): Likewise.
4905         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
4906         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4907
4908         * config/i386/i386.c: Update copyright.
4909         (CHECK_STACK_LIMIT): Add parenthesis.
4910         (AT_BP): Uppercase macro parameter.
4911         (x86_64_int_parameter_registers): Constify.
4912         (x86_64_int_return_registers): Likewise.
4913         (ix86_compare_op0): Use rtx.
4914         (construct_container): Constify INTREG parameter.
4915         (function_arg): Use rtx.
4916
4917         * diagnostic.h: Update copyright date.
4918         (output_buffer_state): Add parenthesis.
4919         (output_buffer_format_args): Likewise.
4920
4921         * combine.c (combine_instructions): Replace XEXP (links, 0)
4922         with link.
4923
4924 2002-01-06  H.J. Lu <hjl@gnu.org>
4925
4926         * cfgcleanup.c (thread_jump): Fix 2 typos.
4927
4928 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
4929
4930         * config.gcc: Add support for --enable-altivec.
4931
4932 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4933
4934         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
4935
4936 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
4937
4938         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
4939         __objc_class_name_*.
4940
4941 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4942
4943         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
4944
4945 2002-01-06  Richard Henderson  <rth@redhat.com>
4946
4947         * reorg.c (emit_delay_sequence): Remove death notes, not merely
4948         nop them out.  Increment label reference count for REG_LABEL.
4949         (fill_slots_from_thread): Frob label reference count around
4950         delete_related_insns.
4951
4952 2002-01-05  Richard Henderson  <rth@redhat.com>
4953
4954         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
4955         jump threading.
4956
4957 2002-01-05  Richard Henderson  <rth@redhat.com>
4958
4959         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
4960         * integrate.c (output_inline_function): Likewise.
4961         * toplev.c (rest_of_compilation): Do it here instead.  Move call
4962         to remove_unnecessary_notes after emitting abstract instance.
4963         Force an emitted nested function to have its parent emited as well.
4964         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
4965         for null.
4966         (rtl_for_decl_location): Do not look at reload data structures
4967         before reload has run.
4968
4969 2002-01-05  Kazu Hirata  <kazu@hxi.com>
4970
4971         * cse.c: Fix formatting.
4972         * dwarf2asm.c: Likewise.
4973         * dwarf2out.c: Likewise.
4974         * explow.c: Likewise.
4975         * expmed.c: Likewise.
4976         * function.c: Likewise.
4977         * gcov.c: Likewise.
4978         * gencheck.c: Likewise.
4979         * genrecog.c: Likewise.
4980         * ggc-common.c: Likewise.
4981         * ggc-page.c: Likewise.
4982         * global.c: Likewise.
4983
4984 2002-01-05  Kazu Hirata  <kazu@hxi.com>
4985
4986         * combine.c: Fix formatting.
4987
4988 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
4989
4990         PR middle-end/1557
4991         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
4992
4993 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
4994
4995         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
4996         as 1 for __powerpc64__ as well.
4997
4998         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
4999
5000         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
5001         return it.
5002
5003 2002-01-05  Daniel Berlin  <dan@dberlin.org>
5004
5005         * lcm.c: Revert change, due to performance regression it causes on
5006         SPEC because it's slightly more conservative (sigh, I hate
5007         edge-based LCM).
5008
5009 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
5010
5011         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
5012
5013 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5014
5015         * doc/cppinternals.texi: Update.
5016
5017 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
5018
5019         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
5020         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
5021         negatives.
5022         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
5023         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
5024         kludge for pre-october-14th mmix versions to handle new-found bug
5025         with PUSHJ/PUSHGO and the register stack.
5026         * config/mmix/mmix.h (struct machine_function): Rename member
5027         has_call_value_without_parameters to has_call_without_parameters.
5028         All referers changed.
5029         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
5030         TARGET_MASK_BRANCH_PREDICT): New macros.
5031         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
5032         -mno-reg-stack-fill-bug-workaround.
5033         * config/mmix/mmix.md ("call"): Set struct machine member
5034         has_call_without_parameters.
5035
5036 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
5037
5038         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
5039
5040 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
5041
5042         * cfgcleanup.c: Include tm_p.h
5043         (mark_effect): Fix handling of hard register; fix handling of SET
5044
5045 2002-01-04  Kazu Hirata  <kazu@hxi.com>
5046
5047         * config/h8300/h8300.md (anonymous patterns): Check that
5048         operands are registers before using REGNO on them.
5049
5050 2002-01-03  Roland McGrath  <roland@frob.com>
5051
5052         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
5053
5054 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
5055
5056         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
5057         * c-common.h (genrtl_expr_stmt_value): Likewise.
5058         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
5059         (expand_expr_stmt_value): Add maybe_last argument.
5060         Don't warn about statement with no effect if it is the last statement
5061         in expression statement.
5062         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
5063         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
5064         expand_expr_stmt_value.
5065         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
5066         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
5067         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
5068         as maybe_last to expand_expr_stmt_value.
5069
5070 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
5071
5072         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
5073         be passed in, do not build it.
5074         (c_begin_if_stmt): New function.
5075         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
5076         * c-common.h (c_expand_start_cond): Update prototype.
5077         (c_begin_if_stmt): Prototype new function.
5078         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
5079         * c-parse.in (if_prefix): Use c_begin_if_stmt,
5080         c_begin_while_stmt and c_finish_while_stmt_cond.
5081
5082 2002-01-04  William Cohen  <wcohen@redhat.com>
5083
5084         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
5085         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
5086         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
5087         * config/pa/som.h (ASM_FILE_START): Likewise.
5088
5089 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
5090
5091         * lcm.c: Include df.h.
5092         Add available_transfer_function prototype.
5093         (compute_available): Rework to use iterative dataflow framework.
5094         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
5095         with bb_info in df.h
5096         (available_transfer_function): New function.
5097
5098         * Makefile.in (lcm.o): add df.h to dependencies.
5099
5100 2002-01-04  Richard Henderson  <rth@redhat.com>
5101
5102         * config/alpha/alpha.c (some_operand): Accept HIGH.
5103         (input_operand): Likewise; accept simple references to globals.
5104         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
5105         (alpha_const_double_ok_for_letter_p): Likewise.
5106         (alpha_extra_constraint): Likewise.
5107         (alpha_preferred_reload_class): Likewise.  Do not force
5108         symbolic constants to memory.
5109         (alpha_legitimate_address_p): Accept simple references
5110         to small_symbolic_operand.
5111         (alpha_legitimize_address): New arg scratch.  Be prepared to be
5112         called when no_new_pseudos.  Emit simple symbolic references.
5113         Split integers into low, high, and rest.
5114         (alpha_expand_mov): Use alpha_legitimize_address.
5115         (some_small_symbolic_mem_operand): New.
5116         (split_small_symbolic_mem_operand): New.
5117         * config/alpha/alpha-protos.h: Update.
5118         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
5119         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
5120         (EXTRA_CONSTRAINT): Likewise.
5121         (PREFERRED_RELOAD_CLASS): Likewise.
5122         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
5123         (PREDICATE_CODES): Update.
5124         * config/alpha/alpha.md: New post-reload splitters to convert
5125         simplfied symbolic operands to the form that references $29.
5126         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
5127         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
5128
5129 2002-01-03  Richard Henderson  <rth@redhat.com>
5130
5131         * local-alloc.c (function_invariant_p): Update commentary.
5132
5133 2002-01-04  H.J. Lu <hjl@gnu.org>
5134
5135         * toplev.c (rest_of_compilation): Fix a typo when calling
5136         cleanup_cfg.
5137
5138 2002-01-03  Kazu Hirata  <kazu@hxi.com>
5139
5140         * c-common.c: Fix formatting.
5141         * diagnostic.c: Likewise.
5142         * doloop.c: Likewise.
5143         * dwarf2out.c: Likewise.
5144
5145 2002-01-03  Kazu Hirata  <kazu@hxi.com>
5146
5147         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
5148         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
5149
5150 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5151
5152         * cpperror.c: Update comments and copyright.
5153         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
5154         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
5155
5156 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5157
5158         * collect2.c (main): Use strcmp when testing for "-shared".
5159
5160 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5161
5162         * cppmacro.c: Don't include intl.h.  Update comments.
5163         (new_number_token): Allocate enough buffer for 64-bit unsigned
5164         integers; update prototype.
5165         * cppmain.c: Update comments.
5166
5167 2002-01-03  William Cohen  <wcohen@redhat.com>
5168
5169         * function.h (struct function): Add profile.
5170         (current_function_profile): New.
5171         doc/extend.texi: Update documentation.
5172         * final.c (final_start_function): Use current_function_profile
5173         instead of profile_flag.
5174         (profile_after_prologue): Likewise.
5175         * function.c (expand_function_start): Likewise.
5176         (expand_function_start): Likewise.
5177         * config/alpha/alpha.c (direct_call_operand):
5178         (alpha_does_function_need_gp): Likewise.
5179         (alpha_expand_prologue): Likewise.
5180         * config/arm/arm.c (arm_expand_prologue): Likewise.
5181         thumb_expand_prologue: Likewise.
5182         * config/d30v/d30v.c (d30v_stack_info): Likewise.
5183         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
5184         (fr30_expand_prologue): Likewise.
5185         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
5186         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
5187         * config/i386/i386.h (FINALIZE_PIC): Likewise.
5188         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
5189         * config/i960/i960.c (i960_output_function_prologue): Likewise.
5190         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
5191         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
5192         (m32r_expand_prologue): Likewise.
5193         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
5194         (m88k_expand_prologue): Likewise.
5195         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
5196         * config/mips/mips.c (compute_frame_size): Likewise.
5197         (mips_expand_prologue): Likewise.
5198         (mips_can_use_return_insn): Likewise.
5199         * config/pa/elf.h (ASM_FILE_START): Likewise.
5200         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
5201         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
5202         * config/pa/som.h (ASM_FILE_START): Likewise.
5203         * config/romp/romp.c (romp_using_r14): Likewise.
5204         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
5205         (rs6000_stack_info): Likewise.
5206         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5207         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
5208         * config/v850/v850.c (compute_register_save_size): Likewise.
5209
5210 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
5211
5212         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
5213         gen_lowpart_common fails, use gen_lowpart_SUBREG.
5214
5215 2002-01-03  Turly O'Connor  <turly@apple.com>
5216
5217         * darwin.c (machopic_output_possible_stub_label): Don't generate
5218         stub routines for pseudo-stubs which we've just defined.
5219
5220 2002-01-03  Kazu Hirata  <kazu@hxi.com>
5221
5222         * builtins.c: Fix formatting.
5223         * c-typeck.c: Likewise.
5224         * combine.c: Likewise.
5225         * expr.c: Likewise.
5226         * loop.c: Likewise.
5227
5228 2002-01-03  Andreas Schwab  <schwab@suse.de>
5229
5230         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
5231         and return true if _cpp_push_next_buffer pushed a new include
5232         file.
5233         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
5234         _cpp_pop_file_buffer did not push a new file.
5235         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
5236
5237 2002-01-02  Eric Christopher  <echristo@redhat.com>
5238
5239         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
5240         FIND_REG_INC_NOTE call. Update copyright.
5241         * loop.c (canonicalize_condition): Ditto.
5242         * reorg.c (delete_scheduled_jump): Ditto.
5243
5244 2002-01-03  Kazu Hirata  <kazu@hxi.com>
5245
5246         * gcse.c: Fix formatting.
5247
5248 2002-01-03  Graham Stott  <grahams@redhat.com>
5249
5250         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
5251         forward defs for struct tags rtx_def, union_tree, rtvec_def
5252         also output corresponding typedefs for rtx, tree, and rtvec.
5253
5254         * system.h: Move forward defs for struct tags rtx_def, union_tree,
5255         rtvec_def along with corresponding typedefs for rtx, tree, and
5256         rtvec to config.h, hconfig.h, tconfig.h.
5257
5258 2002-01-03  Graham Stott  <grahams@redhat.com>
5259
5260         * tree.h: Update copyright date.
5261         (IS_EXPR_CODE_CLASS): Add parenthesis.
5262         (TREE_SET_CODE): Add whitespace.
5263         (TREE_CHECK): Add parenthesis.
5264         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
5265         (CST_OR_CONSTRUCTOR_CHECK):
5266         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
5267         (TREE_SYMBOL_REFERENCED): Whitespace.
5268         (INT_CST_LT): Likewise.
5269         (INT_CST_LT_UNSIGNED): Likewise.
5270         (tree_real_cst): Unwrap comment.
5271         (tree_string): Likewise.
5272         (tree_complex): Likewise.
5273         (IDENTIFIER_POINTER): correct cast.
5274         (SAVE_EXPR_CONTEXT): Whitespace.
5275         (EXPR_WFL_FILENAME_NODE): Likewise.
5276         (EXPR_WFL_FILENAME): Remove parenthesis.
5277         (DECL_ORIGIN): Add parenthesis.
5278         (DECL_FROM_INLINE): Use NULL_TREE.
5279         (build_int_2): Whitespace.
5280         (build_type_variant): Add parenthesis.
5281
5282         * gcc/jcf-parse.c: Update copyright date.
5283         (yyparse): Constify resource_filename.
5284
5285 2002-01-03  Graham Stott  <grahams@redhat.com>
5286
5287         * rtl.h: Update copyright date.
5288         (RTL_CHECK1): Wrap long line.
5289         (RTL_CHECK2): Likewise.
5290         (RTL_CHECKC1): Wrap long line and whitespace.
5291         (RTL_CHECKC2): Likewise.
5292         (XWINT): Whitespace.
5293         (XINT): Likewise.
5294         (XSTR): Likewise.
5295         (XEXP): Likewise.
5296         (XVEC): Likewise.
5297         (XMODE): Likewise.
5298         (XBITMAP): Likewise.
5299         (XTREE): Likewise.
5300         (XBBDEF): Likewise.
5301         (XTMPL): Likewise.
5302         (X0WINT): Likewise.
5303         (X0INT):Likewise.
5304         (X0UINT): Likewise.
5305         (X0STR): Likewise.
5306         (X0EXP): Likewise.
5307         (X0VEC): Likewise.
5308         (X0MODE): Likewise.
5309         (X0BITMAP): Likewise.
5310         (X0TREE): Likewise.
5311         (X0BBDEF): Likewise.
5312         (X0ADVFLAGS): Likewise.
5313         (X0CSELIB): Likewise.
5314         (X0MEMATTR): Likewise.
5315         (XCWINT): Likewise.
5316         (XCINT): Likewise.
5317         (XCUINT): Likewise.
5318         (XCSTR): Likewise.
5319         (XCEXP): Likewise.
5320         (XCVEC): Likewise.
5321         (XCMODE): Likewise.
5322         (XCBITMAP): Likewise.
5323         (XCTREE): Likewise.
5324         (XCBBDEF): Likewise.
5325         (XCADVFLAGS): Likewise.
5326         (XCCSELIB): Likewise.
5327         (XC2EXP): Likewise.
5328         (INSN_UID): Likewise.
5329         (PREV_INSN): Likewise.
5330         (PATTERN): Likewise.
5331         (INSN_CODE): Likewise.
5332         (PUT_REG_NOTE_KIND): Likewise.
5333         (CODE_LABEL_NUMBER): Likewise.
5334         (NOTE_SOURCE_FILE): Likewise.
5335         (NOTE_BLOCK): Likewise.
5336         (NOTE_EH_HANDLER): Likewise.
5337         (NOTE_RANGE_INFO): Likewise.
5338         (NOTE_LIVE_INFO): Likewise.
5339         (NOTE_BASIC_BLOCK): Likewise.
5340         (NOTE_EXPECTED_VALUE): Likewise.
5341         (NOTE_LINE_NUMBER): Likewise.
5342         (LABEL_NAME): Likewise.
5343         (LABEL_NUSES): Likewise.
5344         (LABEL_ALTERNATE_NAME): Likewise.
5345         (ADDRESSOF_DECL): Likewise.
5346         (JUMP_LABEL): Likewise.
5347         (LABEL_NEXTREF): Likewise.
5348         (REGNO): Likewise.
5349         (ORIGINAL_REGNO: Likewise.
5350         (HARD_REGISTER_NUM_P): Add parenthesis.
5351         (SUBREG_REG): Whitespace.
5352         (SUBREG_BYTE): Likewise.
5353         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
5354         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
5355         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
5356         (ASM_OPERANDS_INPUT_VEC): Likewise.
5357         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
5358         (ASM_OPERANDS_INPUT): Likewise.
5359         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
5360         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
5361         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
5362         (ASM_OPERANDS_INPUT_MODE): Likewise.
5363         (ASM_OPERANDS_SOURCE_FILE): Likewise.
5364         (ASM_OPERANDS_SOURCE_LINE): Likewise.
5365         (MEM_SET_IN_STRUCT_P): Minor reformat.
5366         (TRAP_CONDITION): Whitespace.
5367         (TRAP_CODE): Likewise.
5368         (COND_EXEC_TEST): Likewise.
5369         (COND_EXEC_CODE): Likewise.
5370         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
5371         (PHI_NODE_P): Add parenthesis.
5372         (plus_constant): Whitespace and add parenthesis.
5373
5374 2002-01-03  Kazu Hirata  <kazu@hxi.com>
5375
5376         * config/avr/avr.c: Fix comment typos.
5377         * config/c4x/c4x.md: Likewise.
5378         * config/dsp16xx/dsp16xx.h: Likewise.
5379         * config/dsp16xx/dsp16xx.md: Likewise.
5380         * config/i386/i386.md: Likewise.
5381         * config/ia64/ia64.c: Likewise.
5382         * config/m32r/m32r.h: Likewise.
5383         * config/m68hc11/m68hc11.md: Likewise.
5384         * config/mmix/mmix.c: Likewise.
5385         * config/mn10200/mn10200.c: Likewise.
5386         * config/romp/romp.c: Likewise.
5387         * config/sh/sh.c: Likewise.
5388         * config/stormy16/stormy16.c: Likewise.
5389         * config/stormy16/stormy16.h: Likewise.
5390         * config/stormy16/stormy16.md: Likewise.
5391
5392 2002-01-03  Graham Stott  <grahams@redhat.com>
5393
5394         * loop.h: Update copyright date.
5395         (LOOP_MOVABLES): Fix typo.
5396         (LOOP_REGS): Likewise.
5397         (LOOP_IVS): Likewise.
5398
5399 2002-01-03  Graham Stott  <grahams@redhat.com>
5400
5401         * cppinit.c: Update copyright date.
5402         Don't include output.h
5403         * Makefile.in: Update copyright date.
5404         Update dependency.
5405
5406 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5407
5408         PR c/5226
5409         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
5410         (-pthread) Add to RS/6000 options.
5411
5412 2002-01-02  Kazu Hirata  <kazu@hxi.com>
5413
5414         * except.c: Fix comment typos.
5415         * loop.c: Likewise.
5416         * varasm.c: Likewise.
5417         * doc/tm.texi: Fix a typo.
5418
5419 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
5420
5421         * c-typeck.c (output_init_element): Allow initializing static storage
5422         duration objects with compound literals.
5423
5424 2002-01-02  Richard Henderson  <rth@redhat.com>
5425
5426         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
5427         after abusing it.
5428
5429 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5430
5431         * gcc.c (default_compilers): Const-ify.
5432         * mips-tdump.c (stab_names): Likewise.
5433         * mips-tfile.c (map_coff_types, map_coff_storage,
5434         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
5435         pseudo_ops_t, pseudo_ops): Likewise.
5436         * protoize.c (default_include): Likewise
5437
5438         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
5439         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
5440         Add array size in declaration.
5441         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
5442         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
5443         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
5444         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
5445         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
5446         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
5447         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
5448         emtens, make_nan): Const-ify.
5449         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
5450         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
5451
5452 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
5453
5454         * config.gcc (ia64-*-*): Set extra_headers.
5455         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
5456         * config/alpha/t-osf: Remove.
5457         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
5458
5459 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
5460
5461         * config/rs6000/t-aix43: Revert previous change.
5462
5463 2002-01-02  Jason Merrill  <jason@redhat.com>
5464
5465         * c-decl.c (c_expand_body): Call outlining_inline_function when
5466         emitting an inline function out of line.
5467
5468 2002-01-02  Richard Henderson  <rth@redhat.com>
5469
5470         * dwarf2out.c (limbo_die_node): Add created_for member.
5471         (new_die): New argument created_for.  Update all callers.
5472         (mark_limbo_die_list): New.
5473         (dwarf2out_init): Register limbo_die_list as a root.
5474         (dwarf2out_finish): Force insert limbo dies into their function
5475         context.
5476
5477 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5478
5479         PR c++/5089
5480         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
5481
5482 2002-01-02  Kazu Hirata  <kazu@hxi.com>
5483
5484         * config/h8300/fixunssfsi.c: Update copyright.
5485         Fix comment typos.
5486         Fix formatting.
5487         * config/h8300/h8300.c: Update copyright.
5488         Eliminate warnings.
5489
5490 2002-01-02  Kazu Hirata  <kazu@hxi.com>
5491
5492         * config/romp/romp.c: Fix comment formatting.
5493         * config/romp/romp.h: Likewise.
5494         * config/romp/romp.md: Likewise.
5495         * config/s390/s390.c: Likewise.
5496         * config/stormy16/stormy16.c: Likewise.
5497         * config/stormy16/stormy16.h: Likewise.
5498
5499 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
5500
5501         * c-common.h (genrtl_expr_stmt_value): Declare.
5502         * c-semantics.c (genrtl_goto_stmt): Redirect to...
5503         (genrtl_goto_stmt_value): ... this new function.  Pass new
5504         argument down to expand_expr_stmt_value, taking
5505         TREE_ADDRESSABLE into account.
5506         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
5507         STMT_EXPR as addressable, i.e., one whose result we want.
5508         * expr.c (expand_expr): Don't save expression statement value
5509         of labeled_blocks or loop_exprs.
5510         * stmt.c (expand_expr_stmt): Redirect to...
5511         (expand_expr_stmt_value): ... this new function.  Use new
5512         argument to tell whether to save expression value.
5513         (expand_end_stmt_expr): Reset last_expr_type and
5514         last_expr_value if we don't have either.
5515         * tree-inline.c (declare_return_variable): Mark its use
5516         statement as addressable.
5517         * tree.h: Document new use of TREE_ADDRESSABLE.
5518         (expand_expr_stmt_value): Declare.
5519
5520 2002-01-01  Tom Rix  <trix@redhat.com>
5521
5522         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
5523         rs6000_emit_allocate_stack.
5524
5525 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
5526
5527         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
5528         ${srcdir}/ginclude/ to every entry in extra_headers.
5529         * configure: Regenerate.
5530         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
5531         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
5532         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
5533         * ginclude/proto.h: Rename to config/convex/proto.h.
5534
5535 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5536
5537         * attribs.c (handle_vector_size_attribute): Use host_integerp
5538         and tree_int_cst; remove warnings.
5539         * caller-save.c (insert_restore): Add cast to get rid of warning.
5540         (insert_save): Likewise.
5541         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
5542         * regmove.c (find_matches): Add temporary var to kill a warning.
5543
5544 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
5545
5546         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
5547         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
5548         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
5549         (vms-dwarf2eh.o): Add Makefile rule.
5550         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
5551         * config/alpha/vms-dwarf2eh.asm: New file.
5552
5553         * gcc.c (delete_if_ordinary): Delete all versions.
5554
5555 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
5556
5557         * config/mmix/mmix.md: Update FIXME to not mention
5558         define_constants.
5559         (MMIX_rJ_REGNUM): New define_constants constant.
5560         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
5561         "*movdicc_real"): Adjust contraints formatting.
5562         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
5563         for branch prediction.
5564         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
5565         output template.
5566         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
5567         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
5568         number.  Delete related FIXMEs.
5569         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
5570         from number to MMIX_rJ_REGNUM.
5571         (TARGET_MASK_BRANCH_PREDICT): New.
5572         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
5573         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
5574         value.  Add -mbranch-predict and -mno-branch-predict.
5575         (TARGET_VERSION): Drop date.
5576         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
5577         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
5578         for finding out global symbols.
5579         (mmix_asm_output_labelref): Revert condition for global symbol.
5580         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
5581         (mmix_print_operand_punct_valid_p): A '+' is valid.
5582
5583 See ChangeLog.6 for earlier changes.