OSDN Git Service

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