OSDN Git Service

* config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-04-18  Richard Henderson  <rth@redhat.com>
2
3         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
4         (ia64_va_arg): Expect variable sized types by reference.
5         * config/ia64/ia64-protos.h: Update.
6         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use 
7         ia64_function_arg_pass_by_reference.
8
9 2002-04-18  Richard Henderson  <rth@redhat.com>
10
11         * ifcvt.c: Include except.h.
12         (block_has_only_trap): Break out from find_cond_trap.
13         (find_cond_trap): Use it.  Always delete the trap block.
14         (merge_if_block): Allow then block null.  Be less simplistic about
15         what insns can end a block.
16         * Makefile.in (ifcvt.o): Depend on except.h.
17
18         * config/ia64/ia64.md (trap, conditional_trap): New.
19
20 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
21
22         PR c/6358
23         * function.c (assign_parms): Assign hard current_function_return_rtx
24         register here...
25         (expand_function_end): ...not here.
26
27 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
28
29         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
30         * c-tree.h (c_incomplete_type_error): New.
31         * c-typeck.c (require_complete_type, build_component_ref): Update.
32         (incomplete_type_error): Rename.
33         * langhooks-def.h (lhd_incomplete_type_error): New.
34         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
35         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
36         * langhooks.c (lhd_incomplete_type_error): New.
37         * langhooks.h (struct lang_hooks_for_types): New hook.
38         * tree.c (size_in_bytes): Use new hook.
39         * tree.h (incomplete_type_error): Remove.
40 objc:
41         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
42
43 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
44
45         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
46         TARGET_FLOAT_FORMAT blocks.
47
48 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
49
50         * doc/install.texi (Downloading the source): Do not mention Chill
51         any longer, but mention Ada.
52         (Configuration): Do not mention Chill any longer.
53
54 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
55
56         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
57
58 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
59
60         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
61         in last patch.
62
63 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
64
65         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
66         instead of unsigned_type.
67
68 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
69
70         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
71         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
72         later.
73
74 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
75
76         * attribs.c (vector_type_node_list): New static variable.
77         (handle_vector_size_attribute): Use it to avoid generating a
78         new type node each time we are called.
79
80         * combine.c (subst): Avoid trying to make a vector mode subreg of
81         an integer constant.
82         (gen_lowpart_for_combine): Likewise.
83                         
84 2002-04-18  Roger Sayle  <roger@eyesopen.com>
85             Jakub Jelinek  <jakub@redhat.com>
86
87         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
88         for integer constant c (if x has unsigned type or sign bit is not
89         set in c).  This folds the zero/sign extension into the bit-wise and
90         operation.
91
92 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
93
94         PR middle-end/6205
95         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
96         otherwise xorps.
97
98 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
99
100         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
101
102 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
103
104         * gcc.c (read_specs): Detect and fail if an attempt is made to
105         rename a spec string to an already existing string.
106
107 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
108
109         * config/s390/s390.c (legitimize_pic_address): Do not generate
110         illegal address constant without CONST.
111
112 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
113
114         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
115         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
116
117 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
118
119         PR optimization/6305
120         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
121         to make sure previous reloads are taken into account.  Generate
122         better code if one operand is an in-range immediate constant.
123
124 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
125
126         * doc/install.texi (Building): libgcj requires GNU make.
127
128 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
129
130         PR bootstrap/6315
131         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
132         even if hard quad and register is not floating.
133         (movtf reg<-mem split): Disallow splitting if hard quad and
134         register is floating.
135         (movtf mem<-reg split): Likewise.
136         * config/sparc/sparc.c (fp_register_operand): New predicate.
137         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
138
139 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
140
141         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
142         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
143         (unprotoize.o): Ditto.  Build from protoize.c.  Define
144         UNPROTOIZE on command line.
145         * protoize.c: Include cppdefault.h.  Delete include_defaults.
146         (in_system_include_dir): Use cpp_include_defaults (defined in
147         cppdefault.o).
148         * unprotoize.c: Delete file.
149
150 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
151
152         * config/rs6000/altivec.h (vec_ld): Add array variants.
153         (vec_lde): Same.
154         (vec_ldl): Same.
155
156 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
157             Aldy Hernandez <aldyh@redhat.com>
158
159         * config/rs6000/altivec.h: Define __ALTIVEC__.
160         (bool): New.
161         (__pixel): New.
162         (pixel): New.
163         (vec_cfux): New.
164         (vec_vmaddfp): New.
165         (vec_vsldoi): New.
166         Add parentheses to all macro arguments.
167
168 2002-04-16  Richard Henderson  <rth@redhat.com>
169
170         PR c++/6320
171         * except.c (remove_eh_handler): Insert inner regions at beginning
172         of sibling chain.  Refactor expressions.
173
174 2002-04-16  Richard Henderson  <rth@redhat.com>
175
176         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
177         * config/sparc/sol2-gas-bi.h: New file.
178         * config.gcc (sparc*-solaris): Add it as needed.
179         * configure.in (AS_SPARC64_FLAG): Remove check.
180         * config.in, configure: Regenerate.
181
182         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
183
184 2002-04-16  Richard Henderson  <rth@redhat.com>
185
186         * config/mips/mips.c (override_options): Don't override N32 for
187         a 64-bit ISA.
188
189         PR 6202
190         * config/mips/mips.md (can_delay): Split out of existing define_delays.
191         (HILO_delay): Set can_delay false.
192
193 2002-04-16  Dale Johannesen <dalej@apple.com>
194
195         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
196         instruction addresses.
197         (rs6000_output_function_epilogue): Likewise.
198
199 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
200
201         * c-parse.in (poplevel, compstmt_start,
202         compstmt_primary_start): Add ending ';', in accordance
203         with POSIX.
204
205 2002-04-16  Richard Henderson  <rth@redhat.com>
206
207         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
208         Adjust tm_file order to get TARGET_DEFAULT set properly.
209         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
210         * doc/install.texi (sparc-solaris): Update.
211
212 2002-04-16  Dale Johannesen <dalej@apple.com>
213
214         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
215         comparison operands do not match each other or if modes of
216         conditions do not match result.
217
218 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
219
220         PR target/6305
221         * config/s390/s390.md (mulsidi3): Set both subregs of the
222         multiword register. 
223
224 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
225
226         * config/rs6000/altivec.h (vec_addc): Type check.
227
228 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
229
230         PR middle-end/6279
231         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
232
233         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
234
235 2002-04-15  Richard Henderson  <rth@redhat.com>
236
237         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
238         call_really_used_regs too.
239
240 2002-04-15  Richard Henderson  <rth@redhat.com>
241
242         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
243
244 2002-04-15  David S. Miller  <davem@redhat.com>
245
246         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
247         as being CLOBBERed.
248
249 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
250
251         PR c/6290
252         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
253         CONST_VECTOR is { 0, ... 0 }.
254
255 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
256
257         * doc/install.texi (Installing GCC: Configuration): Clarify
258         the only supported ways to configure gcc.
259
260 2002-04-15  Roland McGrath  <roland@frob.com>
261  
262         * config.gcc (alpha*-*-gnu*): New target configuration.
263         * config/alpha/gnu.h: New file for it.
264         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
265
266 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
267
268         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
269         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
270         * tree.h (expand_start_stmt_expr): Update prototype.
271         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
272         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
273         on the STMT_EXPR created for the inline function.
274         
275 2002-04-15  Richard Henderson  <rth@redhat.com>
276
277         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
278         config/i386/linux-aout.h, config/i386/linux-oldld.h,
279         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
280         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
281         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
282         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
283         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
284         Define __gnu_linux__, not gnu_linux.
285         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
286
287 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
288
289         Remove Chill front end.
290         * gcc.c (default_compilers): Remove Chill entries.
291         * ch: Remove directory.
292         * doc/frontends.texi: Remove information about Chill.
293         * doc/sourcebuild.texi: Likewise.
294         * doc/standards.texi: Likewise.
295
296 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
297
298         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
299         (LONGLONG_STANDALONE): Define.
300
301 2002-04-15  David S. Miller  <davem@redhat.com>
302
303         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
304         Call emit_library_call with LCT_NORMAL.
305         (sparc_initialize_trampoline): Use LCT_foo instead of
306         magic constant in emit_library_call invocations.
307         (sparc64_initialize_trampoline): Likewise.
308         (sparc_profile_hook): Likewise.
309         * config/sparc/sparc.md: Likewise.
310
311         * config/sparc/sparc.c (sparc_extra_constraint_check):
312         Fix type of argument 'c'.
313         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
314         Likewise.
315
316 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
317
318         * diagnostic.h (output_buffer_state): Redefine.
319         (output_format_decoder): New macro.
320         (output_prefixing_rule): Likewise.
321         (output_line_cutoff): Likewise.
322         (diagnostic_format_decoder): Adjust.
323         (diagnostic_prefixing_rule): Likewise.
324         (diagnostic_line_cutoff): Likewise.
325         (diagnostic_state): Likewise.
326         (diagnostic_kind_count): Likewise.
327         (diagnostic_buffer): Now a macro.
328
329         * diagnostic.c (diagnostic_buffer): Remove definition.
330         (output_is_line_wrapping): Adjust.
331         (set_real_maximum_length): Likewise.
332         (output_set_maximum_length): Likewise.
333         (init_output_buffer): Likewise.
334         (lhd_print_error_function): Likewise.
335         (output_do_verbatim): Likewise.
336
337 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
338
339         * cpperror.c (print_location): Don't print include chain
340         if line == 0.
341         (cpp_begin_message): Update to use DL_ macros.
342         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
343         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
344         cpp_notice, cpp_notice_from_errno): Remove.
345         (cpp_error, cpp_error_with_line): Update to take a diagnostic
346         level.
347         (cpp_errno): New.
348         * cppexp.c (CPP_ICE): Remove.
349         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
350         lex, integer_overflow, _cpp_parse_expr): Update.
351         * cppfiles.c (read_include_file, find_include_file,
352         handle_missing_header, _cpp_read_file, remap_filename): Update.
353         * cpphash.h (enum error_type): Remove.
354         (_cpp_begin_message): Update.
355         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
356         cpp_handle_option, cpp_post_options): Update.
357         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
358         skip_whitespace, parse_identifier, parse_slow, parse_string,
359         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
360         cpp_interpret_charconst): Update.
361         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
362         lex_macro_node, do_undef, glue_header_name, parse_include,
363         do_include_common, read_flag, do_line, do_linemarker, do_ident,
364         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
365         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
366         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
367         _cpp_pop_buffer, do_diagnostic): Update.
368         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
369         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
370         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
371         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
372         cpp_notice, cpp_notice_from_errno): Remove.
373         (cpp_error, cpp_error_with_line): Update to take a diagnostic
374         level.
375         (cpp_errno): New.
376         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
377         collect_args, enter_macro_context, save_parameter, parse_params,
378         _cpp_create_definition, check_trad_stringification,
379         cpp_macro_definition): Update.
380         * cppmain.c (cpp_preprocess_file): Update.
381         * fix-header.c (read_scan_file): Update.
382
383 2002-04-14  Andreas Schwab  <schwab@suse.de>
384
385         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
386
387 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
388
389         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
390
391 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
392
393         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
394         not gnu_hurd.
395
396 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
397
398         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
399
400 2002-04-13      Joel Sherrill <joel@OARcorp.com>
401
402         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
403         sparc-elf and sparc-rtems targets.
404
405 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
406
407         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
408         defined, and __gnu_hurd__ wherever __GNU__ is defined.
409         * arm/linux-elf.h: Likewise.
410         * cris/aout.h: Likewise.
411         * cris/linux.h: Likewise.
412         * i370/linux.h: Likewise.
413         * i386/gnu.h: Likewise.
414         * i386/linux-aout.h: Likewise.
415         * i386/linux-oldld.h: Likewise.
416         * i386/linux.h: Likewise.
417         * i386/linux64.h: Likewise.
418         * ia64/linux.h: Likewise.
419         * m68k/linux-aout.h: Likewise.
420         * m68k/linux.h: Likewise.
421         * mips/linux.h: Likewise.
422         * pa/pa-linux.h: Likewise.
423         * pj/linux.h: Likewise.
424         * rs6000/sysv4.h: Likewise.
425         * s390/linux.h: Likewise.
426         * sh/linux.h: Likewise.
427         * sparc/linux-aout.h: Likewise.
428         * sparc/linux.h: Likewise.
429         * sparc/linux64.h: Likewise.
430         * xtensa/linux.h: Likewise.
431
432 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
433
434         * stmt.c (check_unique_operand_names): Expect operand names to
435         be strings rather than identifiers.  Use simple_cst_equal to
436         compare them.
437         (resolve_operand_name_1): Make same identifier to string change here.
438         * c-parse.in (asm_operand): Convert a named operand into a string.
439         * cp/parse.y (asm_operand): Likewise.
440
441 2002-04-13  Andreas Schwab  <schwab@suse.de>
442
443         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
444
445 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
446
447         Revert these changes:
448
449         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
450
451         PR c++/5571
452         * stor-layout.c (layout_decl): Reset the RTL for the decl.
453
454 2002-04-12  Richard Henderson  <rth@redhat.com>
455
456         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
457         (sparc*-*-solaris): Clean up header files.
458         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
459         and plan on generating 64-bit code.
460         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
461         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
462         * config/sparc/sol2-sld-64.h: Rename ...
463         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
464         for AS_SPARC64_FLAG not defined.
465         * config/sparc/sol2-gld-bi.h: New.
466         * config/sparc/sol2-sld.h: Remove.
467         * config/sparc/sol26-sld.h: New.
468         * config/sparc/sol2.h: Tidy comments.
469         * doc/install.texi: Document sparc-solaris configury changes.
470
471 2002-04-12  Richard Henderson  <rth@redhat.com>
472
473         * recog.c (offsettable_address_p): Match the logic in adjust_address.
474
475         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
476         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
477
478 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
479
480         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
481
482 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
483
484         * pa.c (pa_can_combine_p): Call extract_insn before calling
485         constrain_operands.
486
487 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
488
489         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
490         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
491         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
492         (CPP_PREDEFINES): Handle __declspec.
493         * config/i386/t-interix (USER_H): Remove.
494
495 2002-04-12  DJ Delorie  <dj@redhat.com>
496
497         * integrate.c (compare_blocks): Make comparisons safe for when
498         sizeof(int) < sizeof(char *).
499         (find_block): Likewise.
500
501 2002-04-12  Jan Hubicka  <jh@suse.cz>
502             David Edelsohn  <edelsohn@gnu.org>
503
504         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
505         registers.
506         (symbol_ref_operand): New.
507         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
508         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
509
510 2002-04-12  Andreas Schwab  <schwab@suse.de>
511
512         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
513         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
514         overrides the definition in config/svr4.h.
515         
516 2002-04-12      Eric Norum <eric.norum@usask.ca>
517
518         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
519         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
520         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
521         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
522         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
523         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
524         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
525         definitions to config/rtems.h and make the targets more similar.
526
527 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
528
529         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
530         POINTERS_EXTEND_UNSIGNED.
531         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
532         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
533
534         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
535         not specified.
536
537 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
538
539         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
540         depends on TARGET_SHMEDIA, not TARGET_SH5.
541
542 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
543
544         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
545         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
546
547 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
548
549         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
550         no r0 clobber.
551
552 2002-04-12  Andreas Schwab  <schwab@suse.de>
553
554         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
555
556 2002-04-12  Richard Henderson  <rth@redhat.com>
557
558         PR bootstrap/4191
559         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
560
561         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
562         modes spanning multiple hard regs.
563     
564         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
565
566 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
567
568         * pa.c (pa_output_function_prologue): Don't accumulate the total
569         number of code bytes when using TARGET_64BIT, or gas, SOM and not
570         the portable runtime.
571         (output_deferred_plabels): Handle 64bit plabels.
572         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
573         generating pic code using the GAS assembler for object formats that
574         are not SOM (ie., ELF32 and ELF64).
575         (output_millicode_call): Check attribute type if attribute length is 28.
576         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
577         dbr_sequence_length once.
578         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
579         dbr_sequence_length once.
580         * pa.h (TARGET_SOM): Define if not defined.
581         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
582         with GAS and not SOM.
583         (jump, call_internal_reg, call_value_internal_reg): Likewise.
584         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
585
586 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
587
588         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
589         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
590         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
591         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
592         elfos.h and dbxelf.h values are fine now.
593         * config/i386/freebsd.h, config/alpha/freebsd.h
594         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
595
596 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
597
598         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
599         or set Acpu or Amachine.  Reformat.
600         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
601         define.
602         (LINK_SPEC): Do not need to undef.
603         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
604         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
605         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
606         define.
607         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
608         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
609         (LINK_SPEC): Do not need to undef.
610         (DONT_USE_BUILTIN_SETJMP): Do not define.
611         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
612         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
613         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
614         Remove trailing spaces.
615         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
616         __ELF__, or set Acpu or Amachine.  Reformat.
617         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
618         define.
619
620 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
621
622         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
623         all other *-*-freebsd* targets.
624
625 2002-04-11  Richard Henderson  <rth@redhat.com>
626
627         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
628
629 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
630
631         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
632         Include {cpu}/{cpu}.h thru tm_file.
633         (alpha*-*-linux*ecoff): Remove target.
634         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
635         (LINK_SPEC): Remove, is not OS independent.
636         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
637         (LINK_SPEC): Do not need to #undef any longer.
638         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
639         any longer.
640         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
641         __ELF__.
642         (LINK_SPEC): Moved here from alpha/elf.h.
643         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
644         SUB_CPP_PREDEFINES.
645         * config/alpha/linux-ecoff.h: Remove.
646         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
647         (CPP_SPEC): Define _POSIX_SOURCE as needed.
648         (CPP_SUBTARGET_SPEC): Do not define.
649         (LINK_SPEC): Do not need to #undef any longer.
650         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
651         * config/alpha/vms.h: Likewise.
652
653 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
654
655         * doc/extend.texi: Remove old claim that typedefs cannot have
656         an alignment attribute.
657
658 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
659
660         PR optimization/6177
661         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
662         bitpos is 0 and bitsize CONCAT size.
663
664 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
665
666         PR c/6223
667         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
668
669 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
670
671         * config/alpha/freebsd.h: Minor reformatting.
672         (CPP_SPEC): Define ELF and add cpp_subtarget.
673         (ASM_SPEC): No longer needed.
674
675 2002-04-11  Richard Henderson  <rth@redhat.com>
676
677         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
678         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
679         (dimode mem/zero splitter): New.
680
681 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
682
683         * config/cris/cris.c (cris_override_options): Tweak error message
684         for PIC not implemented.
685
686         * config/cris/cris.h: Tweak comments related to parameter-passing.
687
688         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
689
690 2002-04-10  Richard Henderson  <rth@redhat.com>
691
692         * except.c (add_ehl_entry): Allow duplicates after landing pad
693         creation.
694
695 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
696
697         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
698
699 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
700
701         * c-decl.c (c_init_decl_processing): Move generation of
702         decls for g77_integer_type_node and friends from here ...
703         * c-common.c (c_common_nodes_and_builtins): ... to here.
704
705 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
706
707         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
708         is only used as frame pointer when frame_pointer_needed is true.
709
710 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
711
712         PR target/817
713         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
714         for the fact that the pool entry uses two words.
715         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
716         1k bytes.
717         (movdf_soft_insn): Similarly.
718         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
719         for the fact that the pool entry uses three words.
720
721 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
722
723         * config/mips/mips.c (mips_va_arg): When using the struct version
724         of the EABI va_list, allow arguments in the register save area to
725         take up less room than a stack argument.
726
727 2002-04-10  Richard Henderson  <rth@redhat.com>
728
729         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
730         if EXPAND_INITIALIZER.
731
732 2002-04-09  Richard Henderson  <rth@redhat.com>
733
734         * config/alpha/alpha.md (movdi_er_maybe_g): New.
735         * config/alpha/alpha.c (alpha_expand_mov): Use it.
736
737 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
738
739         PR optimization/6233
740         * rtlanal.c (pure_call_p): New function.
741         * rtl.h (pure_call_p): Declare.
742         * loop.c (prescan_loop): Use it to set has_nonconst_call.
743         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
744
745 2002-04-09  Eric Christopher  <echristo@redhat.com>
746
747         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
748         information to .comm directive.
749
750 2002-04-09  Richard Henderson  <rth@redhat.com>
751
752         PR c/5078
753         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
754
755 2002-04-09  Richard Henderson  <rth@redhat.com>
756
757         * basic-block.h (flow_delete_block_noexpunge): Declare.
758         (expunge_block_nocompact): Declare.
759         * cfg.c (expunge_block_nocompact): Split out from ...
760         (expunge_block): ... here.
761         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
762         (flow_delete_block_noexpunge): Split out from ...
763         (flow_delete_block): ... here.
764         * cfgcleanup.c (delete_unreachable_blocks): Compact while
765         removing dead blocks.
766         * except.c (exception_handler_labels): Remove.
767         (exception_handler_label_map): New.
768         (struct eh_region): Add aka member.
769         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
770         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
771         (for_each_eh_label, for_each_eh_label_1): New.
772         (init_eh): Register exception_handler_label_map.
773         (free_eh_status): Use free_region.
774         (find_exception_handler_labels): Use the map, not the list.
775         (remove_exception_handler_label): Likewise.
776         (maybe_remove_eh_handler): Likewise.
777         (remove_eh_handler): Use the region aka bitmap.
778         * except.h (exception_handler_labels): Remove.
779         (for_each_eh_label): Declare.
780         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
781         * loop.c (invalidate_loops_containing_label): New.
782         (find_and_verify_loops): Use it.  Use for_each_eh_label.
783         * sched-rgn.c (is_cfg_nonregular): Use
784         current_function_has_exception_handlers.
785
786 2002-04-09  Richard Henderson  <rth@redhat.com>
787
788         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
789         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
790         Do not return changed status.
791         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
792         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
793         New functions that do return changed status.
794         * sbitmap.h: Update decls.
795         * gcse.c, lcm.c: Use _cg functions as needed.
796
797 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
798
799         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
800         (sh64-*-elf*, sh-*-rtemself*): Likewise.
801         * config/sh/embed_bb.c: New file.
802         * config/sh/embed-elf.h: New file.
803         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
804         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
805         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
806         __PTRDIFF_TYPE__ .
807         (SUBTARGET_CPP_PTR_SPEC): Don't define.
808         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
809         Add subtarget_asm_endian_spec.
810         (ASM_SPEC): Use subtarget_asm_endian_spec.
811         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
812         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
813         (WCHAR_UNSIGNED): Define.
814         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
815         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
816         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
817         Fix value.
818         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
819         (sh_adjust_cost): Likewise.
820         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
821         __PTRDIFF_TYPE__ .
822         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
823         (WCHAR_TYPE_SIZE): Likewise.
824         (ASM_SPEC): Use subtarget_asm_endian_spec.
825         (SH_ELF_WCHAR_TYPE): #undef/ #define.
826         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
827         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
828         (MAX_WCHAR_TYPE_SIZE): Don't #define .
829         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
830         (USER_LABEL_PREFIX): Don't #undef /#define .
831         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
832         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
833         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
834         (ASM_SPEC): Likewise.
835         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
836         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
837         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
838         (LIB2FUNCS_EXTRA): Define.
839         * t-sh64 (LIB2FUNCS_EXTRA): Define.
840         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
841         (LIB1ASMFUNCS_CACHE): Define.
842         (LIB2FUNCS_EXTRA): Redefine empty.
843
844 2002-04-08  Richard Henderson  <rth@redhat.com>
845
846         * reorg.c (get_branch_condition): Use reversed_comparison_code.
847
848 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
849
850         * config/m68hc11/larith.asm (__map_data_section): Fix condition
851         and optimize for size.
852         (__do_global_ctors): Fix pointer comparison.
853         (__do_global_dtors): Likewise.
854
855 2002-04-09  David S. Miller  <davem@redhat.com>
856
857         * config/sparc/sparc.c (sparc_extra_constraint_check): New
858         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
859         allow reloading pseudos.
860         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
861         * config/sparc/sparc-protos.h: Declare it.
862
863         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
864         unsigned comparison warning.
865         (output_restore_regs): Mark leaf_function as unused.
866
867 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
868
869         * expr.c (is_aligning_offset): New function.
870         (expand_expr, case COMPONENT_EXPR): Call it.
871
872 2002-04-08  David S. Miller  <davem@redhat.com>
873
874         PR target/6082
875         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
876
877         Make init_priority work on Sparc when using GNU ld.
878         * config/sparc/linux.h, config/sparc/linux64.h,
879         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
880         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
881         * config/sparc/sol2-gld.h: New file to do the same.
882         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
883         sparc/sol2-gld.h to tm_file.
884
885         PR optimization/4328
886         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
887         * doc/md.texi: Document it.
888         * config/sparc/sparc.md (movdi_insn_sp64_novis,
889         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
890         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
891         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
892         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
893
894 2002-04-08  Andreas Jaeger  <aj@suse.de>
895
896         * stmt.c (expand_asm_operands): Revert last patch from Richard
897         Henderson.
898
899 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
900
901         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
902         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
903
904 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
905
906         * doc/contrib.texi (Contributors): Add David O'Brien.
907
908 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
909
910         * configure.in (auto-build.h): Use target_alias and build_alias
911         when running configure.
912         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
913         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
914         * configure: Regenerate.
915
916 2002-04-07  David S. Miller  <davem@redhat.com>
917
918         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
919
920 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
921
922         PR 5933
923         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
924         generating 32-bit pic code.
925
926 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
927
928         * cppinit.c (cpp_create_reader): Initialize
929         discard_comments_in_macro_exp.
930         (COMMAND_LINE_OPTIONS): Add "-CC" option.
931         (cpp_handle_option): Handle "-CC" option.
932         * cpplex.c (save_comment): If saving a C++ comment in
933         a directive, convert it to a C comment.
934         (_cpp_lex_direct): Pass second comment start character to
935         save_comment to indicate comment type.
936         * cpplib.c (_cpp_handle_directive): If processing
937         a "#define" directive and discard_comments_in_macro_exp
938         is false,  re-enable saving of comments.
939         (lex_macro_node): If discard_comments_in_macro_exp is false,
940         discard any comments before the macro identifier.
941         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
942         member.
943         * cppmacro.c (cpp_get_token): If expanding a macro while
944         processing a directive, discard any comments we might encounter.
945         (parse_params): If discard_comments_in_macro_exp is false,
946         ignore comments in the macro parameter list.
947         * gcc.c (cpp_unique_options): Add "-CC" option.
948         (option_map): Map "--comments-in-macros" to "-CC".
949         * doc/cppopts.texi: Document "-CC" option.
950         * f/lang-specs.h: Add "-CC" option.
951         * testsuite/gcc.dg/cpp/maccom1.c: New test.
952         * testsuite/gcc.dg/cpp/maccom2.c: New test.
953         * testsuite/gcc.dg/cpp/maccom3.c: New test.
954         * testsuite/gcc.dg/cpp/maccom4.c: New test.
955         * testsuite/gcc.dg/cpp/maccom5.c: New test.
956         * testsuite/gcc.dg/cpp/maccom6.c: New test.
957
958 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
959
960         PR middle-end/6180
961         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
962
963 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
964
965         PR c++/5571
966         * stor-layout.c (layout_decl): Reset the RTL for the decl.
967
968         PR opt/5120
969         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
970         RTX_UNCHANGING_P for the functions arguments when a tail call
971         is made.
972
973 2002-04-06  Jason Merrill  <jason@redhat.com>
974
975         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
976         (parse_options_and_default_flags): Set them appropriately.
977         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
978
979 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
980
981         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
982         here.
983
984         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
985         semicolon.
986
987         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
988         types come in by-reference.  Fix typo in comment.
989
990 2002-04-05  David S. Miller  <davem@redhat.com>
991
992         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
993         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
994         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
995         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
996
997 2002-04-05  David S. Miller  <davem@redhat.com>
998
999         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
1000         are not going to emit return instructions, emit at least a nop
1001         for the sake of sane backtraces.
1002
1003 2002-04-05  Richard Henderson  <rth@redhat.com>
1004
1005         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
1006
1007 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
1008
1009         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
1010
1011 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
1012
1013         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
1014         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
1015         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
1016
1017 2002-04-05  Andreas Schwab  <schwab@suse.de>
1018
1019         * c-convert.c: Include c-common.h.
1020         * Makefile.in (c-convert.o): Updated.
1021
1022 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1023
1024         * mklibgcc.in: Use separate libgcc.map for each multilib.
1025         * Makefile.in (distclean): Don't remove libgcc.map here.
1026
1027 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1028
1029         * Makefile.in (s-mlib): Handle --disable-multilib by separate
1030         genmultilib invocation.
1031
1032 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
1033
1034         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
1035         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
1036         to num_gprs for symmetry.
1037         * config/mips/mips.c: Adjust accordingly.
1038
1039 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1040
1041         * c-common.c (truthvalue_conversion): Rename, update.
1042         * c-common.h (c_common_truthvalue_conversion): New.
1043         * c-convert.c (convert): Update.
1044         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1045         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
1046         * c-typeck.c (build_binary_op, build_unary_op,
1047         build_conditional_expr): Update.
1048         * fold-const.c (constant_boolean_node, fold): Use langhook.
1049         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
1050         * langhooks.h (struct lang_hooks): New hook.
1051         * stmt.c (expand_decl_cleanup): Use langhook.
1052         * tree.h (truthvalue_conversion): Remove.
1053 objc:
1054         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1055
1056 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
1057
1058         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
1059         Add rules to make null object file.
1060
1061 2002-04-04  Jim Blandy  <jimb@redhat.com>
1062
1063         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
1064         macro formal parameter names.
1065
1066 2002-04-04  David S. Miller  <davem@redhat.com>
1067
1068         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
1069
1070 2002-04-04  Richard Henderson  <rth@redhat.com>
1071
1072         PR middle-end/5099
1073         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
1074         Support copies into and out of memory.  Don't accept allows_reg
1075         and allows_mem as gospel.
1076
1077 2002-04-04  Richard Henderson  <rth@redhat.com>
1078
1079         PR opt/6165
1080         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
1081         (write_dependence_p): Likewise.
1082
1083 2002-04-04  Richard Henderson  <rth@redhat.com>
1084
1085         * predict.c (estimate_bb_frequencies): Do frequency calculation
1086         with a volatile temporary.
1087
1088 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
1089
1090         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
1091
1092 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1093
1094         PR c++/6119
1095         * final.c (final_start_function): Don't bump profile_label_no here...
1096         (final_end_function): ...but here.
1097
1098 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1099
1100         * config/sparc/sparc.md (pic): New attribute.
1101         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
1102         into stack slots.
1103         (split after do_builtin_setjmp_setup): New.
1104
1105 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1106
1107         PR fortran/6106
1108         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
1109         change.
1110
1111 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1112
1113         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
1114         UNITS_PER_WORD for zero sized aggregates.
1115
1116 2002-04-03  David S. Miller  <davem@redhat.com>
1117
1118         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
1119         one-character spec for this, just use %(link_gcc_c_sequence).
1120
1121 2002-04-03  David S. Miller  <davem@redhat.com>
1122
1123         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
1124         handling.
1125
1126 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1127
1128         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
1129         (DWARF_FRAME_RETURN_COLUMN): Move.
1130         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1131         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
1132         * pa.c (except.h, predict.h): Include.
1133         (FRP): Delete.
1134         (store_reg_modify, set_reg_plus_d): Revise prototypes.
1135         (output_ascii): Add cast.
1136         (store_reg_modify): Revise to add frame notes.
1137         (set_reg_plus_d): Likewise.
1138         (compute_frame_size): Include space for eh data registers in frame if
1139         the current function calls eh_return.
1140         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
1141         function calls eh_return.  Save eh data registers if the current
1142         function calls eh_return.  Fix code to add frame notes.  Emit
1143         blockage to prevent insns with frame notes being scheduled in the
1144         delay slot of calls.
1145         (hppa_expand_epilogue): Restore eh data registers and do final stack
1146         adjustment if the current function calls eh_return.  Don't add frame
1147         notes.
1148         (output_call): Revise for change in length of call insn.  Don't do
1149         return pointer adjustment for an unconditional jump in the delay slot
1150         of a call when using frame notes.
1151         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
1152         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
1153         (ARG_POINTER_CFA_OFFSET): Define.
1154         * pa.md (return_external_pic): New pattern.
1155         (prologue): Correct formatting.  Use return_external_pic if current
1156         function calls eh_return.
1157         (call_internal_symref, call_value_internal_symref,
1158         sibcall_internal_symref, sibcall_value_internal_symref): Change default
1159         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
1160         respectively.
1161         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
1162
1163         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
1164         list of targets to check using "nop" insn.
1165         * configure: Rebuilt.
1166
1167 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
1168
1169         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
1170
1171 2002-04-03  David S. Miller  <davem@redhat.com>
1172
1173         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
1174         library sequence passed to the linker.
1175         (LINK_COMMAND_SPEC): Use it.
1176         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
1177         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
1178         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1179
1180 2002-04-03  Jason Merrill  <jason@redhat.com>
1181
1182         * except.c (struct eh_status): Remove protect_list.
1183         (begin_protect_partials, end_protect_partials): Remove.
1184         (add_partial_entry): Remove.
1185         * except.h: Remove prototypes.
1186
1187         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
1188         expand_decl_cleanup_eh.
1189
1190         PR c++/5636
1191         * tree.h (CLEANUP_EH_ONLY): New macro.
1192         * stmt.c (expand_decl_cleanup_eh): New fn.
1193         (expand_cleanups): Check CLEANUP_EH_ONLY.
1194         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
1195         Use expand_decl_cleanup_eh.
1196         (expand_stmt): Adjust.
1197         * c-common.h: Adjust prototype.
1198
1199 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
1200
1201         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
1202         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
1203         (cris_target_asm_function_epilogue): Ditto.
1204         (cris_initial_frame_pointer_offset): Ditto.
1205         (cris_simple_epilogue): Ditto.
1206         (cris_expand_builtin_va_arg): Variable-size types come in
1207         by-reference.
1208
1209 2002-04-03  David S. Miller  <davem@redhat.com>
1210
1211         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
1212         little-endian.
1213         (set_fast_math): Correct 'fsr' type.
1214
1215 2002-04-03  Richard Henderson  <rth@redhat.com>
1216
1217         PR opt/3569
1218         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
1219         * toplev.c (check_global_declarations): Use it.
1220         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
1221         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1222         (LANG_HOOKS_DECLS): Add it.
1223         * langhooks.c (lhd_warn_unused_global_decl): New.
1224         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1225         * c-objc-common.c (c_warn_unused_global_decl): New.
1226         * c-tree.h (c_warn_unused_global_decl): Declare.
1227         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1228
1229 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1230
1231         * langhooks-def.h (lhd_set_decl_assembler_name,
1232         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
1233         (LANG_HOOKS_INITIALIZER): Update.
1234         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
1235         * langhooks.h (struct lang_hooks): New hook.
1236         * tree.c (set_decl_assembler_name): Move to langhooks.c.
1237         (lang_set_decl_assembler_name): Remove.
1238         (init_obstacks): Don't set hook.
1239         (decl_assembler_name): New function.
1240         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
1241         (decl_assembler_name): New.
1242         (lang_set_decl_assembler_name): Remove.
1243
1244 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1245
1246         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
1247         works properly with .hidden symbols.
1248         * configure: Rebuilt.
1249         * config.in: Rebuilt.
1250         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
1251         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
1252         properly with .hidden symbols.
1253
1254 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1255
1256         PR middle-end/6102
1257         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
1258         USE argument.
1259
1260 2002-04-03  Richard Henderson  <rth@redhat.com>
1261
1262         PR opt/4120
1263         * sched-rgn.c (sets_likely_spilled): New.
1264         (sets_likely_spilled_1): New.
1265         (add_branch_dependences): Use it.
1266
1267 2002-04-02  Richard Henderson  <rth@redhat.com>
1268
1269         PR opt/4311
1270         * loop.h (LOOP_FIRST_PASS): New.
1271         * loop.c (strength_reduce): Mind it when deciding to unroll.
1272         * toplev.c (rest_of_compilation): Set it.
1273
1274 2002-04-02  David S. Miller  <davem@redhat.com>
1275
1276         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
1277         mems_ok_for_ldd_peep when the order of the loads being examined
1278         is reversed.
1279         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
1280         existing comment to increase comprehension of this situation.
1281
1282 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
1283
1284         * config/sh/sh.md: Don't use union real_extract.
1285
1286 2002-04-02  Richard Henderson  <rth@redhat.com>
1287
1288         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
1289
1290 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1291
1292         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
1293         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
1294         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
1295         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
1296         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
1297         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
1298         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
1299         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
1300         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
1301         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
1302         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
1303         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
1304         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
1305         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
1306         Include as many configury headers via tm_file as possible.  This
1307         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
1308         * config/openbsd-oldgas.h: New file.
1309         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
1310         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
1311         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
1312         config/i386/i386-coff.h, config/i386/i386-interix.h,
1313         config/i386/iscdbx.h, config/i386/linux-aout.h,
1314         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
1315         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
1316         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
1317         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
1318         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
1319         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
1320         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
1321         config/i386/vxi386.h: Do not directly include configury headers.
1322         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
1323         Directly include configury headers that are no longer automatically
1324         included by the above headers.
1325         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
1326         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
1327         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
1328         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
1329         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
1330         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
1331         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
1332         (TARGET_VERSION): Define.
1333         * config/i386/beos-elf.h, config/i386/freebsd.h,
1334         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
1335         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
1336         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
1337         config/i386/sco5.h, config/i386/sysv4.h
1338         (TARGET_VERSION): Do not need to protect.
1339         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
1340         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
1341         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
1342         config/i386/i386-interix.h, config/i386/linux-aout.h,
1343         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
1344         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
1345         (YES_UNDERSCORES): Do not define - not needed.
1346         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
1347         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1348         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
1349         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
1350         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1351         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
1352         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
1353         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
1354
1355 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
1356             Richard Henderson  <rth@redhat.com>
1357
1358         PR c/5484
1359         * function.c (assign_temp): Accept either type or decl argument.
1360         Detect variables whose size is too large to fit into an integer.
1361         * stmt.c (expand_decl): Pass the decl, not the type.
1362
1363 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1364
1365         * protoize.c: Match include directory usage with cppdefault.c.
1366
1367 2002-04-03  Jeffrey A Law  (law@redhat.com)
1368             Hans-Peter Nilsson  <hp@bitrange.com>
1369
1370         * combine.c (simplify_comparison): Avoid narrowing a comparison
1371         with a paradoxical subreg when doing so would drop signficant bits.
1372
1373 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
1374
1375         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
1376         if POINTERS_EXTEND_UNSIGNED is defined.
1377
1378 2002-04-02  Richard Henderson  <rth@redhat.com>
1379
1380         PR opt/3967
1381         * local-alloc.c (contains_replace_regs): LO_SUM may contain
1382         replace regs.
1383
1384 2002-04-02  Richard Henderson  <rth@redhat.com>
1385
1386         * doc/standards.texi: Document required freestanding libc entry points.
1387
1388 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
1389
1390         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
1391         associated splitter.  Remove MQ constraint.
1392         (ctrdi_internal4): Correct CCmode clobber.
1393
1394 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1395
1396         * milli64.S ($$dyncall): New function.
1397         * t-linux (LIB1ASMFUNCS): Revise module list.
1398         (LIB1ASMSRC): Use pa/milli64.S.
1399
1400 2002-04-02  Richard Henderson  <rth@redhat.com>
1401
1402         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
1403         rename solaris_sys_varargs_h.
1404
1405 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1406
1407         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
1408         the same mode as its component.
1409
1410 2002-04-02  Richard Henderson  <rth@redhat.com>
1411
1412         PR opt/190
1413         * final.c (this_is_asm_operands): Export.
1414         * output.h (this_is_asm_operands): Declare.
1415         * config/i386/i386.c (print_operand): Error odd asm operands.
1416
1417 2002-04-02  Richard Henderson  <rth@redhat.com>
1418
1419         PR opt/420
1420         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
1421
1422 2002-04-01  Richard Henderson  <rth@redhat.com>
1423
1424         PR target/1538
1425         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
1426         * fixinc/fixincl.x: Rebuild.
1427
1428 2002-04-01  Richard Henderson  <rth@redhat.com>
1429
1430         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
1431         (atomic_alloc, atomic_free): New.
1432         (SIZE, MASK_FOR, PTR_IN): New.
1433         (emergency_reg_state, emergency_reg_state_free): New.
1434         (emergency_labeled_state, emergency_labeled_state_free): New.
1435         (reg_state_alloced, labeled_state_alloced): New.
1436         (alloc_reg_state, free_reg_state): New.
1437         (alloc_label_state, free_label_state, free_label_states): New.
1438         (push, pop, dup_state_stack, free_state_stack): Use them.
1439         (desc_label_state): Likewise.
1440         (uw_frame_state_for): Free label states and state stack.
1441         (uw_update_reg_address): Eliminate warnings.
1442
1443 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
1444
1445         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
1446         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
1447
1448 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1449
1450         * c-decl.c (grokdeclarator): Update.
1451         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1452         * c-tree.h (c_mark_addressable): New.
1453         * c-typeck.c (default_function_array_conversion, build_unary_op,
1454         build_array_ref, convert_for_assignment): Update.
1455         (mark_addressable): Rename.
1456         * calls.c (try_to_integrate, expand_call): Use langhook.
1457         * expr.c (expand_expr): Use langhook.
1458         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
1459         * langhooks.h (struct lang_hooks): New hook.
1460         * stmt.c (expand_asm_operands): Use langhook.
1461         * tree.h (mark_addressable): Remove.
1462 objc:
1463         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1464
1465 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1466
1467         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
1468         in previous change.
1469
1470 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1471
1472         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
1473         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
1474
1475 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1476
1477         * c-common.c (unsigned_conversion_warning, convert_and_check,
1478         unsigned_type, signed_type, shorten_compare,
1479         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
1480         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
1481         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
1482         New.
1483         * c-decl.c (grokdeclarator): Update.
1484         * c-format.c (check_format_types): Update.
1485         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1486         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1487         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
1488         * convert.c (convert_to_integer): Use new hooks.
1489         * expmed.c (make_tree): Use new hooks.
1490         * expr.c (store_expr): Use new hooks.
1491         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
1492         all_ones_mask_p, unextend, fold): Use new hooks.
1493         * langhooks.h (struct lang_hooks_for_types): New hooks.
1494         * tree.h (signed_or_unsigned_type, signed_type,
1495         unsigned_type): Remove.
1496 objc:
1497         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1498         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1499
1500 2002-03-31  Richard Henderson  <rth@redhat.com>
1501
1502         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
1503         (desc_frgr_mem): Fix reference to f16-f31.
1504
1505 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1506
1507         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1508         RTVEC_ELT): Const-ify.
1509         * varray.h (VARRAY_CHECK): Const-ify.
1510         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
1511         ggc_mark_rtvec, ggc_mark): Const-ify.
1512
1513 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1514
1515         * diagnostic.c: Include langhooks-def.h.
1516         * Makefile.in (diagnostic.o): Update.
1517
1518 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1519
1520         * c-common.c (c_unsafe_for_reeval): Rename.
1521         * c-common.h (c_unsafe_for_reeval): Rename.
1522         * c-decl.c (finish_incomplete_decl): Rename.
1523         (c_init_decl_processing): Don't set langhook.
1524         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1525         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1526         * c-objc-common.c (c_objc_common_init): Don't set langhook.
1527         * c-tree.h (finish_incomplete_decl): Rename.
1528         * langhooks-def.h (lhd_unsafe_for_reeval): New.
1529         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
1530         (LANG_HOOKS_INITIALIZER): Update.
1531         * langhooks.c (lhd_unsafe_For_reeval): New.
1532         * langhooks.h (struct langhooks): New hooks.
1533         * toplev.c (incomplete_decl_finalize_hook): Remove.
1534         (wrapup_global_declarations): Update.
1535         * tree.c (lang_unsafe_for_reeval): Remove.
1536         (unsafe_for_reeval): Update.
1537         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
1538         Remove.
1539 objc:
1540         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1541         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1542
1543 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1544
1545         * diagnostic.c (print_error_function): Remove.
1546         (default_print_error_function): Rename.
1547         (report_error_function): Update.
1548         * diagnostic.h (print_error_function): Remove.
1549         (default_print_error_function): Remove.
1550         * langhooks-def.h (struct diagnostic_context): Predeclare.
1551         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
1552         (LANG_HOOKS_INITIALIZER): Update.
1553         * langhooks.h (struct diagnostic context): Predeclare.
1554         (struct lang_hooks): New hook.
1555
1556 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1557
1558         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1559         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
1560         !flag_pic.
1561         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
1562         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
1563         of PIC_OFFSET_TABLE_REGNUM thruout.
1564         * config/rs6000/rs6000.md: Likewise.
1565         * config/rs6000/darwin.h: Likewise.
1566
1567 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1568
1569         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1570         unsigned HOST_WIDE_INT, not unsigned int.
1571
1572 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1573
1574         PR middle-end/6096, middle-end/6098, middle-end/6099
1575         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1576         CODE_LABELs.
1577         (fill_slots_from_thread): Likewise.
1578
1579 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1580
1581         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
1582         floating fields in float regs.
1583         (function_arg_record_value_2): Likewise.
1584
1585 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1586
1587         * config/mmix/mmix.md (define_constants): Remove misleading
1588         FIXME.  Add MMIX_fp_rO_OFFSET.
1589         ("nonlocal_goto_receiver"): Don't have stack-frame address of
1590         saved rO as part of the pattern.  Remove FIXME.
1591         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
1592         here, at output-time.
1593
1594 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1595
1596         PR middle-end/6100
1597         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1598         REG_BR_PRED.
1599         (output_v9branch): Likewise.
1600
1601 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1602
1603         * gcc.c: Revert previous patch for now.
1604         * config/i386/djgpp.h: Likewise.
1605
1606 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1607
1608         * config/mmix/crti.asm (_init): Register _fini with atexit.
1609         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1610
1611 2002-03-31  Richard Henderson  <rth@redhat.com>
1612
1613         PR target/3997
1614         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1615         (ASM_OUTPUT_DEF_FROM_DECLS): New.
1616
1617 2002-03-31  Richard Henderson  <rth@redhat.com>
1618
1619         * libgcc2.c (__bb_exit_func): Make static.
1620
1621         * config/alpha/alpha.md (trap): New.
1622
1623 2002-03-31  Richard Henderson  <rth@redhat.com>
1624
1625         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1626         promoted argument types; build trap.
1627         (expand_builtin_trap): New.
1628         (expand_builtin): Use it.
1629         * stmt.c (expand_nl_goto_receivers): Likewise.
1630         * expr.h (expand_builtin_trap): Declare.
1631         * libfuncs.h (LTI_abort, abort_libfunc): New.
1632         * optabs.c (init_optabs): Init abort_libfunc.
1633
1634 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1635
1636         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1637         (LINK_COMMAND_SPEC): ... from here.
1638         (init_gcc_specs): Duplicate it here too, omitting
1639         shared_name in the second copy.
1640         (init_spec): Test for duplicate
1641         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1642
1643 2002-03-30  David S. Miller  <davem@redhat.com>
1644
1645         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1646         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1647
1648 2002-03-30  Roger Sayle <roger@eyesopen.com>
1649             Richard Henderson  <rth@redhat.com>
1650
1651         * regmove.c (combine_stack_adjustments_for_block): Avoid
1652         emitting a stack adjustment of zero bytes.  Let delete_insn
1653         update bb->head.
1654
1655 2002-03-30  Richard Henderson  <rth@redhat.com>
1656
1657         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1658         (sparc_emitting_epilogue): New.
1659         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1660         * config/sparc/sparc-protos.h: Update.
1661         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1662         (TARGET_SWITCHES): Update.
1663         * config/sparc/sparc.md (return): Remove.
1664         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1665         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1666         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1667         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1668         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1669         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1670         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1671         Remove MASK_EPILOGUE.
1672         * doc/invoke.texi: Update.
1673
1674 2002-03-30  Daniel Berlin  <dan@dberlin.org>
1675
1676         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1677         CPP will start the file for us.
1678
1679 2002-03-30  Richard Henderson  <rth@redhat.com>
1680
1681         PR target/5446
1682         * config/ia64/ia64.c (group_barrier_needed_p): Special case
1683         prologue_allocate_stack.
1684         (ia64_single_set): Use insn codes for recognition of special
1685         cases, not rtl matching.
1686         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1687
1688 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
1689
1690         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1691
1692 2002-03-30  Richard Henderson  <rth@redhat.com>
1693
1694         PR target/6032
1695         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1696         or -fomit-frame-pointer with profiling.
1697         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1698         (FUNCTION_PROFILER): Do nothing.
1699         (PROFILE_HOOK): New.
1700         * config/sparc/sparc.c (sparc_override_options): Don't check
1701         code models for profiling.
1702         (sparc_function_profiler): Remove.
1703         (sparc_profile_hook): New.
1704         * config/sparc/sparc-protos.h: Update.
1705
1706 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
1707
1708         PR optimization/6086
1709         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1710         of SUBREG of volatile MEM or because the MEM was mode dependent,
1711         return CLOBBER instead of unmodified SUBREG.
1712
1713 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1714
1715         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1716         when not optimizing.
1717
1718         * toplev.c (rest_of_compilation): Cann mark_constant_function
1719         only when optimizing.
1720
1721         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1722         are NULL.
1723
1724         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1725         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1726         (try_optimize_cfg): clear all AUX fields.
1727
1728         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1729         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1730         (ix86_address_cost): Be prepared for SUBREGed registers.
1731         (legitimate_address_p): Accept SUBREGed registers.
1732
1733 2002-03-29  Richard Henderson  <rth@redhat.com>
1734
1735         PR target/5672
1736         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1737
1738 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1739
1740         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1741         for aggregate and TFmode types.
1742
1743 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1744
1745         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1746
1747 2002-03-29  Richard Henderson  <rth@redhat.com>
1748
1749         PR target/5886
1750         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1751         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1752
1753 2002-03-29  Richard Henderson  <rth@redhat.com>
1754
1755         PR target/6041
1756         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
1757         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
1758         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
1759         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
1760         conditional.
1761         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1762
1763 2002-03-29  Dale Johannesen <dalej@apple.com>
1764
1765         * loop.c (combine_movables): Do allow combination of pseudos.
1766
1767 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
1768
1769         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
1770         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
1771         No functional change except ...
1772         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
1773         * doc/install.texi (*-*-freebsd*): Document port configuration.
1774
1775 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1776
1777         * Makefile.in (convert.o, calls.o, expmed.o): Update.
1778         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
1779         Use new hooks.
1780         * builtin-types.def (BT_PTRMODE): Update.
1781         * c-common.c (type_for_size): Rename c_common_type_for_size.
1782         (type_for_mode): Similarly.
1783         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
1784         Use new hook.
1785         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
1786         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
1787         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1788         Redefine.
1789         * c-typeck.c (common_type, comptypes, default_conversion):
1790         Use new hooks.
1791         * calls.c: Include langhooks.h.
1792         (emit_library_call_value_1): Use new hooks.  Avoid redundant
1793         calls.
1794         * convert.c: Include langhooks.h
1795         (convert_to_pointer, convert_to_integer): Use new hooks.
1796         * except.c (init_eh): Similarly.
1797         * expmed.c: Include langhooks.h.
1798         (expand_mult_add): Use new hooks.
1799         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
1800         try_casesi): Similarly.
1801         * fold-const.c (optimize_bit_field_compare, make_range,
1802         decode_field_reference, fold_truthop, fold): Similarly.
1803         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
1804         put_var_into_stack): Similarly.
1805         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
1806         LANG_HOOKS_TYPE_FOR_SIZE): New.
1807         (LANG_HOOKS_TYPES_INITIALIZER): Update.
1808         * langhooks.h (lang_hooks_for_types): New hooks.
1809         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
1810         * tree.c (get_unwidened, get_narrower): Similarly.
1811         * tree.h (type_for_mode, type_for_size): Remove.
1812         * varasm.c (force_const_mem): Use new hooks.
1813         * utils2.c (nonbinary_modular_operation): Update.
1814 objc:
1815         * objc-act.c (handle_impent): Update.
1816         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1817         Redefine.
1818
1819 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
1820
1821         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
1822         * config/ia64/ia64.c (basereg_operand): New.
1823         * config/ia64/ia64-protos.h (basereg_operand): Declare.
1824         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
1825
1826 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1827
1828         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
1829         unwind information when frame_pointer_needed.
1830         (mmix_assemble_integer): Tweak wording in comment.
1831
1832 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1833
1834         * Makefile.in (except.o): Update.
1835         * except.c: Include langhooks.h.
1836         (init_eh): Use langhook.
1837         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
1838         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
1839         (LANG_HOOKS_INITIALIZER): Update.
1840         * langhooks.h (lang_hooks_for_types): New.
1841         (struct lang_hooks): Add it.
1842         * tree.c (make_lang_type_fn, make_lang_type): Remove.
1843         * tree.h (make_lang_type_fn, make_lang_type): Remove.
1844 config:
1845         * alpha/alpha.c: Include langhooks.h.
1846         (alpha_build_va_list): Use langhook.
1847         * d30v/d30v.c: Include langhooks.h.
1848         (d30v_build_va_list): Use langhook.
1849         * i386/i386.c: Include langhooks.h.
1850         (ix86_build_va_list): Use langhook.
1851         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
1852         * s390/s390.c: Include langhooks.h.
1853         (s390_build_va_list): Use langhook.
1854         * stormy16/stormy16.c: Include langhooks.h.
1855         (stormy16_build_va_list): Use langhook.
1856
1857 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
1858
1859         PR c++/5964
1860         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
1861         attributes.
1862         (length): Compute variable length for branches/calls/jumps here.
1863         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
1864         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
1865         define branch_type attribute.
1866         (divsi3_sp32): Maximum length is 6 not 7.
1867         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
1868         call_address_untyped_struct_value_sp32,
1869         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
1870         * config/sparc/sparc.c (empty_delay_slot): New function.
1871         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
1872         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
1873
1874 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
1875
1876         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
1877         nonzero_bits if not needed.
1878         (nonzero_bits) [XOR]: Likewise.
1879         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
1880         reg_last_set_mode and mode are both MODE_INT, but not equal.
1881         (record_value_for_reg): Compute reg_last_set_nonzero_bits
1882         in nonzero_bits_mode for MODE_INT modes.
1883
1884 2002-03-28  Richard Henderson  <rth@redhat.com>
1885
1886         PR target/5715
1887         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
1888         to GAS.  Correct drift between alternatives.
1889
1890 2002-03-28  Richard Henderson  <rth@redhat.com>
1891
1892         PR target/6087
1893         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
1894
1895 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
1896
1897         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
1898         emulation to the linker.
1899
1900 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
1901
1902         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
1903         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1904
1905 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
1906
1907         * combine.c (simplify_and_const_int): Make sure to apply mask
1908         when force_to_mode returns a constant integer.  PR3311.
1909
1910 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1911
1912         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
1913
1914 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1915
1916         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
1917         and Objective-C Dialect Options.
1918
1919 2002-03-28  Richard Henderson  <rth@redhat.com>
1920
1921         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
1922         comparison should be done vs !=0 not >0 return code.  Tidy cases.
1923
1924 2002-03-28  Richard Henderson  <rth@redhat.com>
1925
1926         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
1927         on to c_expand_body.
1928         * c-tree.h (finish_function): Update decl.
1929         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
1930
1931 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
1932
1933         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
1934
1935 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
1936
1937         * rtlanal.c: Include flags.h
1938         (may_trap_p): Do not mark FP operations if trapping
1939         if !flag_trapping_math
1940         * Makefile.in (rtlanal.o): Add dependency on flag.h
1941         * ifcvt.c (noce_operand_ok): Avoid the lameness.
1942
1943 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
1944
1945         * mips.md: Use dconst1, not 1.0, as first argument of
1946         REAL_VALUE_LDEXP.  Don't use union real_extract.
1947
1948 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
1949
1950         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
1951         rather than $target.  Heed program_prefix and
1952         program_transform_name.  Search for gas in cross-compiler case too.
1953         "test -x" rather than "test -f".
1954         (gcc_cv_ld): Likewise.
1955         (gcc_cv_nm): Heed program_prefix and program_transform_name.
1956         (gcc_cv_objdump): Likewise.
1957         * configure: Regenerate.
1958
1959 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1960
1961         * Makefile.in (attribs.o): Update.
1962         * attribs.c: Include langhooks.h.
1963         (decl_attributes): Use langhook.
1964         * c-decl.c (insert_default_attributes): Rename.
1965         * c-tree.h (c_insert_default_attributes): New.
1966         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
1967         (LANG_HOOKS_INITIALIZER): Update.
1968         * langhooks.h (struct lang_hooks): New hook.
1969         * tree.h (insert_default_attributes): Remove.
1970 objc:
1971         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
1972
1973 2002-03-27  Andreas Schwab  <schwab@suse.de>
1974
1975         * config/i386/i386.c (classify_argument): Also check for
1976         QUAL_UNION_TYPE.
1977
1978 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1979
1980         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
1981         any more.
1982
1983 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
1984
1985         * i960.md (ret): Set PC.
1986         (nonlocal_goto): Fix expander.
1987         * builtins.c (epxand_builin_longjmp): Check that we've emitted
1988         some jump or call.
1989
1990 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
1991
1992         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
1993         of libcall regions.
1994
1995 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1996
1997         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
1998         assigning to BLOCK_FOR_INSN directly.
1999
2000 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
2001
2002         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
2003
2004 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2005
2006         * c-common.c (c_expand_expr): Fix prototype.
2007         * c-common.h (c_expand_expr): Always declare, update.
2008         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2009         * c-objc-common.c (c_objc_common_init): No global hook.
2010         * expr.c (expand_expr): Use langhook.
2011         * expr.h (enum expand_modifier): Conditionally declare.
2012         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
2013         (LANG_HOOKS_INITIALIZER): Update.
2014         * langhooks.c (lhd_expand_expr): New.
2015         * langhooks.h (struct lang_hooks): New hook.
2016         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
2017         (lang_independent_init): Don't default hook.
2018 objc:
2019         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2020
2021 2002-03-27  Richard Henderson  <rth@redhat.com>
2022
2023         PR target/6054
2024         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
2025         TARGET_CONST_GP.  Simplify conditions.
2026
2027 2002-03-27  Richard Henderson  <rth@redhat.com>
2028
2029         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
2030         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
2031         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
2032
2033 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
2034
2035         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
2036         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
2037         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
2038         Remove unnecessary masks.
2039         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
2040         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
2041         -mwindows, -mdll switches and their negations.
2042
2043 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2044
2045         * gcc-common.c (lang_mark_false_label_stack): Remove.
2046         * ggc.h (lang_mark_false_label_stack): Similarly.
2047
2048 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
2049
2050         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
2051
2052         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
2053         or __rtems_ is defined.
2054
2055 2002-03-26  Richard Henderson  <rth@redhat.com>
2056
2057         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
2058         if a non-trivial load was emitted.
2059         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
2060         in high+extra+low case.
2061
2062 2002-03-26  Richard Henderson  <rth@redhat.com>
2063
2064         * config.gcc (sparc*-solaris): Use float_format=sparc.
2065
2066 2002-03-26  Richard Henderson  <rth@redhat.com>
2067
2068         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
2069         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
2070         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
2071         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
2072         (WINT_TYPE_SIZE): Fix at 32.
2073
2074 2002-03-26  Richard Henderson  <rth@redhat.com>
2075
2076         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
2077         until after eh landing pad generation.
2078         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
2079         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
2080
2081 2002-03-26  Richard Henderson  <rth@redhat.com>
2082
2083         * expr.h (ADD_PARM_SIZE): One more convert for INC.
2084
2085 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
2086
2087         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
2088         and warning switches.
2089         (cc1_options):  Likewise.
2090
2091 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
2092
2093         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
2094         Restore more of the signal context.  Set no_reg_stack_frame.
2095         * config/ia64/unwind-ia64.c (unw_state_record):
2096         Add no_reg_stack_frame, comments.
2097         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
2098         (uw_update_context): Adjust bsp when unwinding from leaf,
2099         but not signal frame.
2100
2101 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
2102
2103         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
2104
2105 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2106
2107         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
2108
2109 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2110
2111         PR target/5621
2112         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
2113         "Add a pool_range attribute", which was lost during the ARM/Thumb
2114         merge.
2115
2116 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2117
2118         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
2119         a register into the MAC16 accumulator.
2120
2121 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
2122
2123         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
2124         (Warning Options): Document -Wswitch-enum.
2125         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
2126         -Wswitch.
2127         (warn_switch_enum): Define variables.
2128         * flags.h (warn_switch_enum): Declare variables.
2129         * stmt.c (expand_end_case_type): When warn_switch_enum /
2130         -Wswitch-enum, perform switch checks.
2131         Fix PR c/5044.
2132
2133 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2134
2135         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
2136         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
2137         (reload_muladdsi_compare0_scratch): Delete.
2138
2139 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
2140
2141         * doc/install.texi (*-*-freebsd*): Update.
2142
2143 2002-03-26  Richard Henderson  <rth@redhat.com>
2144
2145         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
2146         (SUB_PARM_SIZE): Cast DEC to ssizetype.
2147
2148         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
2149         types from the normal argument frame.
2150
2151         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
2152         variable sized objects by reference.
2153         (sparc_va_arg): Receive them by reference too.
2154
2155 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
2156
2157         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
2158         code to not restoring global registers.
2159
2160 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2161
2162         * Makefile.in (ggc-common.o): Update.
2163         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
2164         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2165         * c-tree.h (c_mark_tree): New.
2166         * ggc-common.c: Include langhooks.h.
2167         (gcc_mark_trees): Use new langhook.
2168         * ggc-callbacks.c: Delete file.
2169         * ggc.h (lang_mark_tree): Remove.
2170         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
2171         (LANG_HOOKS_INITIALIZER): Update.
2172         * langhooks.h (struct lang_hooks): New hook.
2173 objc:
2174         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2175
2176 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2177
2178         * doc/cpp.texi: Exclude entire Top node from printed manual.
2179         Move option index after directive index.  Insert page breaks
2180         before GFDL and concept index.  Index environment variables
2181         with command line options.
2182         * doc/cppenv.texi: Use @vtable for environment variable list.
2183         Add paragraph explaining semantics of empty elements in path
2184         variables.  Exclude a cross-reference to Fishkill from the
2185         manpage.  Remove an unnecessary cross-reference of the entry
2186         right above the referer.  Don't use @anchor in text that goes
2187         into manpage.
2188         * doc/cppopts.texi: Cross-reference the environment variables
2189         section, not the specific environment variable, for consistency.
2190
2191 2002-03-25  Richard Henderson  <rth@redhat.com>
2192
2193         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
2194         anywhere in the block.  Don't refer to insns that have been
2195         removed from the chain.  Iterate backward through the new insns.
2196         Don't refer to edges that have been removed.
2197
2198 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
2199
2200         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
2201         test for overflow of constant.
2202
2203 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
2204
2205         PR target/2623
2206         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
2207         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
2208         these patterns on arm_archv4.
2209
2210 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
2211
2212         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
2213         int".
2214
2215 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2216
2217         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
2218         float_handled, float_handler, float_signal, set_float_handler,
2219         and do_float_handler.  Set handler for SIGFPE to crash_signal.
2220         * toplev.h: Don't prototype do_float_handler.
2221
2222         * c-lex.c: Fold parse_float into lex_number.  Make warning
2223         about portability of hex float constants more informative, and
2224         don't issue it on top of a syntax error.
2225         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
2226         their callers.
2227         * real.h: Define REAL_VALUE_ABS here...
2228         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
2229         simplify_unary_real, simplify_binary_real, and
2230         simplify_binary_is2orm1 into their callers.
2231         * tree.c: Fold build_real_from_int_cst_1 into caller.
2232
2233         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
2234
2235         * tsystem.h: Include float.h here...
2236         * libgcc2.c: ... not here.
2237
2238 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
2239
2240         Fixes for: PR bootstrap/3591, target/5676
2241         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
2242         defined.  Do not disable exceptions or rtti.
2243         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
2244         mcore.h.  Disable exceptions and rtti, since they are not
2245         supported by EPOC.
2246
2247 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2248
2249         * c-decl.c (maybe_build_cleanup): Remove.
2250         * expr.c (expand_expr): Use langhook.
2251         * langhooks-def.h (lhd_return_null_tree,
2252         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
2253         (LANGHOOKS_INITIALIZER): Update.
2254         * langhooks.c (lhd_return_null_tree): New.
2255         * langhooks.h (struct lang_hooks): New hook.
2256         * tree-inline.c (initialize_inlined_parameters): Use langhook.
2257         * tree.h (maybe_build_cleanup): Remove.
2258
2259 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2260
2261         * regrename.c (build_def_use): Move recog_memoized
2262         before extract_insn.
2263
2264 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2265
2266         PR target/6043
2267         * expr.c (emit_group_store): Handle storing into CONCAT.
2268
2269 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2270
2271         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
2272         corresponding MATCH_DUP.
2273
2274 2002-03-24  Richard Henderson  <rth@redhat.com>
2275
2276         * unroll.c (unroll_loop): Zero label_map.
2277
2278         * gcse.c: Include except.h.
2279         * Makefile.in (gcse.o): Update.
2280
2281 2002-03-24  Richard Henderson  <rth@redhat.com>
2282
2283         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
2284         Do resolve_unique_section before shared data clause.
2285
2286 2002-03-24  Richard Henderson  <rth@redhat.com>
2287
2288         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
2289
2290 2002-03-24  Richard Henderson  <rth@redhat.com>
2291
2292         * recog.c (peephole2_optimize): Split blocks when EH insns are
2293         generated in the middle of a block.  Do global life update if
2294         zapped EH edges.
2295
2296 2002-03-24  Richard Henderson  <rth@redhat.com>
2297
2298         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
2299
2300 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2301
2302         preprocessor/3951
2303         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
2304         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
2305         (init_dependency_output): Don't make no_output decision here.
2306
2307 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
2308
2309         * stmt.c (check_for_full_enumeration_handling): Remove tests of
2310         warn_switch.  Update description.
2311         (expand_end_case_type): Call check_for_full_enumeration_handling
2312         when warn_switch.
2313
2314 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2315
2316         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
2317         (m68hc11_split_move): Call it to see if the source and destination
2318         operands use the same direction auto inc/dec mode, otherwise make the
2319         source an offsetable memory operand and generate an add.
2320
2321 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2322
2323         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
2324         register for operand 2.
2325         ("*subsi3_zero_extendqi"): Likewise.
2326         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
2327         bits so that it is compatible with a pop.
2328         ("*andhi3_gen"): Likewise.
2329         ("xorhi3"): Likewise.
2330
2331 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2332
2333         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
2334         -pedantic here...
2335         (cpp_post_options): ... not here.
2336
2337 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2338             Aldy Hernandez  <aldyh@redhat.com>
2339
2340         Removal of separate preprocessor cpp0.
2341
2342         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
2343         cpp0, install-common): Update.
2344         * c-common.c (flag_preprocess_only): New.
2345         (c_common_init): Preprocess for -E.
2346         * c-common.h (flag_preprocess_only): New.
2347         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
2348         * c-objc-common.c (c_init_decl_processing): Exit quickly
2349         for NULL return from c_common_init.
2350         * cpplib.h (cpp_preprocess_file): New.
2351         * cppmain.c (main, general_init, pfile, progname): Remove.
2352         (do_preprocessing): Rename cpp_preprocess_file, don't call
2353         cpp_finish.  Don't close stdout here.
2354         (setup_callbacks): Update prototype.
2355         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
2356         Update.
2357         * tradcpp.c (main): Ignore -quiet.
2358 objc:
2359         * lang-specs.h (default_compilers): Preprocess with cc1obj.
2360
2361 2002-03-24  Richard Henderson  <rth@redhat.com>
2362
2363         PR optimization/5742
2364         * machmode.def: Add inner mode field to complex modes.
2365         * config/mips/mips.c (mips_function_value): Always define.  Add
2366         new argument to handle libcalls.
2367         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
2368         (FUNCTION_VALUE): Likewise.
2369         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
2370         * config/mips/mips-protos.h: Update.
2371
2372 2002-03-23  Richard Henderson  <rth@redhat.com>
2373
2374         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
2375         * config/sparc/sparc-protos.h: Update.
2376         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
2377
2378 2002-03-23  Richard Henderson  <rth@redhat.com>
2379
2380         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
2381         _start or _init begins the text segment.
2382
2383 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
2384
2385         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
2386         not HOST_WIDEST_INT.
2387         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
2388
2389 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
2390
2391         PR java/5489
2392         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
2393         operand argument to output_return_instruction.
2394         * arm.c (arm_print_operand, case 'd'): If the operand is
2395         const_true_rtx then just return.
2396         (arm_print_operand, case 'D'): If the operand is const_true_rtx
2397         then abort.
2398
2399 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
2400
2401         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
2402         (Warning Options): Document -Wswitch-default.
2403         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
2404         -Wswitch.
2405         (warn_switch_default): Define variable.
2406         (warn_switch): Update comment.
2407         * flags.h (warn_switch_default): Declare variable.
2408         (warn_switch): Update comment.
2409         * stmt.c (expand_end_case): Check for and, when
2410         warn_switch_no_default, warn of a missing default case.
2411
2412 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
2413
2414         * real.h (N): Special case 128 bit doubles.
2415
2416         * combine.c (simplify_comparison): When widening modes, ignore
2417         sign extension on CONST_INTs.
2418
2419 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2420
2421         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
2422         passed to adjust_address.  Fix comment formatting.
2423
2424
2425 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
2426
2427         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
2428         Always make REAL_VALUE_TYPE a struct containing an array of
2429         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
2430         big it is.  Don't declare or use union real_extract.
2431
2432         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
2433         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
2434         (print_operand), config/arm/arm.c (output_move_double),
2435         config/arm/arm.md (consttable_4, consttable_8),
2436         config/romp/romp.c (output_fpops), config/s390/s390.h
2437         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
2438         (xtensa_output_literal): Don't use union real_extract.
2439
2440         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
2441         (sfmode_constant_to_ulong), config/ns32k/merlin.h
2442         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
2443         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
2444         (PRINT_OPERAND): Don't use local version of union
2445         real_extract.
2446
2447         * config/convex/convex.c (check_float_value), config/vax/vax.c
2448         (vax_float_literal), config/m88k/m88k.md (divdf3),
2449         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
2450         config/pdp11/pdp11.c (output_move_quad): Don't do host
2451         arithmetic on target floating point quantities.
2452
2453         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
2454         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
2455
2456         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
2457         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
2458
2459         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
2460         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
2461         INFINITY.
2462         * print-rtl.c (print_rtx): Disable code which needs
2463         floating-point emulator.
2464         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
2465         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
2466         depending on HOST_FLOAT_FORMAT to be defined properly.
2467
2468         * config/1750a/1750a.c (get_double, float_label): Delete.
2469         (print_operand): Delete huge commented-out chunk.  Use
2470         REAL_VALUE_TO_DECIMAL.
2471         * config/1750a/1750a-protos.h: Delete prototypes of deleted
2472         functions.
2473         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
2474         IEEE_FLOAT_FORMAT.
2475         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
2476         Use REAL_VALUE_TO_DECIMAL as ELF version does.
2477         * config/m88k/m88k.c (real_power_of_2_operand,
2478         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
2479         real_extract out of the union; run the input through
2480         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
2481         from that into the union.
2482         * config/pdp11/pdp11.c (output_move_double): Rearrange
2483         parentheses to make automatic indenter happy.
2484
2485         * doc/tm.texi (Cross-compilation): Rename node to "Floating
2486         Point" and rewrite to describe current situation.  Also adjust
2487         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
2488         match code.
2489         * doc/rtl.texi: Adjust cross reference.
2490
2491 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2492
2493         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
2494         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
2495         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
2496         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
2497         prevent use of sp as a reload register.
2498         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
2499         non_acc_reg_operand.
2500         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
2501         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
2502         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2503         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
2504
2505 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2506
2507         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
2508         * cpplex.c (unterminated): Delete.
2509         (parse_string): No string literal may extend over multiple
2510         lines.  Suppress the error when preprocessing assembly.
2511         * cppmain.c (scan_translation_unit): Strings are single-line.
2512
2513         * doc/cpp.texi: Update to match.
2514
2515 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2516
2517         PR optimization/5854
2518         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
2519         Shut up warnings.
2520         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
2521         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
2522         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
2523         const0 if scratch register was not allocated.
2524         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
2525         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
2526         with GEN_INT (...).
2527         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
2528         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
2529         with GEN_INT (...) everywhere.  Remove constraints in define_split
2530         patterns.
2531         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2532         require scratch register for setting 0 into regs/non-pushable memory.
2533
2534 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2535
2536         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2537         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2538
2539 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
2540
2541         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
2542         * cppinit.c (cpp_create_reader):  On by default.
2543         (cpp_handle_option):  Handle -W[no-]endif-labels.
2544         (cpp_post_options):  Also enable if -pedantic.
2545         * cpplib.c (do_else):  Use it.
2546         (do_endif):  Likewise.
2547         * doc/cppopts.texi:  Document new option.
2548         * doc/invoke.texi:  Document new option.
2549
2550 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
2551
2552         * config/i386/i386.c, config/i386/i386.md: Change all occurences
2553         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2554
2555 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2556
2557         * flow.c (calculate_global_regs_live): Clear aux fields of
2558         ENTRY and EXIT.
2559
2560 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2561
2562         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
2563         REG or MEM subregs, pass rtx * instead of rtx to it.
2564         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
2565         rtx * instead of rtx to alter_subreg.
2566         * config/m32r/m32r.c (gen_split_move_double): Likewise.
2567         * config/pj/pj.c (pj_output_rval): Likewise.
2568
2569 2002-03-22  Richard Henderson  <rth@redhat.com>
2570
2571         PR target/3177
2572         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
2573         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
2574         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
2575         (ia64_expand_prologue): Look at int_regs, not words, for number
2576         of incomming int regs.
2577
2578 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
2579
2580         * expr.c (expand_expr): A RESULT_DECL is part of a call.
2581
2582 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
2583
2584         * toplev.c (flag_loop_optimize, flag_crossjumping):
2585         New static variables.
2586         (rest_of_compilation): Conditionalize crossjumping and
2587         loop optimizer.
2588         (parse_options_and_default_flags): Default loop_optimize and
2589         crossjumping.
2590         (lang_independent_options): Add -fcrossjumping and -floop-optimize
2591         * invoke.texi (crossjumping, loop-optimize): Document.
2592
2593 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2594
2595         * real.c (eiisneg): Move outside #ifdef NANS.
2596
2597 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2598
2599         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
2600         frequencies match; avoid match on different loop depths.
2601         (try_crossjump_to_bb): Kill tests that no longer brings time
2602         savings.
2603         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2604         updating code.
2605         (split_edge): Likewise.
2606
2607         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
2608         variable.
2609
2610         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
2611         * cfgrtl.c: Include insn-config.h
2612         (split_block) Dirtify block in presence of conditional execution
2613
2614 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2615
2616         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
2617         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
2618         (function_arg): Constify CUMULATIVE_ARGS.
2619         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
2620         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
2621         (UNITS_PER_DOUBLE): New macro.
2622         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
2623         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
2624         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
2625         fp_regs and stack_words.
2626         (EABI_FLOAT_VARARGS_P): New macro.
2627         * config/mips/mips.c (struct mips_arg_info): New.
2628         (mips_arg_info): New function.
2629         (function_arg_advance): Use it.  Add adjustment instructions here
2630         rather than in function_arg.
2631         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
2632         for VOIDmode at the beginning of the function.
2633         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
2634         (function_arg_pass_by_reference): Likewise.
2635         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2636         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2637         (mips_va_start): Likewise.  Use the new stack_words field of
2638         CUMULATIVE_ARGS to set up overflow area.  Reformat.
2639         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
2640         doubles and other types, aligning the overflow pointer for non-doubles
2641         too.  Remove some code duplication.  Replace hard-coded constants.
2642
2643 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2644
2645         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2646         (CLASS_UNITS): Undefine.
2647         (CLASS_MAX_NREGS): Use FP_INC.
2648         * config/mips/mips.c (compute_frame_size): Likewise.
2649         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2650
2651 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2652
2653         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2654         prototype, and handle lexing numbers and identifiers.
2655         (parse_identifier): Update to new form of parse_slow.
2656         (parse_number): Fast path only, use parse_slow otherwise.
2657         (_cpp_lex_direct): Update calls to parse_number.
2658
2659 2002-03-21  DJ Delorie  <dj@redhat.com>
2660
2661         * bb-reorder.c (make_reorder_chain_1): Protect against
2662         when redundant edges are omitted.
2663         * predict.c (dump_prediction): Likewise.
2664
2665 2002-03-21  Richard Henderson  <rth@redhat.com>
2666
2667         PR target/5996
2668         * fixinc/inclhack.def (solaris_stdio_tag): New.
2669         * fixinc/fixincl.x: Regenerate.
2670
2671 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2672
2673         PR c/5597
2674         * c-typeck.c (process_init_element): Flag non-static
2675         initialization of a flexible array member as illegal.
2676
2677 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
2678
2679         * config/rs6000/t-linux64: New.
2680         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2681         t-ppccomm.  Use t-rs6000 and t-linux64.
2682         (powerpc64-*-gnu* <tmake_file>): Likewise.
2683         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2684         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2685         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2686
2687 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
2688
2689         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2690         flag_really_no_inline instead of optimize == 0.
2691
2692         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2693
2694         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2695
2696         * flags.h (flag_really_no_inline): New.
2697
2698         * c-common.c (c_common_post_options): Initialize
2699         flag_really_no_inline.
2700
2701         * toplev.c (flag_really_no_inline): New.
2702
2703 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2704
2705         * config/avr/avr.md (length): Fix length computation for
2706         conditional branches.
2707
2708 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2709
2710         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2711         sdbout.o, profile.o): Update.
2712         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2713         langhook.
2714         * c-common.h (gettags): Move here from tree.h.
2715         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2716         insert_block, getdecls, kept_level_p, global_bindings_p): New.
2717         * dbxout.c (dbxout_init): Use getdecls langhook.
2718         * expr.c (expand_expr): Use insert_block langhook.
2719         * fold-const.c: Include langhooks.h.
2720         (fold_range_test, fold_binary_op_with_conditional_arg,
2721         fold): Use global_bindings_p langhook.
2722         * integrate.c (expand_inline_function): Use insert_block langhook.
2723         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2724         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2725         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2726         LANG_HOOKS_GETDECLS): New.
2727         (LANG_HOOKS_INITIALIZER): Update.
2728         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2729         langhook.
2730         * langhooks.h (struct lang_hooks_for_decls): New.
2731         (struct lang_hooks): Update.
2732         * profile.c: Include langhooks.h.
2733         (output_func_start_profiler): Use new langhooks.
2734         * sdbout.c: Include langhooks.h.
2735         (sdbout_init, sdbout_finish): Use getdecls langhook.
2736         * stmt.c: Include langhooks.h.
2737         (expand_fixup, fixup_gotos): Use new langhooks.
2738         * stor-layout.c: Include langhooks.h.
2739         (variable_size): Use global_bindings_p langhook.
2740         * toplev.c (compile_file): Use getdecls langhook.
2741         * tree-inline.c (remap_block): Use insert_block langhook.
2742         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
2743         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
2744
2745 2002-03-21  Richard Henderson  <rth@redhat.com>
2746
2747         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2748         constants in .data when -fpic.
2749
2750 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2751
2752         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2753         where appropriate.
2754
2755 2002-03-21  Tom Tromey  <tromey@redhat.com>
2756
2757         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
2758
2759 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2760
2761         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2762
2763         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2764
2765 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2766             Richard Henderson  <rth@redhat.com>
2767
2768         PR c/5354
2769         * c-common.c (c_expand_expr): Preserve result of a statement
2770         expression if needed.
2771
2772 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2773
2774         PR bootstrap/4195
2775         * genrecog.c (maybe_both_true_mode): Remove.
2776         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
2777         * machmode.def (Pmode): Likewise.
2778
2779 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
2780
2781         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
2782         (nonlocal_mentioned_p_1): New function.
2783         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
2784         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
2785         (mark_constant_function): Recognize pure functions.
2786         * rtl.h (global_reg_mentioned_p): New prototype.
2787         * rtlanal.c (global_reg_mentioned_p,
2788         global_reg_mentioned_p_1): New function.
2789
2790 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2791
2792         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2793         UNIX assert.h.
2794         * fixinc/fixincl.x: Regenerate.
2795
2796 2002-03-20  Jason Merrill  <jason@redhat.com>
2797
2798         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2799
2800 2002-03-20  Michael Meissner  <meissner@redhat.com>
2801
2802         * doc/invoke.texi (Optimize Options): Document that -O2 sets
2803         -fstrict-aliasing.
2804
2805 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2806
2807         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2808         ".literal_position" directive before the constant pool.
2809
2810 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2811
2812         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
2813         Add Craig Rodrigues.
2814         Add Brad Lucier to testers.
2815
2816 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2817
2818         PR target/4792
2819         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
2820         to if_then_else.
2821         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
2822         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
2823         instead of insn_extract.
2824
2825 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2826
2827         PR bootstrap/4192
2828         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
2829
2830         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
2831         stmt if some case has been output.
2832
2833 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2834
2835         PR c/5972
2836         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
2837         movsfcc_1, movdfcc_1): Add %O2.
2838         * config/i386/i386.c (print_operand): Handle %ON.
2839         Print . before float condition codes in Sun as cmov syntax.
2840         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
2841         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
2842         no longer true.
2843
2844 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
2845
2846         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
2847         return instruction if PC was popped.
2848
2849 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2850
2851         * config/xtensa/xtensa.md: Remove unused type attributes.
2852         (adddi_carry, subddi_carry): Change type attribute to "multi".
2853
2854 2002-03-19  Dale Johannesen  <dalej@apple.com>
2855
2856         PR optimization/5999, middle-end/5731
2857         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
2858         multiplications by reciprocals.
2859
2860 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2861
2862         * Makefile.in: Update.
2863         * c-common.c: Include langhooks.h.
2864         (inline_forbidden_p): Use new hook.
2865         * diagnostic.c: Include langhooks.h.
2866         (format_with_decl, announce_function,
2867         default_print_error_function): Use new hook.
2868         * dwarf2out.c (dwarf2_name): Use new hook.
2869         * function.c: Include langhooks.h.
2870         (init_function_start): Use new hook.
2871         * langhooks-def.h (lhd_decl_printable_name): New.
2872         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
2873         (LANGHOOKS_INITIALIZER): Update.
2874         * langhooks.c (lhd_decl_printable_name): New.
2875         * langhooks.h (struct lang_hooks): New hook.
2876         * toplev.c (decl_name, decl_printable_name): Remove.
2877         (open_dump_file): Use new hook.
2878         (process_options): Remove old hook.
2879         * tree.h (decl_printable_name): Remove.
2880 objc:
2881         * objc-act.c (objc_init): Remove old hook.
2882         (objc_printable_name): Export.
2883         * objc-act.h (objc_printable_name): New.
2884         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
2885
2886 2002-03-19  Jim Blandy  <jimb@redhat.com>
2887
2888         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
2889         the start_source_file debug hook, not the current line number.
2890
2891 2002-03-19  Richard Henderson  <rth@redhat.com>
2892
2893         * flow.c (EH_USES): Provide default.
2894         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
2895         * doc/tm.texi (EH_USES): New.
2896
2897         * config/ia64/ia64.c (ia64_eh_uses): New.
2898         * config/ia64/ia64-protos.h: Update.
2899         * config/ia64/ia64.h (EH_USES): New.
2900
2901 2002-03-19  Richard Henderson  <rth@redhat.com>
2902
2903         * varasm.c (output_constant_def): Fix stupid typo.
2904
2905 2002-03-19  Richard Henderson  <rth@redhat.com>
2906
2907         PR 5879
2908         * except.c (current_function_has_exception_handlers): New.
2909         * except.h: Declare it.
2910         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
2911         Combine tests that disable all sibcalls for the function.
2912
2913 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
2914
2915         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
2916         for INTEGER_CST.
2917
2918 2002-03-19  Richard Henderson  <rth@redhat.com>
2919
2920         PR 5977, 5991
2921         * config/ia64/ia64.c: Revert 2002-03-01 patch.
2922         * config/ia64/ia64.h (INIT_EXPANDERS): New.
2923
2924 2002-03-19  Jim Blandy  <jimb@redhat.com>
2925
2926         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
2927         name, even if the replacement list contains no tokens, as required
2928         by Dwarf.
2929
2930 2002-03-19  Jason Merrill  <jason@redhat.com>
2931
2932         * varasm.c (globalize_decl): Get the name from the RTL, not
2933         DECL_ASSEMBLER_NAME.
2934
2935         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
2936
2937 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
2938
2939         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
2940         subdi_carry): Define.
2941
2942 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
2943
2944         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
2945         about -fpic/-fPIC if extra_warnings set.
2946
2947 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
2948
2949         * expr.c (expand_expr): Sign-extend CONST_INT generated from
2950         TREE_STRING_POINTER.
2951         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
2952
2953 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2954
2955         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
2956         in favor of SP if FRAME_POINTER_REQUIRED is false.
2957
2958 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
2959
2960         * emit-rtl.c (gen_int_mode): New function.
2961         * rtl.h: Prototype for it.
2962         * combine.c (make_extraction, simplify_comparison), expmed.c
2963         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
2964         (convert_modes, store_field), optabs.c (expand_fix),
2965         simplify-rtx.c (neg_const_int, simplify_unary_real),
2966
2967         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
2968         Use it instead of GEN_INT (trunc_int_for_mode (...)).
2969
2970 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
2971
2972         PR c/5656
2973         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
2974         convert_parm_for_inlining.
2975         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2976         Define.
2977         * langhooks-def.h: Likewise.
2978         * objc/objc-lang.c: Likewise.
2979         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
2980         function.
2981         * tree-inline.c (initialize_inlined_parameters):
2982         Call convert_parm_for_inlining lang hook if needed.
2983         * c-typeck.c (c_convert_parm_for_inlining): New function.
2984         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
2985
2986 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
2987
2988         * calls.c (precompute_arguments): Do not assume that temporaries
2989         can be destroyed after expanding the argument.
2990         (expand_call): Likewise.
2991
2992 2002-03-15  Eric Christopher  <echristo@redhat.com>
2993
2994         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
2995         Fix register preference on last change.
2996         * config/mips/mips.c (mips_return_in_memory): New function.
2997         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
2998         * config/mips/mips-protos.h: Declare.
2999         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
3000         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
3001
3002 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
3003
3004         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
3005         a register too.
3006         (anddi3, iorsi3): Likewise.
3007
3008         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
3009         use %gprel for symbols that are going to be placed in linkonce
3010         sections.
3011
3012         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
3013         RETURN_ADDRESS_POINTER_REGNUM to $ra.
3014         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
3015         not needed.  Disregard leaf_function_p().
3016         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
3017         mips16 frame pointer.
3018         * config/mips/mips.md (store ra): Only to small SP offsets.
3019         2001-08-22  Graham Stott  <grahams@redhat.com>
3020         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
3021         return a REG rtx for the return address register.
3022
3023 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
3024
3025         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
3026         constant-pool addresses as "mode-dependent".
3027         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
3028
3029 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
3030
3031         PR target/5740
3032         * expr.c (emit_group_load): Use extract_bit_field if
3033         needed for CONCAT arguments.
3034
3035 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
3036
3037         PR target/4863
3038         * arm.md (tablejump): Make this a define_expand.  For PIC add the
3039         offset to the base of the table.
3040         (thumb_tablejump): Matcher for Thumb tablejump insn.
3041         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
3042         as the difference of two labels.
3043         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3044         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
3045         tables in the code.
3046         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
3047         * arm.c (get_jump_table_size): If the table is not in the text
3048         section, return zero.
3049
3050 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
3051
3052         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
3053         of gen_rtx_SUBREG.
3054         (arm_reload_out_hi): Use gen_lowpart instead of
3055         gen_rtx_SUBREG to access QImode components.
3056         * config/arm/arm.md: Disable zero_extend split for QImode
3057         subregs in BIG_ENDIAN mode.
3058         (storehi_bigend): Match use of least significant byte.
3059         (storeinthi): Remove extraneous SUBREG.
3060         Add missing construction of operands[2].
3061         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
3062         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
3063         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
3064
3065 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
3066
3067         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
3068         any_operand.
3069
3070 2002-03-17  Richard Henderson  <rth@redhat.com>
3071
3072         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
3073         explicitly.
3074
3075 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3076
3077         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
3078         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
3079
3080 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3081
3082         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
3083
3084         * predict.c (estimate_bb_frequencies): Delete unused variables.
3085
3086 2002-03-17  Richard Henderson  <rth@redhat.com>
3087
3088         * config/ia64/ia64.c (ia64_attribute_table): Move before
3089         targetm definition.  Make static.
3090
3091 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3092
3093         * c-common.h (yyparse, c_common_parse_file): New.
3094         * c-lang.c: Include c-common.h.
3095         (LANG_HOOKS_PARSE_FILE): Redefine.
3096         * c-lex.c: Include c-common.h.
3097         (yyparse): Rename c_common_parse_file.  Call yyparse.
3098         * c-parse.in (yyparse): Remove macro.
3099         * c-tree.h (yyparse_1): Remove.
3100         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
3101         (LANG_HOOKS_INITIALIZER): Update.
3102         * langhooks.h (struct lang_hoooks): New hook parse_file.
3103         * toplev.c (compile_file): Use parse_file hook.
3104         * tree.h (yyparse): Remove.
3105         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
3106
3107 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3108
3109         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
3110         float_truncate, not fix.
3111         ("*truncdfsf2_real"): Ditto.
3112         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
3113
3114         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
3115
3116 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
3117
3118         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
3119         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
3120         where appropriate.  Make the second reference to
3121         leaf_function_p a function call, as intended.  Reindented.
3122
3123         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
3124         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
3125
3126         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
3127         add register to non-constant into sp.
3128
3129         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
3130         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
3131         (mips16_gp_pseudo_rtx): Lose.
3132         (INIT_EXPANDERS): Deleted.
3133         * config/mips/mips.c (mips_init_machine_status): New.
3134         (mips_free_machine_status): New.
3135         (mips_mark_machine_status): New.
3136         (override_options): Set them.
3137         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
3138         (struct machine_function): ... new.  Replaced all references.
3139         (mips_add_gc_roots): Don't mark them.
3140         (embedded_pic_fnaddr_reg): New, extracted from...
3141         (embedded_pic_offset): ... here.
3142         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
3143         (movsi): Likewise.
3144
3145 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3146
3147         * cppinit.c: Revert -MD removal.
3148
3149 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3150
3151         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
3152         soft registers by default for 68HC12.
3153         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
3154         when compiling with -fomit-frame-pointer.
3155         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
3156         (expand_epilogue): Likewise.
3157         (m68hc11_gen_rotate): Use exg when rotating by 8.
3158
3159 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3160
3161         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
3162         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
3163         (splits): Remove unused add splits.
3164         ("*addhi3_68hc12"): Tune constraints.
3165         ("addhi_sp"): Try to use X instead of Y in all cases and if the
3166         constant fits in 8-bits and D is dead use abx/aby instructions.
3167         ("*addhi3"): Remove extern declaration of ix_reg.
3168         ("*subsi3"): Optimize and provide new split.
3169         ("subhi3"): Cleanup.
3170         ("*subhi3_sp"): Avoid saving X if we know it is dead.
3171         (arith splits): For 68hc12 save the address register on the stack
3172         and do the arithmetic operation with a pop.
3173
3174 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3175
3176         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
3177         allocating QImode in address registers.
3178         ("*movqi_m68hc11"): Likewise.
3179
3180 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
3181
3182         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
3183
3184 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3185
3186         * cppinit.c (print_help): Display -MD and -MMD.
3187         Don't display usage string.  Update assertion syntax and
3188         typo.
3189         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
3190         (cpp_handle_option): Update.
3191
3192 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
3193
3194         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
3195         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
3196         and define it so that regardless of target CPU size,
3197         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
3198         of "int" rather than "long."
3199
3200 2002-03-15  Richard Henderson  <rth@redhat.com>
3201
3202         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
3203         size as a tree.
3204
3205 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3206
3207         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
3208         ("tstqi" split): Avoid using memory for tstqi on address register.
3209         (splits): Remove constraints.
3210         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
3211         ("cmpdf", "cmpsf"): Remove since not used.
3212         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
3213         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
3214
3215 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3216
3217         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
3218         ("neghi2"): Tighten constraints.
3219         ("one_cmplsi2"): Optimize and simplify split.
3220         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
3221
3222 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3223
3224         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
3225         and split of AND operation to clear the upper bits.
3226         ("*logicalsi3_zextqi"): Likewise.
3227         ("*logicallhi3_zexthi_ashift8"): Likewise.
3228         ("*logicalsi3_silshr16"): Likewise.
3229         ("logicalsi3_silshl16"): Likewise.
3230         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
3231
3232 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3233
3234         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
3235         (m68hc11_indirect_p): New function.
3236         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
3237         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
3238         TARGET_M6812.
3239         (asm_print_register): Likewise.
3240         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
3241         (m68hc11_indirect_p): Declare.
3242         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
3243         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
3244         (TARGET_SWITCHES): New option -mrelax.
3245         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
3246         destination.
3247         ("iorsi3", "xorsi3"): Likewise.
3248         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
3249         ("*andhi3_mem"): New to handle destination in memory with bclr
3250         and a scratch register.
3251         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
3252         ("*andhi3_const"): New when operand2 is constant.
3253         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
3254         ("*andhi3_gen"): Cleanup of the old "andhi3".
3255         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
3256         ("xorqi3"): Update constraints.
3257
3258 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3259
3260         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
3261         for reg_equiv_memory_loc when the operand is a register that does
3262         not get a hard register (stack location).
3263         (tst_operand): After reload, accept all memory operand.
3264         (symbolic_memory_operand): Fix detection of symbolic references.
3265         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
3266         accept symbols and any constant.
3267
3268 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3269
3270         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
3271         note on the insn that sets the soft frame register.
3272         (must_parenthesize): ix and iy are also reserved names.
3273         (print_operand_address): One more place where parenthesis are required
3274         to avoid confusion with register names.
3275         (m68hc11_gen_movhi): Allow push of stack pointer.
3276         (m68hc11_check_z_replacement): Fix handling of parallel with a
3277         clobber.
3278         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
3279         the replacement register is.
3280         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
3281         and D8_REGS classes.
3282         (MODES_TIEABLE_P): All modes are tieable except QImode.
3283
3284 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3285
3286         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
3287         (___subdi3): Likewise.
3288         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
3289         (__map_data_section): Optimize 68hc11 case.
3290
3291 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3292
3293         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
3294         than a shift to avoid adding a register with itself.
3295         (m68hc11_memory_move_cost): Take into account NO_REGS.
3296         (m68hc11_register_move_cost): Update and use memory move cost
3297         for soft registers.
3298         (m68hc11_address_cost): Make cost of valid offset not 0 so that
3299         it gives more opportunities to cse to optimize.
3300         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
3301         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
3302
3303 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
3304
3305         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
3306         * c-common.def (CLEANUP_STMT): New tree node.
3307         * c-common.h (CLEANUP_DECL): New macro.
3308         (CLEANUP_EXPR): Likewise.
3309         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
3310         * expr.c (expand_expr): Tidy.
3311         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
3312         * tree-inline.c (initialize_inlined_parameters): Clean up
3313         new local variables.
3314
3315 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
3316
3317         PR bootstrap/4128
3318         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
3319         before movrXX only, use reg_overlap_mentioned_p.
3320         Only special case NE if just one insn can be generated.
3321
3322 2002-03-15  Jason Merrill  <jason@redhat.com>
3323
3324         * varasm.c (assemble_variable): Call resolve_unique_section before
3325         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
3326         of error_mark_node.
3327
3328 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
3329
3330         PR target/5170
3331         * arm.md (split pattern for thumb shiftable immediates): Add comment
3332         explaining non-obvious test.
3333
3334 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
3335
3336         PR target/5712
3337         * arm.md (movaddr, movaddr_insn): Delete.
3338
3339 2002-03-15  Jason Merrill  <jason@redhat.com>
3340
3341         * toplev.c (wrapup_global_declarations): Clarify variable handling.
3342         -fkeep-static-consts doesn't apply to comdats.
3343
3344 2002-03-14  Richard Henderson  <rth@redhat.com>
3345
3346         * c-decl.c: Include c-pragma.h.
3347         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
3348         (finish_function): Tidy.
3349         * c-pragma.c: Include c-common.h.
3350         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
3351         (handle_pragma_weak): Use them.
3352         (init_pragma): Register pending_weaks.
3353         * c-pragma.h (maybe_apply_pragma_weak): Declare.
3354         * print-tree.c (print_node): Print DECL_WEAK.
3355         * varasm.c (mark_weak_decls): Remove.
3356         (remove_from_pending_weak_list): Remove.
3357         (add_weak): Remove.
3358         (asm_emit_uninitialised): Call globalize_decl for weak commons.
3359         (weak_decls): Make a tree_list.
3360         (declare_weak): Cons weak_decls directly.
3361         (globalize_decl): Remove weak_decls elements directly.
3362         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
3363         symbols.  Don't pretend to handle aliases.
3364         (init_varasm_once): Update weak_decls registry.
3365         * Makefile.in: Update dependencies.
3366
3367 2002-03-14  Richard Henderson  <rth@redhat.com>
3368
3369         PR target/5312
3370         * config/ia64/ia64.c: Include tm_p.h last.
3371         (gen_nop_type): Remove duplicate definition.
3372         (cycle_end_fill_slots): Set sched_data for second L slot.
3373         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
3374         (nop_cycles_until): Fix typos.
3375
3376 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
3377
3378         PR optimization/5891
3379         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
3380
3381 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
3382
3383         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
3384           descriptors correctly.
3385
3386 2002-03-14  Michael Meissner  <meissner@redhat.com>
3387
3388         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
3389         100, allowing MAX_UNROLLED_INSNS to be overridden.
3390
3391         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
3392         --param.
3393
3394         * unroll.c (params.h): Include.
3395         (MAX_UNROLLED_INSNS): Delete, now in params.h.
3396
3397         * doc/invoke.texi (--param max-unroll-insns): Document.
3398
3399         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
3400
3401 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3402
3403         * arm.md: Fix warnings about constraints in peepholes and splits.
3404
3405 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
3406
3407         * cpphash.h (struct lexer_state): Remove line_extension member.
3408         * cpplib.c (dequote_string, do_linemarker): New functions.
3409         (linemarker_dir): New data object.
3410         (DIRECTIVE_TABLE): No longer need to interpret #line in
3411         preprocessed source.  Delete obsolete comment about return
3412         values of handlers.
3413         (end_directive, directive_diagnostics, _cpp_handle_directive):
3414         Don't muck with line_extension.
3415         (directive_diagnostics): No need to issue warnings for
3416         linemarkers here.
3417         (_cpp_handle_directive): Issue warnings for linemarkers here,
3418         when appropriate.  Dispatch linemarkers to do_linemarker, not
3419         do_line.
3420         (do_line): Code to handle linemarkers split out to do_linemarker.
3421         Convert escape sequences in filename argument, both places.
3422
3423         * cppmacro.c (quote_string): Rename cpp_quote_string and
3424         export.  All callers changed.
3425         * cpplib.h (cpp_quote_string): Prototype.
3426         * cppmain.c (print_line): Call cpp_quote_string on to_file
3427         before printing it.
3428
3429         * doc/cpp.texi: Document that escapes are now interpreted in
3430         #line and in linemarkers, and that non-printing characters are
3431         converted to octal escapes when linemarkers are generated.
3432
3433 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
3434
3435         * emit-rtl.c (try_split): Use delete_insns.
3436         * recog.c (split_all_insns): Fix terminating condition.
3437
3438 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3439             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
3440
3441         PR target/5828
3442         * arm.c (arm_output_epilogue): Fix floating-point register save
3443         adjustment when using a frame pointer.
3444
3445 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
3446
3447         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
3448         * config/mips/mips.c (compute_frame_size): Retrofit them here.
3449         (save_restore_insns, mips_expand_epilogue): And here.
3450         (build_mips16_call_stub): And here.
3451         (mips_function_value): Use the new macros to decide whether a single
3452         or complex float can be returned in floating-point registers.  Return
3453         a parallel rtx in the complex case.
3454
3455 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
3456
3457         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
3458         call after liveness analysis.
3459
3460         * recog.c (split_insn): Use delete_insn_and_edges.
3461
3462         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
3463         instructions to have branch prediction notes.
3464         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
3465
3466 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
3467
3468         * configure.in: Don't pass -Wno-long-long to a ADA compiler
3469         that doesn't support it.
3470         * configure: Regenerate.
3471
3472 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3473
3474         PR target/5626
3475         * config/sparc/sparc.md (normal_branch, inverted_branch,
3476         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
3477         inverted_fp_branch): Adjust calls to output_cbranch.
3478         Set length attribute.
3479         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
3480         output_v9branch.  Set length attribute.
3481         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
3482         predicates.
3483         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
3484         (output_cbranch): Likewise.  Handle far branches.
3485         (output_v9branch): Handle far branches.
3486         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
3487         Adjust prototypes.
3488         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
3489         noov_compare64_op predicates.
3490
3491 2002-03-13  Jason Merrill  <jason@redhat.com>
3492
3493         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
3494         into the function and constify it.
3495         * gthr-dce.h, gthr-solaris.h: Likewise.
3496
3497 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
3498
3499         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
3500         * config/rs6000/rs6000.c (rs6000_va_arg): Use
3501         std_expand_builtin_va_arg if not ABI_V4.
3502
3503 2002-03-13  Jason Merrill  <jason@redhat.com>
3504
3505         * varasm.c (globalize_decl): New fn.
3506         (assemble_start_function): Use it.
3507         (asm_emit_uninitialized): Use it.
3508         (assemble_alias): Use it.
3509         (assemble_variable): Use it.
3510
3511 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
3512
3513         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
3514         2002-03-12 internal visibility change.
3515         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
3516         visibility into SYMBOL_REF_FLAG.
3517
3518 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
3519
3520         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
3521         VOIDmode operand.  Add compile-time optimization for constant results.
3522
3523 2002-03-12  Jason Merrill  <jason@redhat.com>
3524
3525         * c-typeck.c (convert_for_assignment): Don't allow conversions
3526         between pointers and references.  Only allow lvalues to convert to
3527         reference.
3528
3529 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
3530
3531         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
3532         before prologue, to avoid scheduling problems.
3533
3534 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3535
3536         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3537         (ELIMINABLE_REGS): Add sfp->sp.
3538         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
3539
3540 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3541
3542         PR optimization/5892
3543         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
3544
3545 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3546
3547         * loop.c (basic_induction_var): Don't call convert_modes if mode
3548         classes are different.
3549
3550 2002-03-12  Richard Henderson  <rth@redhat.com>
3551
3552         PR optimization/5901
3553         * function.c (reposition_prologue_and_epilogue_notes): Position
3554         the markers after/before the last/first insn not deleted.
3555
3556 2002-03-12  Richard Henderson  <rth@redhat.com>
3557
3558         PR optimization/5878
3559         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
3560         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
3561         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3562
3563         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
3564         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
3565         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
3566
3567         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
3568         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
3569         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
3570         also.  Don't set it if not flag_pic.
3571         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
3572         to be INVALID_REGNUM when not used.
3573
3574 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
3575
3576         * expmed.c (store_bit_field): Reset alias set for memory.
3577         (extract_bit_field): Same.
3578
3579 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3580
3581         * c-common.c (c_tree_code_type, c_tree_code_length,
3582         c_tree_code_name, add_c_tree_codes): Delete.
3583         * c-common.h (add_c_tree_codes): Delete.
3584         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
3585         Define.
3586         * c-objc-common.c (c_objc_common_init): Don't call
3587         add_c_tree_codes, instead set lang_unsafe_for_reeval.
3588         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
3589         objc_tree_code_name, add_objc_tree_codes): Delete.
3590         (objc_init): Don't call add_objc_tree_codes.
3591         * objc/objc-lang.c (tree_code_type, tree_code_length,
3592         tree_code_name): Define.
3593         * toplev.c (lang_independent_init): Don't set
3594         tree_code_length[IDENTIFIER_NODE].
3595         * tree.c (tree_code_type, tree_code_length, tree_code_name):
3596         Delete definitions, moved to language front-ends.
3597         * tree.def (IDENTIFIER_NODE): Hardwire the length.
3598         * tree.h (tree_code_type, tree_code_length, tree_code_name):
3599         Const-ify.
3600         (tree_code_length): Change type to unsigned char.
3601
3602 2002-03-12  Richard Henderson  <rth@redhat.com>
3603
3604         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
3605         internal visibility change.
3606
3607 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3608
3609         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
3610         validize_mem() instead of change_address to avoid clobbering
3611         memory attributes.
3612
3613 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3614
3615         * c-lex.h (position_after_whitespace): Remove.
3616
3617 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
3618
3619         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
3620         (lex_string): Use unsigned char pointers.
3621
3622 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3623
3624         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
3625         is not a valid memory_operand.
3626
3627 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3628
3629         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
3630         * config/xtensa/lib1funcs.asm: Fix copyright to include
3631         special case for libgcc files.
3632         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
3633         (__divsi3): Likewise.
3634         (__umodsi3): Likewise.
3635         (__modsi3): Likewise.
3636         * config/xtensa/lib2funcs.S: Fix copyright to include
3637         special case for libgcc files.
3638
3639 2002-03-12  Tom Rix  <trix@redhat.com>
3640
3641         * collect2.c (resolve_lib_name): Move outside of
3642         OBJECT_FORMAT_COFF ifdef.
3643         (ignore_library): Same.
3644
3645 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3646
3647         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
3648
3649 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3650
3651         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
3652         to function_section before writing out the constant pool.
3653
3654 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
3655
3656         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
3657         zero_constant.
3658         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
3659
3660 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
3661
3662         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
3663         (adddi3): Likewise.
3664         (movdf): Likewise.
3665         (movdi): Likewise.
3666         (cmpsi splitter): Likewise.
3667         (modsi3): Fail if <= 0.
3668         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
3669         redundant test when HOST_BITS_PER_WIDE_INT != 32.
3670         (reg_or_sub_cint64_operand): Likewise.
3671         (num_insns_constant_wide): Optimize sign extension.
3672         (rs6000_legitimize_address): Likewise.
3673
3674 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3675
3676         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3677         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3678
3679 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3680
3681         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
3682         address calculation.
3683
3684 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3685
3686         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
3687         scratch register to DImode / TImode.
3688         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
3689         register used does not overlap the target.
3690
3691 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3692
3693         * Makefile.in (debug.o): Depend on debug.h.
3694         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
3695         * debug.c (do_nothing_debug_hooks): Likewise.
3696         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
3697         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
3698         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
3699         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3700         * dwarfout.c (dwarf_debug_hooks): Likewise.
3701         * integrate.c (output_inline_function): Likewise.
3702         * objc/objc-act.c (synth_module_prologue): Likewise.
3703         * sdbout.c (sdb_debug_hooks): Likewise.
3704         * toplev.c (debug_hooks): Likewise.
3705         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3706
3707 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3708
3709         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
3710         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
3711         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
3712         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
3713         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
3714         * defaults.h (POINTER_SIZE): Define.
3715         * doc/tm.texi (POINTER_SIZE): Document default.
3716
3717 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3718
3719         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
3720
3721 2002-03-11  Richard Henderson  <rth@redhat.com>
3722
3723         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
3724         if rebuild_label_notes_after_reload.
3725
3726 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
3727
3728         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
3729         emit pic register load if "internal" visibility.
3730         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
3731         (cris_expand_builtin_va_arg): Do all computations on trees.
3732
3733 2002-03-11  Richard Henderson  <rth@redhat.com>
3734
3735         * rtlanal.c: Include recog.h.
3736         (keep_with_call_p): Fix thinko.
3737         * Makefile.in (rtlanal.o): Update dependencies.
3738
3739 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
3740
3741         * genflags.c (gen_insn): Use IS_VSPACE.
3742         * genoutput.c (output_insn_data): Likewise.
3743         (process_template): Likewise.
3744
3745 2002-03-11  Richard Henderson  <rth@redhat.com>
3746
3747         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
3748
3749 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3750
3751         * Makefile.in: Update.
3752         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
3753         Update documentation.
3754         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
3755         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
3756
3757 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
3758
3759         * Makefile.in: Give texi2pod its input file as a command line
3760         argument, not on stdin.
3761
3762 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
3763             Daniel Berlin  <dan@dberlin.org>
3764
3765         C++ alias analysis improvement.
3766         * alias.c (record_component_aliases): Record aliases for base
3767         classes too.
3768
3769 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3770
3771         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
3772
3773 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
3774
3775         * toplev.c (vms_fopen): Remove, not needed.
3776
3777         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
3778
3779         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
3780
3781         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
3782         for FP, already done later.
3783
3784         * toplev.c (debug_args): Add entry for VMS_DEBUG.
3785         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
3786
3787 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
3788
3789         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
3790         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
3791         LARGEST_EXPONENT_IS_NORMAL for the given mode.
3792         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
3793         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
3794         (ediv, emul, eldexp, esqrt): Likewise.
3795         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
3796         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
3797         (saturate): New function.
3798         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
3799         (make_nan): Use a saturation value instead of a NaN if
3800         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
3801         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
3802         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
3803         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
3804         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
3805         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
3806         !ROUND_TOWARDS_ZERO.
3807         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
3808         (ROUND_TOWARDS_ZERO): Document.
3809
3810 2002-03-11  Andreas Jaeger  <aj@suse.de>
3811
3812         * cfg.c (dump_flow_info): Remove unused variable.
3813
3814 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
3815
3816         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
3817         computations on trees.
3818
3819 2002-03-10  Richard Henderson  <rth@redhat.com>
3820
3821         PR 5693:
3822         * reload.c (copy_replacements_1): New.
3823         (copy_replacements): Use it to recurse through the rtx.
3824
3825 2002-03-10  Richard Henderson  <rth@redhat.com>
3826
3827         * loop.c (strength_reduce): Compute number of iterations as
3828         unsigned HOST_WIDE_INT.
3829
3830 2002-03-10  Richard Henderson  <rth@redhat.com>
3831
3832         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
3833         to move away from the end of the block.
3834
3835 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3836
3837         PR preprocessor/5899
3838         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
3839
3840 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3841
3842         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
3843
3844         * attribs.c (decl_attributes): Fix signed/unsigned warning.
3845
3846 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
3847
3848         * config/mmix/mmix.c: Improve comments.
3849         (mmix_target_asm_function_prologue): Drop variable
3850         empty_stack_frame.  Don't allocate unused slot above fp.
3851         (mmix_target_asm_function_epilogue): Mirror prologue changes.
3852         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
3853         brace in first column.
3854         (enum reg_class): Ditto.
3855         (FIRST_PARM_OFFSET): Now 0.
3856         (USER_LABEL_PREFIX): Remove #if 0:d definition.
3857
3858 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3859
3860         * combine.c (make_extraction): Fix error in last change.
3861
3862 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3863
3864         * c4x.c (c4x_fp_reglist): Const-ify.
3865         * cris.c (cris_print_operand): Likewise.
3866         * i386.c (ix86_va_arg): Likewise.
3867         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
3868         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
3869         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
3870         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
3871         * mcore.h (regno_reg_class): Likewise.
3872         * mips.c (gen_int_relational): Likewise.
3873         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
3874         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
3875         * pdp11.c (move_costs): Likewise.
3876         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
3877         * s390.c (s390_branch_condition_mnemonic, regclass_map):
3878         Likewise.
3879         * s390.h (regclass_map): Likewise.
3880         * sh.c (shift_amounts): Likewise.
3881         * sh.md (rotlsi3): Likewise.
3882
3883 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
3884
3885         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
3886         (ne0+5): Use new clobber to generate proper shift pattern.
3887         Patch by Michael Matz <matz@kde.org>.
3888
3889 2002-03-09  Andreas Schwab  <schwab@suse.de>
3890
3891         * gcc.c (validate_all_switches): Also handle `%W{...}'.
3892
3893 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
3894
3895         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
3896
3897 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
3898
3899         PR middle-end/5877
3900         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
3901         even for non-representable constants.
3902
3903 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3904
3905         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
3906         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
3907         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
3908         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
3909         (pop_function_context): Compute MAY_SHARE parameter for
3910         fixup_var_refs.
3911         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
3912         (gen_mem_addressof): Call fixup_var_refs with new parm.
3913
3914         * combine.c (make_extraction): Don't make extension of CONST_INT.
3915
3916 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
3917
3918         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
3919         in o32 and o64 ABIs.
3920         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
3921         but getting fixed-size structs passed in registers regardless of
3922         padding in o32 and o64 ABIs.
3923
3924         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
3925         offset before loading address of argument passed by transparent
3926         reference.
3927
3928 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3929
3930         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
3931
3932 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
3933
3934         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
3935         marker such that registers after it are saved.
3936
3937 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3938
3939         * sparc.c (arith_4096_operand): Fix error in last change.
3940
3941 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
3942
3943         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
3944         defaults for MEABI.
3945
3946 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
3947
3948         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
3949         vectors.
3950
3951 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
3952
3953         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
3954
3955 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
3956
3957         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
3958         removed; fix return value.
3959         * combine.c (combine_instructions): Dirtify blocks where we failed to
3960         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
3961         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
3962
3963 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3964
3965         * gcse.c (insert_insn_end_bb): Fix typo in last change.
3966
3967 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
3968
3969         * recog.c (peephole2_optimize): Re-distribute EH edges.
3970
3971 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3972
3973         * expr.c (expand_expr): Use unsave lang hook.
3974         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
3975         (LANG_HOOKS_INITIALIZER): Update.
3976         * langhooks.h (struct lang_hooks): New hook unsave.
3977         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
3978         (unsave_expr_1): Remove unused lang_unsave_expr_now.
3979         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
3980         (unsave_expr_now): Remove.
3981         * tree.h (unsave_expr_now, lang_unsave,
3982         lang_unsave_expr_now): Remove.
3983         (lhd_unsave): New.
3984
3985 2002-03-08  Andreas Jaeger  <aj@suse.de>
3986
3987         * flow.c (propagate_block_delete_insn): Remove unused variable.
3988
3989 2002-03-08  Kazu Hirata  <kazu@hxi.com>
3990
3991         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
3992         insn length for memory load/store.
3993
3994 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3995
3996         * doc/install.texi (--with-libiconv-prefix): Document.
3997
3998 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
3999
4000         * doc/sourcebuild.texi: Fix typo.
4001
4002 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
4003
4004         PR c/3711
4005         * builtins.c (std_expand_builtin_va_arg): Do all computations on
4006         trees.
4007
4008 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4009
4010         * rtl.c (copy_most_rtx): Move from here ...
4011         * emit-rtl.c (copy_most_rtx): ... to here.
4012
4013 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
4014
4015         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
4016         SUBTARGET_CPP_SIZE_SPEC.
4017         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
4018
4019         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
4020
4021 2002-03-07  Matt Hiller  <hiller@redhat.com>
4022
4023         * gensupport.c (first_dir_md_include): Renamed from include;
4024         change all references.
4025         (last_dir_md_include): Renamed from last_include; change all
4026         references.
4027         (init_md_reader): Unconditionally initialize base_dir whether or
4028         not filename is a relative path.
4029
4030 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
4031
4032         * config/fp-bit.c (_unord_f2): Compile it in even if
4033         US_SOFTWARE_GOFAST is enabled.
4034
4035         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
4036         NULL_RTX.  Set all HFmode operations as NULL_RTX.
4037         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
4038         NULL_RTX, try reversing the comparison and the operands.
4039
4040 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4041
4042         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
4043         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
4044         and MATCH_OP_DUP.
4045
4046 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
4047
4048         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
4049
4050 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
4051
4052         * basic-block.h (fixup_abnormal_edges): Declare.
4053         * reload1.c (fixup_abnormal_edges): New function.
4054         * reg-stack.c (convert_regs): Use it.
4055
4056         * gcse.c (insert_insn_end_bb): Handle trapping insns.
4057
4058         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
4059
4060 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
4061
4062         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
4063         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
4064         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
4065         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
4066         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
4067         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
4068         unless x and y could be infinite.
4069         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
4070         Check that the common type of both arguments is a real, even for
4071         targets without unordered comparisons.  Allow an integer argument
4072         to be compared against a real.
4073         (expand_tree_builtin): Use expand_unordered_cmp.
4074         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
4075         * cse.c (fold_rtx): Likewise.  Fix indentation.
4076         * fold-const.c (fold_real_zero_addition_p): New.
4077         (fold): Use it, and the new HONOR_... macros.
4078         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
4079         * jump.c (reversed_comparison_code_parts): After searching for
4080         the true comparison mode, use HONOR_NANS to decide whether it
4081         can be safely reversed.
4082         (reverse_condition_maybe_unordered): Remove IEEE check.
4083         * simplify-rtx.c (simplify_binary_operation): Use the new macros
4084         to decide which simplifications are valid.  Allow the following
4085         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
4086         and (a - -b) to (a + b).
4087         (simplify_relational_operation): Use HONOR_NANS.
4088         * doc/tm.texi: Document the MODE_HAS_... macros.
4089
4090 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
4091
4092         * combine.c (simplify_comparison): If simplifying a logical shift
4093         right and compare with constant, force the comparison to unsigned.
4094
4095 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
4096
4097         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
4098
4099         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
4100         -mabi=no-altivec
4101         (alt_reg_names): Remove % for vrsave.
4102
4103 2002-03-06  Richard Henderson  <rth@redhat.com>
4104
4105         PR optimization/5844
4106         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
4107         if used indicates we've already emitted one copy of an operand.
4108         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
4109         (gen_split): Supply a non-null used.
4110
4111 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4112
4113         * reload1.c (reload): Unshare all rtl after reload is done.
4114
4115         * simplify-rtx.c (simplify_plus_minus): Do not abort,
4116         but simply fail if the expression is too complex to simplify.
4117         (simplify_gen_binary): Handle simplify_plus_minus failures.
4118
4119 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
4120
4121         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
4122         consistently call delete_trivially_dead_insns after CSE and GCSE;
4123         fix DFI_life dumping; do jump threading after liveness; do crossjumping
4124         after liveness2; update comment in last crossjumping.
4125         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
4126
4127 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
4128
4129         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
4130         after completing fast dead code elimination.
4131
4132         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
4133         COMPARE operator.
4134
4135 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
4136
4137         * version.c:  Fix misplaced leading blanks on first line.
4138
4139 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
4140
4141         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
4142
4143 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
4144
4145         * cfgcleanup.c (mentions_nonequal_regs): New function.
4146         (thread_jump): Use it.
4147         * toplev.c (rest_of_compilation): Run jump threading after
4148         liveness.
4149
4150 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
4151
4152         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
4153         patch.
4154
4155 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4156
4157         * predict.c (estimate_bb_frequencies): Do not reload the
4158         frequencies from notes.
4159
4160 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
4161
4162         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
4163         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
4164
4165         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
4166         delete_noop_moves): Return indeger.
4167         * flow.c (ndead): New variable.
4168         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
4169         BB argument; update callers.
4170         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
4171         (life_analysis): Do not call purge_all_dead_edges.
4172         (update_life_info): Return number of deleted insns; print statistics.
4173         (update_life_info_in_dirty_blocks): likewise.
4174         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
4175         return number of insns deleted.
4176
4177         * cse.c: Include timevar.h
4178         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
4179         iterate until stabilizes; print statistics; return number of killed
4180         insns.
4181         * Makefile.in: (cse.o): Add timevar.h dependency
4182         * rtl.h (delete_trivially_dead_insns): New.
4183         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
4184         * toplev.c (rest_of_compilation): Update callers.
4185
4186         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
4187         (try_optimize_cfg): Do not update liveness.
4188         (cleanup-cfg): Loop until try_optimize_cfg and dead code
4189         removal stabilizes; use delete_trivially_dead_insns.
4190
4191         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
4192
4193 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
4194
4195         * cppmain.c (setup_callbacks): Disable #pragma and #ident
4196         callbacks when processing assembly language.
4197
4198 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4199
4200         * pa.h (ASM_FILE_END): Define.
4201         * som.h (ASM_FILE_END): Delete.
4202
4203         * pa.c (function_arg): Don't pass floats in general registers in
4204         indirect calls if TARGET_ELF32.
4205
4206 2002-03-05  Richard Henderson  <rth@redhat.com>
4207
4208         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
4209
4210 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
4211
4212         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
4213
4214 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4215
4216         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
4217         -r command line.  Don't hide any symbols if not building
4218         shared libgcc.
4219
4220 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
4221
4222         * cfg.c (dump_flow_info): Warn about profile mismatches.
4223         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
4224         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
4225
4226 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4227
4228         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
4229         wide volatile memory by parts.
4230
4231 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4232
4233         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
4234         is NULL.
4235
4236 2002-03-05  Richard Henderson  <rth@redhat.com>
4237
4238         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
4239
4240 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
4241
4242         * toplev.c (documented_lang_options): Document more
4243         language-specific options.
4244         * doc/invoke.texi (Warning Options): Correct documentation for
4245         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
4246         * c-decl.c (c_decode_option): Use a table to handle warning options.
4247
4248 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
4249
4250         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
4251         parameter to mmix_encode_section_info.
4252         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
4253         relocatably.  Always produce ELF, not mmo if linking relocatably.
4254         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
4255         first is non-zero, don't add symbol prefix.
4256         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
4257         prototype accordingly.
4258
4259 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
4260
4261         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
4262
4263 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4264
4265         * configure.in: Increase required makeinfo version to 4.1.
4266         * configure: Regenerate.
4267
4268 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
4269
4270         * .cvsignore: Remove *.info* and genrtl*; these files are generated
4271         elsewhere now.
4272
4273 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4274
4275         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
4276         * doc/invoke.texi: Fix @math uses.
4277
4278 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
4279
4280         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
4281         removal
4282
4283 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
4284
4285         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
4286         (powerpc-*-eabisimaltivec*): Same.
4287
4288         * config/rs6000/t-ppcendian: New.
4289
4290 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4291
4292         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
4293         nonimmediate_src_operand and nonimmediate_lsrc_operand to
4294         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
4295
4296 2002-03-03  Richard Henderson  <rth@redhat.com>
4297
4298         * toplev.c (rest_of_decl_compilation): Revert last two changes.
4299
4300 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
4301
4302         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
4303         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
4304         tree.c, config/m68k/m68k.c:
4305         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
4306         REAL_ARITHMETIC blocks unconditional.  Delete some further
4307         #ifdef blocks predicated on REAL_ARITHMETIC.
4308         * flags.h, toplev.c: Delete remaining references to
4309         flag_pretend_float.
4310
4311         * doc/invoke.texi: Remove documentation of -fpretend-float.
4312         * doc/tm.texi: Describe the various REAL_* macros as provided by
4313         real.h, not by the target configuration files.
4314
4315         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
4316         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
4317         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
4318         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
4319         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
4320         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
4321         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
4322         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
4323         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
4324         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
4325         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
4326         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
4327         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
4328         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
4329         config/xtensa/xtensa.h:
4330         Do not define, undefine, or mention in comments any of
4331         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
4332         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
4333         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
4334         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
4335         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
4336         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
4337         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
4338         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
4339         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
4340
4341 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4342
4343         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
4344         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
4345         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
4346         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
4347         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
4348         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
4349         Delete.
4350         * defaults.h (BITS_PER_WORD): Define.
4351         * doc/tm.texi (BITS_PER_WORD): Document default value.
4352
4353         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
4354         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
4355         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
4356
4357 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4358
4359         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
4360         lieu of explicit sizeof/sizeof.
4361         * i386.c (override_options, ix86_init_mmx_sse_builtins,
4362         ix86_expand_builtin): Likewise.
4363         * mips.c (mips_add_gc_roots): Likewise.
4364         * mmix.c (mmix_output_condition): Likewise.
4365         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
4366         altivec_init_builtins): Likewise.
4367         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
4368         * cppexp.c (Nsuff, parse_number): Likewise.
4369         * cppinit.c (builtin_array_end): Likewise.
4370         * gcc.c (n_default_compilers, process_command): Likewise.
4371         * genpreds.c (output_predicate_decls): Likewise.
4372         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
4373         * lcm.c (N_ENTITIES): Likewise.
4374         * stor-layout.c (set_sizetype): Likewise.
4375
4376 2002-03-03  Richard Henderson  <rth@redhat.com>
4377
4378         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
4379         for types or labels.
4380
4381 2002-03-03  Richard Henderson  <rth@redhat.com>
4382
4383         * c-decl.c (start_decl): Initialized variables are not common.
4384
4385 2002-03-02  Per Bothner  <per@bothner.com>
4386
4387         * gcc.c (option_map):  Suport new --bootclasspath option.
4388         --CLASSPATH is now just an alias for --classpath.
4389
4390 2002-03-02  Richard Henderson  <rth@redhat.com>
4391
4392         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
4393         load if "internal" visibility.
4394         * doc/extend.texi: Document visibility meanings.
4395
4396 2002-03-02  Richard Henderson  <rth@redhat.com>
4397
4398         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
4399         to functions as well.
4400
4401 2002-03-02  Richard Henderson  <rth@redhat.com>
4402
4403         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
4404         (handle_visibility_attribute): Don't call assemble_visibility.
4405         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
4406         without asmspec.  Invoke assemble_alias when needed.
4407         * varasm.c (maybe_assemble_visibility): New.
4408         (assemble_start_function, assemble_variable, assemble_alias): Use it.
4409
4410 2002-03-02  Richard Henderson  <rth@redhat.com>
4411
4412         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
4413         invoke ENCODE_SECTION_INFO with first call flag.
4414
4415         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
4416         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
4417         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
4418         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
4419         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
4420         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
4421         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
4422         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
4423         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
4424         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
4425         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4426         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
4427         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
4428         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
4429         config/mcore/mcore-protos.h, config/mcore/mcore.c,
4430         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
4431         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
4432         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
4433         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
4434         config/sh/sh.h, config/sparc/sparc.h,
4435         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
4436         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
4437         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
4438         FIRST argument.  As needed, examine it and do nothing.
4439
4440         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
4441         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
4442         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
4443
4444         * config/arm/t-pe (pe.o): Add dependencies.
4445
4446 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4447
4448         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
4449         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
4450         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
4451         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
4452         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
4453         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
4454         * defaults.h (BITS_PER_UNIT): Define.
4455         * doc/tm.texi (BITS_PER_UNIT): Document default value.
4456
4457 2002-03-02  Kazu Hirata  <kazu@hxi.com>
4458
4459         * config/h8300/h8300-protos.h: Add a prototype for
4460         compute_a_shift_length.
4461         * config/h8300/h8300.c (h8300_asm_insn_count): New.
4462         (compute_a_shift_length): Likewise.
4463         (h8300_adjust_insn_length): Do not adjust insn length of shift
4464         insns.
4465         * config/h8300/h8300.md (anonymous shift patterns): Use
4466         compute_a_shift_length.
4467
4468 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4469
4470         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
4471         trunc_int_for_mode.
4472
4473         * emit-rtl.c (offset_address): Call update_temp_slot_address.
4474
4475 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4476
4477         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
4478         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
4479         * flags.h (flag_zero_initialized_in_bss): Declare.
4480         * toplev.c (flag_zero_initialized_in_bss): New flag.
4481         (lang_independent_options): Add flag_zero_initialized_in_bss.
4482         * tree.c (initializer_zerop): New function.
4483         * tree.h (initializer_zerop): Declare.
4484         * varasm.c (assemble_variable): If we can emit bss, put zero
4485         initializers in the bss section.
4486
4487 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
4488
4489         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
4490         like more than one symbol per .weak directive.
4491
4492 2002-03-01  Richard Henderson  <rth@redhat.com>
4493
4494         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
4495         adjust argument_pointer by pretend_args_size.
4496         (ia64_va_start): Adjust va_start address by -pretend_args_size.
4497
4498 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4499
4500         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
4501
4502 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
4503
4504         * toplev.c (rest_of_compilation): Delete dead jumptables before
4505         loop.
4506         * flow.c (delete_dead_jumptables): Make global.
4507         * rtl.h (delete_dead_jumptables): Declare.
4508
4509 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
4510
4511         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
4512         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
4513         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
4514
4515 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4516
4517         * config/h8300/h8300-protos.h: Fix formatting.
4518         * config/h8300/h8300.c: Likewise.
4519         * config/h8300/h8300.h: Likewise.
4520
4521 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4522
4523         * config/h8300/h8300.c (print_operand): Support 16-bit
4524         constant addresses.
4525         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
4526
4527 2002-02-28  Richard Henderson  <rth@redhat.com>
4528
4529         * expmed.c (store_bit_field): Prevent generation of CONCATs;
4530         pun complex values as integers; use gen_lowpart instead of
4531         gen_rtx_SUBREG.
4532         (extract_bit_field): Likewise.
4533
4534 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
4535             David Edelsohn  <edelsohn@gnu.org>
4536
4537         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
4538         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
4539         (SUPPORTS_WEAK): Likewise.
4540         * output.h (add_weak): Add tree param.
4541         * varasm.c (add_weak): Likewise.  Save decl.
4542         (struct weak_syms): Add decl field.
4543         (mark_weak_decls): New function.
4544         (init_varasm_once): ggc_add_root mark_weak_decls.
4545         (assemble_start_function): Use ASM_WEAKEN_DECL.
4546         (assemble_variable): Likewise.
4547         (assemble_alias): Likewise.
4548         (declare_weak): Pass decl to add_weak.
4549         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
4550         (remove_from_pending_weak_list): Declare and define for
4551         ASM_WEAKEN_DECL.
4552         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
4553         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
4554         * defaults.h (SUPPORTS_WEAK): Likewise.
4555         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
4556         .weak for code sym.  Do emit .size for descriptor sym.
4557         (ASM_DECLARE_FUNCTION_SIZE): Define.
4558         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
4559         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
4560         .lglobl unless TARGET_XCOFF.  Formatting fixes.
4561         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
4562         .weak for code sym.
4563         (HANDLE_PRAGMA_WEAK): Remove.
4564         (ASM_WEAKEN_LABEL): Remove.
4565         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
4566
4567 2002-03-01  Jason Merrill  <jason@redhat.com>
4568
4569         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
4570         (TARGET_EXPR_CLEANUP): New macro.
4571
4572 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
4573
4574         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
4575         to take ptr_extend into account as third type of extension.
4576         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
4577         fields used by SUBREG_PROMOTED_UNSIGNED_P.
4578         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
4579         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
4580         * calls.c (precompute_arguments): Use new macro.
4581         (expand_call): Ditto.
4582         * combine.c (nonzero_bits): Ditto.
4583         (record_promoted_value): Ditto.
4584         * expr.c (store_expr): Ditto.
4585         (expand_expr): Ditto.
4586         * function.c (assign_parms): Ditto.
4587
4588 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
4589
4590         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
4591         override -shared and -shared-libgcc.
4592
4593 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
4594
4595         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
4596         of "ultrasparc".
4597         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
4598         to be broken.
4599
4600 2002-02-28  Richard Henderson  <rth@redhat.com>
4601
4602         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
4603         4 cycle latency from MM producers.
4604         (ia64_internal_sched_reorder): Likewise with pipeline flush.
4605
4606 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
4607
4608         * mklibgcc.in: Don't use GNU make extension.
4609
4610 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4611
4612         * c-parse.in (STATIC): New terminal.
4613         (scspec): New non-terminal.  Update productions accordingly.
4614         (program): Remove bogus ifc / end ifc.
4615         (array_declarator): Simplify production using STATIC.
4616
4617 2002-02-28  Jim Meyering  <meyering@lucent.com>
4618
4619         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
4620         \a still means TARGET_BELL.
4621
4622 2002-02-28  Richard Henderson  <rth@redhat.com>
4623
4624         * haifa-sched.c (sched_emit_insn): New.
4625         (schedule_block): Use last_scheduled_insn to track last insn.
4626         * sched-int.h (sched_emit_insn): Prototype.
4627         * config/ia64/ia64.c (last_issued): Remove.
4628         (ia64_variable_issue): Don't set it.
4629         (nop_cycles_until): Use sched_emit_insn.
4630
4631 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
4632
4633         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
4634         extended constants.
4635
4636 2002-02-28  Kazu Hirata  <kazu@hxi.com>
4637
4638         * config/h8300/h8300.c: Fix formatting.
4639         * config/h8300/h8300.h: Likewise.
4640
4641 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4642
4643         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
4644         which may overwrite the high byte of the frame pointer.
4645
4646 2002-02-28  Bo Thorsen  <bo@suse.de>
4647
4648         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
4649         (STARTFILE_SPEC): Add 64 bit files.
4650         (ENDFILE_SPEC): Likewise.
4651
4652 2002-02-28  Jason Merrill  <jason@redhat.com>
4653
4654         * c-decl.c (finish_function): Only warn about missing return
4655         statement with -Wreturn-type.
4656
4657 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
4658
4659         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
4660
4661         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
4662         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
4663
4664 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4665
4666         * basic-block.h (BB_REACHABLE): Renumber.
4667         (BB_DIRTY, BB_NEW): New flags.
4668         (clear_bb_flags): Declare.
4669         (update_life_info_in_dirty_blocks): Declare.
4670         * cfg.c (clear_bb_flags): New function.
4671         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
4672         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
4673         reorder_insns, emit_insn_after): Mark block as dirty.
4674         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
4675         (update_life_info_in_dirty_blocks): New function.
4676         * recog.c (apply_change_group): Dirtify block.
4677
4678         * cse.c (cse_insn): Reorder emitting of jump insn to keep
4679         cfg consistent.
4680         * gcse.c (delete_null_pointer_checks): Likewise.
4681
4682         * toplev.c (dump_file_index): Move cse2 after bp,
4683         add DFI_null
4684         (dump_file_info): Similary.
4685         (rest_of_compilation): Avoid most of CFG rebuilds;
4686         do first if converision after null pointer checks, do cse2
4687         after branch prediction; avoid full liveness rebuild after
4688         initializing subregs.
4689         * invoke.texi (-d options): Document -du, renumber.
4690
4691         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
4692         (notice_new_block): Do not set BB_UPDATE_LIFE.
4693         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
4694          merge_blocks_move_successor_nojumps, merge_blocks,
4695          try_crossjump_to_edge): Likewise.
4696         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
4697         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
4698         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
4699         (merge_of_block): Do not use life_data_ok.
4700         (find_if_case_1): Do not use SET_UPDATE_LIFE.
4701         (if_convert): Use BB_DIRTY mechanizm to update life.
4702         * lcm.c (optimize_mode_switching): Update
4703         update_life_info_in_dirty_blocks
4704
4705 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4706
4707         * Makefile.in (integrate.o): Update.
4708         * c-decl.c (copy_lang_decl): Rename.
4709         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4710         * integrate.c: Include langhooks.h.
4711         (copy_decl_for_inlining): Update to use langhook.
4712         * langhooks-def.h (lhd_do_nothing_t,
4713         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
4714         (LANG_HOOKS_INITIALIZER): Update.
4715         * langhooks.c (lhd_do_nothing_t): New.
4716         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
4717         * tree.h (copy_lang_decl): Remove.
4718 objc:
4719         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4720
4721 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
4722
4723         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
4724         POST_DEC, and POST_MODIFY.
4725
4726 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4727
4728         * c-typeck.c (digest_init): Remove unused parameter; all
4729         callers changed.
4730
4731 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
4732
4733         * expmed.c (expand_shift): Correctly test for low part of a
4734         subreg.
4735
4736 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
4737
4738         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
4739         insn UIDs with insn addresses.
4740
4741 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4742
4743         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
4744         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
4745         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
4746         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
4747         gcc.c, toplev.c: Delete code implementing -traditional mode.
4748
4749         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
4750         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
4751         Document removal of -traditional mode for compilation, and
4752         remove documentation only relevant to that mode.
4753
4754         * config/nextstep.h, config/ptx4.h, config/svr4.h,
4755         config/convex/convex.h, config/d30v/d30v.h,
4756         config/i386/dgux.h, config/i386/osf1elf.h,
4757         config/i386/osfelf.h, config/i386/osfrose.h,
4758         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
4759         config/m68k/hp310.h, config/m88k/dgux.h,
4760         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
4761         config/m88k/m88k.h, config/m88k/openbsd.h,
4762         config/mips/abi64.h, config/mips/osfrose.h,
4763         config/mips/svr4-5.h, config/mips/svr4-t.h,
4764         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
4765         config/stormy16/stormy16.h: Remove all references to
4766         -traditional from target specs.  Delete all mention of the
4767         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
4768         delete a couple of commented-out definitions of
4769         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
4770         to -traditional.
4771
4772         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
4773         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
4774
4775 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4776
4777         * mklibgcc.in: Don't use \n in a line subject to
4778         interpretation by echo.
4779
4780 2002-02-27  Graham Stott  <grahams@redhat.com>
4781
4782         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
4783         Constify NAME.
4784
4785         * loop.c (prescan_loop): Handle PARALLEL.
4786
4787         * unroll.c (loop_iterations): Return 0 if the add_val for
4788         a BIV is REG.
4789
4790         * final.c (output_operand_lossage): Constify PFX_STR.
4791
4792         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
4793
4794 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4795
4796         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
4797         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
4798
4799 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
4800
4801         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4802
4803 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4804
4805         * cpplex.c (_cpp_lex_token): Handle directives in macro
4806         arguments.
4807         * cpplib.c (_cpp_handle_directive): Save and restore state
4808         if parsing macro args when entering a directive.
4809         * cppmacro.c (collect_args): No need to handle directives
4810         in macro arguments.
4811         (enter_macro_context, replace_args): Use the original macro
4812         definition in case it was redefined whilst collecting arguments.
4813 doc:
4814         * cpp.texi: Update.
4815
4816 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
4817
4818         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
4819         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
4820         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
4821         method on AIX.
4822         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
4823         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
4824         (load_toc_v4_PIC_2): Same.
4825
4826 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
4827
4828         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
4829
4830 2002-02-26  Richard Henderson  <rth@redhat.com>
4831
4832         * config/alpha/alpha.md (ashldi_se): Re-enable.
4833
4834 2002-02-26  Richard Henderson  <rth@redhat.com>
4835
4836         * config/alpha/alpha.c (alpha_encode_section_info): Examine
4837         MODULE_LOCAL_P; improve commentary.
4838
4839 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
4840
4841         * doc/cpp.texi: Clarify documentation of relationship between
4842         #line and #include.
4843
4844 2002-02-26  Kazu Hirata  <kazu@hxi.com>
4845
4846         * config/h8300/h8300-protos.h: Update the prototype for
4847         compute_logical_op_length.  Add the prototype for
4848         compute_logical_op_cc.
4849         * config/h8300/h8300.c (compute_logical_op_length): Figure out
4850         code from operands.
4851         (compute_logical_op_cc): New.
4852         * config/h8300/h8300.md: Combine all the logical op patterns
4853         in HImode and SImode.  Use compute_logical_op_cc.
4854
4855 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
4856
4857         * config/i386/i386.c (print_operand): Don't append ATT-style
4858         length suffixs to x87 opcodes when in Intel mode.
4859
4860 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
4861
4862         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
4863         (init_emit_once): Update calls.
4864         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
4865         (init_syntax_once): Prototype.
4866
4867 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4868
4869         * pa-linux.h (LIB_SPEC): Update definition.
4870         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
4871
4872 2002-02-26  Richard Henderson  <rth@redhat.com>
4873
4874         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
4875         if we emitted a stop bit.
4876
4877 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4878
4879         * configure.in (libgcc_visibility): Substitute.
4880         * configure: Rebuilt.
4881         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
4882         defined symbols .hidden.
4883
4884 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4885
4886         * attribs.c (c_common_attribute_table): Add visibility.
4887         (handle_visibility_attribute): New function.
4888         * varasm.c (assemble_visibility): New function.
4889         * output.h (assemble_visibility): Add prototype.
4890         * tree.h (MODULE_LOCAL_P): Define.
4891         * crtstuff.c (__dso_handle): Use visibility attribute.
4892         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
4893         for MODULE_LOCAL_P symbols too.
4894         * config/ia64/ia64.c (ia64_encode_section_info): Handle
4895         MODULE_LOCAL_P symbols the same way as local symbols.
4896         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
4897         into .sdata/.sbss by the user.
4898         * doc/extend.texi (Function Attributes): Document visibility
4899         attribute.
4900
4901 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4902
4903         PR debug/5770
4904         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
4905         STRING_CST initializer spanning the whole variable without
4906         embedded zeros.
4907         If expand_expr returned MEM, don't use it.
4908
4909 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
4910
4911         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
4912         generate a die for the lexical block.
4913
4914 2002-02-26  Kazu Hirata  <kazu@hxi.com>
4915
4916         * config/h8300/h8300-protos.h: Add a prototype for
4917         compute_logical_op_length.
4918         * config/h8300/h8300.c (compute_logical_op_length): New.
4919         * config/h8300/h8300.md (anonymous logical patterns): Use
4920         compute_logical_op_length for length.
4921
4922 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4923
4924         * dwarf2out.c (modified_type_die): Do not call type_main_variant
4925         for vectors.
4926         (gen_type_die): Same.
4927
4928         * attribs.c (handle_vector_size_attribute): Set debug information.
4929
4930 2002-02-26  Daniel Egger  <degger@fhm.edu>
4931
4932         * config/rs6000/rs6000.md: Swap define_insn attributes to
4933         fix incorrect generation of merge high instructions instead
4934         of merge low.
4935
4936 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4937
4938         * c-typeck.c (really_start_incremental_init): Use
4939         bitsize_zero_node for vectors.
4940
4941 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4942
4943         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
4944         ("*set_vrsave_internal"): Same.
4945
4946 2002-02-25  Richard Henderson  <rth@redhat.com>
4947
4948         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
4949         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
4950
4951 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
4952
4953         PR target/5755
4954         * config/i386/i386.c (ix86_return_pops_args): Only pop
4955         fake structure return argument if it was passed on the stack.
4956
4957 2002-02-25  Jason Merrill  <jason@redhat.com>
4958
4959         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
4960         RESULT_DECL.
4961
4962 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
4963
4964         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
4965         link with shared_name only.
4966         * doc/invoke.texi (Link Options): Document new behavior.
4967
4968 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
4969
4970         * c-typeck.c (push_init_level): Handle vectors.
4971
4972 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
4973
4974         * config/sparc/sparc.c (const64_high_operand): Zero-extend
4975         operands of SPARC_SETHI_P.
4976         (input_operand): Likewise.
4977         (sparc_emit_set_const32): Likewise.
4978         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
4979         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
4980         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
4981         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
4982         (movdi_insn_sp64_vis): Likewise.
4983         (movdi split, movdf split): Use SETHI32.
4984         * doc/md.texi: Document SPARC constraints L, M and N.
4985
4986 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
4987
4988         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
4989         ("*set_vrsave_internal"): use mfspr for Darwin.
4990
4991         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
4992         gen_get_vrsave_internal.
4993
4994 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4995
4996         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
4997
4998 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4999
5000         * cpplex.c (cpp_interpret_charconst): Get signedness or
5001         otherwise of wide character constants correct.
5002         * cppexp.c (lex): Get signedness of wide charconsts correct.
5003
5004 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5005
5006         * optabs.c (widen_operand): Only call convert_modes for
5007         promoted SUBREG if signedness matches.
5008         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
5009
5010 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5011
5012         * cpplib.c (glue_header_name): Use local buffer to build up
5013         header name.
5014
5015 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5016
5017         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
5018
5019 2002-02-23  Kazu Hirata  <kazu@hxi.com>
5020
5021         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
5022         H8/300[HS] separately.
5023         * config/h8300/h8300.md: Remove the early clobber constraint
5024         from bit field patterns.
5025
5026 2002-02-23  Kazu Hirata  <kazu@hxi.com>
5027
5028         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
5029         register_operand.
5030         (mulhisi3): Likewise.
5031         (umulqisi3): Likewise.
5032         (umulhisi3): Likewise.
5033
5034 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5035
5036         * cppinit.c (output_deps): Correct test for stdout output.
5037         (init_dependency_output): Cure warning.
5038
5039 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5040
5041         * expr.c (store_expr): When converting expression to promoted
5042         equivalent type, allow using SUBREG_REG of TARGET as the target
5043         of the expansion of EXP.
5044         * loop.c (basic_induction_var, case SUBREG): Always look inside.
5045         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
5046         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
5047         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
5048         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
5049
5050 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
5051
5052         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
5053         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
5054         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
5055
5056 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
5057
5058         PR optimization/5747
5059         * loop.c (scan_loop): Update reg info if move_movables created new
5060         pseudos.
5061
5062 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
5063
5064         * gcc.c (init_gcc_spec): Revert last change.
5065
5066 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
5067
5068         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
5069         gpc_reg_operand constraint.
5070
5071 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
5072
5073         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
5074         Simplify comparison of `low'.
5075         (add_operand): Fix formatting.
5076         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
5077         (mask_operand): Disallow mask to wrap in 64-bit mode.
5078         (rs6000_stack_info): Remove redundant test setting push_p.
5079         (output_toc): Fix formatting.
5080         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
5081         cc_reg_not_cr0_operand constraint.
5082         (booldi3, boolcdi3 splitters): Same.
5083
5084 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
5085
5086         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
5087
5088 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
5089
5090         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
5091         gcc invoked with -shared-libgcc.
5092
5093 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
5094
5095         PR c++/5748
5096         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
5097         decl if any of elements was TREE_USED.
5098
5099 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
5100
5101         * config/sparc/sol2.h: Don't include sys/mman.h.
5102         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
5103         (arith_4096_operand): Don't throw high bits away.
5104         (const64_operand): Take sign extension of CONST_INTs into account.
5105         (const64_high_operand, sparc_emit_set_const32): Likewise.
5106         (GEN_HIGHINT64): Likewise.
5107         (sparc_emit_set_const64_quick1): Likewise.
5108         (const64_is_2insns): Likewise.
5109         (print_operand): Use trunc_int_for_mode for sign extension.
5110         * config/sparc/sparc.h (SMALL_INT32): Likewise.
5111         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
5112         chars.  Assume CONST_INT is already properly sign-extended.
5113         (movdi split): Sign-extend each SImode part.
5114         (andsi3 split): Don't mask high bits off, so that result
5115         remains properly sign-extend.
5116         (iorsi3 split): Likewise.
5117         (xorsi3 split): Likewise.
5118
5119 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
5120
5121         * fold-const.c (fold): Fix typo in comments.
5122
5123 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
5124
5125         * Makefile.in (langhooks.o): Update dependencies.
5126
5127 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
5128
5129         * langhooks.c: Include flags.h.
5130
5131 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
5132
5133         * testsuite/gcc.dg/attr-alwaysinline.c: New.
5134
5135         * c-common.c (c_common_post_options): Set inline trees by
5136         default.
5137
5138         * doc/extend.texi (Function Attributes): Document always_inline
5139         attribute.
5140         Update documentation about inlining when not optimizing.
5141
5142         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
5143
5144         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
5145         unless DECL_ALWAYS_INLINE.
5146
5147         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
5148         unless DECL_ALWAYS_INLINE.
5149         (c_disregard_inline_limits): Disregard if always_inline set.
5150
5151         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
5152         Disregard if always_inline set.
5153         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
5154         unless DECL_ALWAYS_INLINE.
5155
5156         * attribs.c (handle_always_inline_attribute): New.
5157         (c_common_attribute_table): Add always_inline.
5158
5159         * config/rs6000/altivec.h: Add prototypes for builtins
5160         requiring the always_inline attribute.
5161
5162 2002-02-21  Eric Christopher  <echristo@redhat.com>
5163
5164         * expmed.c (store_bit_field): Try to simplify the subreg
5165         before generating a new one when when the mode size of
5166         value is less than maxmode.
5167
5168 2002-02-21  Richard Henderson  <rth@redhat.com>
5169
5170         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
5171         than gen_rtx_PLUS to form the sum.
5172         * explow.c (force_reg): Rearrange to not allocate new pseudo
5173         when force_operand returns a register.
5174         * expr.c (expand_assignment): Allow offset_rtx expansion to
5175         return a sum.  Do not force addresses into registers.
5176         (expand_expr): Likewise.
5177         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
5178         to canonicalize arithmetic that didn't simpify.
5179         (simplify_plus_minus): New argument force; update
5180         all callers.  Don't split CONST unless we can do something with it,
5181         and wouldn't lose the constness of the operands.
5182
5183         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
5184         that we generated earlier.
5185
5186 2002-02-21  Tom Tromey  <tromey@redhat.com>
5187
5188         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5189         (output_line_info): Use constant `1', with a long explanatory
5190         comment.
5191         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
5192
5193 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
5194
5195         * jump.c (redirect_jump): If old label has no UID, don't try to
5196         delete it.
5197
5198 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
5199
5200         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
5201         If input is constant, do shifts at compile time.
5202
5203 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5204
5205         * doc/extend.texi: Fix some more overfull hboxes.
5206
5207 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5208
5209         PR optimization/4994
5210         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
5211         register moves.
5212
5213 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5214
5215         PR c++/4574
5216         * expr.h (expand_and): Add mode argument.
5217         * expmed.c (expand_and): Add mode argument.
5218         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
5219         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
5220         * except.c (expand_builtin_extract_return_addr): Likewise.
5221         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5222         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
5223         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
5224         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
5225         * config/c4x/c4x.md: Use GEN_INT (x) instead of
5226         gen_rtx (CONST_INT, VOIDmode, x).
5227
5228 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5229
5230         PR c/4697:
5231         * stmt.c (warn_if_unused_value): Move side effects test once more.
5232
5233 2002-02-20  Torbjorn Granlund  <tege@swox.com>
5234
5235         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
5236         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
5237
5238 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
5239
5240         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
5241         SUBREG or ZERO_EXTEND.
5242
5243 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
5244
5245         * sh.h (current_function_anonymous_args): Remove.
5246         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
5247         of current_function_varargs and current_function_stdarg is set.
5248         * sh.c (sh_expand_prologue): Check current_function_varargs /
5249         current_function_stdarg / TARGET_SH5 instead of
5250         current_function_anonymous_args.
5251
5252         * sh64.h (TARGET_VERSION): Define.
5253
5254 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
5255
5256         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
5257         VRSAVE_REGNO on TARGET_ALTIVEC.
5258
5259 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
5260
5261         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
5262         bits of SImode const_int.
5263         (includes_rshift_p): Likewise.
5264         (print_operand): Call mask_operand and mask64_operand with correct
5265         mode.
5266         (rs6000_output_function_epilogue): Pad traceback table to word.
5267         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
5268         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
5269         mask64_operand with correct mode.
5270         (FUNCTION_ARG_REGNO_P): Correct parentheses.
5271
5272 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5273
5274         PR debug/4461
5275         * varasm.c (get_pool_constant_mark): New.
5276         * rtl.h (get_pool_constant_mark): Add prototype.
5277         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
5278         be represented if it has not been output.
5279
5280 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
5281
5282         * combine.c (do_SUBST): Sanity check substitutions of
5283         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
5284         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
5285         CONST_INT into its operand.
5286         (known_cond): Likewise, for ZERO_EXTEND.
5287         * simplify-rtx.c (simplify_unary_operation): Fix condition to
5288         allow for simplification of wide modes.  Reject CONST_INTs in
5289         ZERO_EXTEND when their actual mode is not given.
5290
5291 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
5292
5293         * c-decl.c (pushdecl): If no global declaration is found for an
5294         extern declaration in block scope, try a limbo one.
5295
5296 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5297
5298         PR c++/4401
5299         * c-common.c (pointer_int_sum): Moved from...
5300         * c-typeck.c (pointer_int_sum): ...here.
5301         * c-common.h (pointer_int_sum): Add prototype.
5302
5303 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5304
5305         PR c++/5713
5306         * c-decl.c (duplicate_decls): Return 0 if issued error about
5307         redeclaration.
5308
5309 2002-02-20  Roger Sayle  <roger@eyesopen.com>
5310             Jakub Jelinek  <jakub@redhat.com>
5311
5312         PR c/4389
5313         * tree.c (host_integerp): Ensure that the constant integer is
5314         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
5315         when pos is zero or non-zero respectively.  Clarify comment.
5316         * c-format.c (check_format_info_recurse): Fix host_integerp
5317         usage; the pos argument should be zero when assigning to a
5318         signed HOST_WIDE_INT.
5319
5320 2002-02-20  Richard Henderson  <rth@redhat.com>
5321
5322         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
5323         of the operand, rather than assuming TImode.
5324         (ix86_expand_binop_builtin): Cope with commutative patterns
5325         using nonimmediate_operand for both operands.
5326         (ix86_expand_timode_binop_builtin): Likewise.
5327         (ix86_expand_store_builtin): Validate operand 1.
5328         (ix86_expand_unop1_builtin): Likewise.
5329
5330 2002-02-20  Philip Blundell  <philb@gnu.org>
5331
5332         PR 5705
5333         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
5334
5335 2002-02-20  Richard Henderson  <rth@redhat.com>
5336
5337         PR c/5615
5338         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
5339
5340 2002-02-20  Tom Tromey  <tromey@redhat.com>
5341
5342         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5343         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5344         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5345         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5346         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
5347         unconditionally.
5348
5349 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
5350
5351         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
5352           for (const_int 0) in X not just INTVAL.
5353
5354 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5355
5356         * doc/extend.texi: Avoid or reduce overfull hboxes.
5357
5358 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
5359
5360         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
5361         operations if the field does not start at a mode boundary.
5362
5363 2001-02-20      Joel Sherrill <joel@OARcorp.com>
5364
5365         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
5366         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
5367         Also done for -Acpu and -Amachine.
5368
5369 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5370
5371         * cppinit.c (init_dependency_output): Take deps output file
5372         from -o if none given with -MF.  Suppress normal output.
5373         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
5374         * doc/cpp.texi, doc/invoke.texi: Update.
5375
5376 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
5377
5378         * toplev.c (output_quoted_string): Write unprintable
5379         characters with octal escapes.
5380
5381 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
5382
5383         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
5384         really_call_used[VRSAVE_REGNO] if not Altivec.
5385
5386 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
5387
5388         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
5389         MODE_MASK.
5390         (constant_pool_expr_1): Fix formatting.
5391         (rs6000_legitimize_reload_address): Likewise.
5392
5393 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5394
5395         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
5396         now that we have one.
5397
5398 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
5399
5400         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
5401         end of first block of bitfields (which was only seven bits);
5402         rename dummy to unused_1; remove comment which is no longer true.
5403
5404 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
5405
5406         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
5407
5408 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
5409
5410         PR 5399
5411         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
5412         if generating PIC.
5413
5414         PR 5054
5415         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
5416         arm_is_longcall_p rather than inspecting call-type cookie
5417         directly.
5418         (call_value_insn) [TARGET_THUMB]: Likewise.
5419
5420 2002-02-19  Graham Stott  <grahams@redhat.com>
5421
5422         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
5423
5424 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
5425
5426         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
5427         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
5428         (FP_SAVE_INLINE): Delete.
5429
5430         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
5431         * config/rs6000/eabi.asm: Remove ABI save restore routines.
5432         * config/rs6000/t-ppccomm: Build crtsavres.o.
5433         * config/rs6000/crtsavres.asm: New file.
5434
5435 2002-02-19  Philip Blundell  <philb@gnu.org>
5436
5437         * config/arm/arm.c (use_return_insn): Don't reject interrupt
5438         functions.
5439         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
5440         (output_return_instruction): Allow interrupt functions to return with
5441         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
5442         (arm_expand_prologue): Subtract 4 before stacking LR in an
5443         interrupt function.
5444
5445 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
5446
5447         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
5448         decl, not just FUNCTION_DECL.
5449         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
5450         (arm_assemble_integer): Likewise.
5451         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
5452         marked local.
5453
5454 2002-02-19  matthew green  <mrg@eterna.com.au>
5455
5456         * config.gcc (sparc-*-netbsdelf*): Enable target.
5457         (sparc64-*-netbsd*): New target.
5458         * config/sparc/netbsd-elf.h: New file.
5459         * config/sparc/t-netbsd64: New file.
5460
5461 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
5462
5463         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
5464
5465 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
5466
5467         * doc/invoke.texi: explicitly list the style guidelines that
5468         -Weffc++ checks for.
5469
5470 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
5471
5472         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
5473
5474 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5475
5476         PR other/5718
5477         * gcc.c (cpp_unique_options): Treat -o as indicating object file
5478         only if not -E.  If -E, pass -o through to the preprocessor.
5479
5480 2002-02-19  Kazu Hirata  <kazu@hxi.com>
5481
5482         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
5483         register number with an appropriate macro.
5484
5485 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5486
5487         * doc/rtl.texi (Constants): Close @code tag.
5488
5489 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
5490
5491         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
5492         ("mmx_uavgv4hi3"): Same.
5493         ("pmulhrwv4hi3"): Same.
5494
5495         * tree-inline.c (walk_tree): Handle vectors.
5496
5497         * c-common.c (constant_expression_warning): Handle vectors.
5498         (overflow_warning): Same.
5499
5500         * sched-deps.c (sched_analyze_2): Handle vectors.
5501
5502         * rtlanal.c (rtx_unstable_p): Handle vectors.
5503         (rtx_varies_p): Same.
5504         (count_occurrences): Same.
5505         (regs_set_between_p): Same.
5506         (modified_between_p): Same.
5507         (modified_in_p): Same.
5508         (volatile_insn_p): Same.
5509         (volatile_refs_p): Same.
5510         (side_effects_p): Same.
5511         (may_trap_p): Same.
5512         (inequality_comparisons_p): Same.
5513         (replace_regs): Same.
5514         (computed_jump_p_1): Same.
5515
5516         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
5517         argument.
5518         (inner_mode_array): New.
5519         (copy_rtx): Handle vectors.
5520         (copy_most_rtx): Same.
5521         (rtx_equal_p): Same.
5522         (get_mode_alignment): Adjust for vectors.
5523
5524         * resource.c (mark_referenced_resources): Handle vectors.
5525         (mark_set_resources): Same.
5526
5527         * reload1.c (eliminate_regs): Handle vectors.
5528         (elimination_effects): Same.
5529         (scan_paradoxical_subregs): Same.
5530
5531         * reload.c (subst_reg_equivs): Handle vectors.
5532
5533         * regrename.c (scan_rtx): Handle vectors.
5534
5535         * regclass.c (reg_scan_mark_refs): Handle vectors.
5536
5537         * recog.c (find_single_use_1): Handle vectors.
5538
5539         * local-alloc.c (equiv_init_varies_p): Handle vectors.
5540         (contains_replace_regs): Same.
5541         (memref_referenced_p): Same.
5542
5543         * integrate.c (copy_rtx_and_substitute): Handle vectors.
5544         (subst_constants): Same.
5545
5546         * genattrtab.c (attr_copy_rtx): Handle vectors.
5547         (encode_units_mask): Same.
5548         (clear_struct_flag): Same.
5549         (count_sub_rtxs): Same.
5550
5551         * gcse.c (want_to_gcse_p): Handle vectors.
5552         (oprs_unchanged_p): Same.
5553         (hash_expr_1): Same.
5554         (oprs_not_set_p): Same.
5555         (expr_killed_p): Same.
5556         (compute_transp): Same.
5557         (store_ops_ok): Same.
5558
5559         * function.c (purge_addressof_1): Do not allow paradoxical subregs
5560         of vectors.
5561         (fixup_var_refs_1): Same.
5562         (instantiate_virtual_regs_1): Same.
5563
5564         * fold-const.c (operand_equal_p): Handle vectors.
5565         (fold): Same.
5566         (rtl_expr_nonnegative_p): Same.
5567
5568         * flow.c (mark_used_regs): Handle vectors.
5569
5570         * df.c (df_uses_record): Handle vectors.
5571
5572         * cselib.c (cselib_subst_to_values): Handle vectors.
5573         (cselib_mem_conflict_p): Same.
5574         (hash_rtx): Same.
5575
5576         * cse.c (canon_reg): Handle vectors.
5577         (fold_rt): Same.
5578         (cse_process_notes): Same.
5579         (count_reg_usage): Same.
5580         (canon_hash): Same.
5581
5582         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
5583
5584         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
5585
5586         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
5587         (gen_rtx): Handle CONST_VECTOR.
5588         (gen_const_vector_0): New.
5589         (copy_rtx_if_shared): CONST_VECTORs can be shared.
5590         (reset_used_flags): Same.
5591         (copy_insn_1): Same.
5592         (initializer_constant_valid_p): Handle VECTOR_CST.
5593
5594         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
5595
5596         * doc/rtl.texi (Constants): Document const_vector.
5597         (CONST0_RTX): Update for vectors.
5598         (RTL sharing): Same.
5599
5600         * print-tree.c (print_node): Add case for VECTOR_CST.
5601
5602         * tree.h (TREE_VECTOR_CST_ELTS): New.
5603         (struct tree_vector): New.
5604         (union tree_node): Add vector node.
5605         (build_vector): Add prototype.
5606
5607         * tree.def (VECTOR_CST): New.
5608
5609         * tree.c (build_vector): New.
5610
5611         * expmed.c (make_tree): Handle CONST_VECTOR.
5612
5613         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
5614         (CONST_VECTOR_ELT): New.
5615         (CONST_VECTOR_NUNITS): New.
5616
5617         * machmode.h (GET_MODE_INNER): New.
5618         (DEF_MACHMODE): Accept 8th arg.
5619
5620         * machmode.def: Add 8th argument for vector inner mode.
5621         Add inner vector modes for vectors.
5622
5623         * rtl.def (VEC_CONST): Remove.
5624         (CONST_VECTOR): New.
5625
5626         * expr.c (clear_storage): Allow vectors.
5627         (is_zeros_p): Handle VECTOR_CST.
5628
5629         * varasm.c (output_constant_pool): Handle vectors.
5630         (rtx_const): Add veclo and vechi fields.
5631         (kind): Add RTX_VECTOR.
5632         (decode_rtx_const): Add case for vector.
5633
5634         * config/rs6000/rs6000-protos.h: Add zero_constant.
5635
5636         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
5637         constants.  Force easy vector constants into memory.
5638         (easy_vector_constant): New.
5639         (emit_easy_vector_constant): New.
5640         (rs6000_legitimize_reload_address): Do not generate bad reloads on
5641         darwin.
5642
5643         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
5644         instruction does.
5645         ("altivec_lvxl"): Same.
5646         (altivec_lvebx): Same.
5647         (altivec_lvehx): Same.
5648         (altivec_lvewx): Same.
5649         ("*movv4si_const0"): New.
5650         ("*movv4sf_const0"): New.
5651         ("*movv8hi_const0"): New.
5652         ("*movv16qi_const0"): New.
5653
5654 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5655
5656         * config/h8300/h8300.c (notice_update_cc): Use
5657         cc_status.value2.
5658
5659 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5660
5661         * config/h8300/h8300.md (divmod patterns): Change the
5662         constraints for operands[1] to register_operand.
5663
5664 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5665
5666         * config/h8300/h8300-protos.h: Remove the prototype for
5667         p_operand.
5668         * config/h8300/h8300.c (p_operand): Remove.
5669         * config/h8300/h8300.md: Replace p_operand with
5670         const_int_operand.
5671
5672 2002-02-18 Philip Blundell <pb@nexus.co.uk>
5673
5674         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
5675         comment.
5676         (output_return_instruction): Allow use of LDR to unstack
5677         return addresss even for interrupt handlers or when
5678         interworking.  If compiling for ARMv5, use interworking-safe
5679         return instructions by default.  Remove duplicated code and
5680         lengthy "strcat" sequences.
5681
5682 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5683
5684         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
5685         (LINK_EH_SPEC): Define.
5686         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
5687
5688 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5689
5690         * config/s390/s390.c (s390_emit_prologue): Do not set the
5691         frame_related flag for call-clobbered registers.
5692
5693 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
5694
5695         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
5696         (construct_container): Fix handling of SSE operands.
5697         (ix86_expand_builtin): Fix handling of 64bit pointers.
5698         (mmx_maskmovq_rex): New pattern.
5699
5700 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
5701
5702         * regrename.c (kill_set_value): Handle subregs properly.
5703
5704 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
5705
5706         * objc/objc-act.c (handle_impent): Remove leading '*'
5707         from objc_class_name.
5708
5709 2002-02-17  Richard Henderson  <rth@redhat.com>
5710
5711         * config/alpha/alpha.c (some_small_symbolic_operand,
5712         some_small_symbolic_operand_1, split_small_symbolic_operand,
5713         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
5714         Handle small SYMBOL_REFs anywhere, not just inside memories.
5715         * config/alpha/alpha-protos.h: Update.
5716         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5717         * config/alpha/alpha.md (small symbolic operand splitter): Update.
5718
5719 2002-02-17  Roland McGrath  <roland@frob.com>
5720
5721         * config.gcc (powerpc-*-gnu-gnualtivec*,
5722         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
5723         * config/rs6000/gnu.h: New file.
5724         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
5725         Grok "gnu" in rs6000_abi_name.
5726         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
5727         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
5728         Grok -mcall-gnu analogous to -mcall-linux et al.
5729         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5730         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
5731         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
5732
5733 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
5734
5735         PR c/3444:
5736         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
5737         shortening.
5738
5739 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5740
5741         * config/cris/cris.h: Undefine STARTFILE_SPEC and
5742         ENDFILE_SPEC before (re)defining them.
5743
5744 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5745
5746         * config/h8300/h8300.c: Fix formatting.
5747         * config/h8300/h8300.h: Likewise.
5748
5749 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5750
5751         * doc/tm.texi: Explain why empty strings should not be
5752         marked for translation.
5753
5754 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5755
5756         * final.c (output_operand_lossage): Changed to accept
5757         printf style arguments. Change calls where necessary.
5758         * output.h (output_operand_lossage): Change declaration
5759         accordingly. Update copyright.
5760         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
5761         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
5762         Update copyright date where necessary.
5763
5764         * config/i386/i386.c (print_operand): Likewise. Remove use of
5765         sprintf.
5766
5767         * config/cris/cris.c (cris_operand_lossage): Likewise.
5768         Rename parameter so that exgettext recognizes it as
5769         translatable message.
5770         (LOSE_AND_RETURN): Rename parameter to msgid.
5771
5772 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5773
5774         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
5775         hard coded register number with an appropriate macro.
5776         (HARD_REGNO_MODE_OK): Likewise.
5777         (ARG_POINTER_REGNUM): Likewise.
5778         (STATIC_CHAIN_REGNUM): Likewise.
5779         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5780         * config/h8300/h8300.md (define_constants): Define more
5781         register numbers.
5782
5783 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5784
5785         * config/i386/i386.h: Don't mark empty strings for translation.
5786
5787 2002-02-16  H.J. Lu <hjl@gnu.org>
5788
5789         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
5790
5791 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
5792
5793         * cppinit.c (merge_include_chains): Check for brack being
5794         NULL before attempting to merge it with qtail.
5795
5796 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
5797
5798         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
5799         DBX_DEBUG.
5800
5801 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5802
5803         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
5804
5805 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5806
5807         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
5808         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
5809         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
5810
5811 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5812
5813         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
5814         now only if !TARGET_FIX.
5815         (*movsi_nt_vms_fix): New pattern.
5816
5817 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
5818
5819         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
5820         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
5821         (alpha_sa_mask, alpha_sa_size): Reflect above change.
5822         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
5823         (alpha_start_function, alpha_expand_epilogue): Likewise.
5824         (unicosmk_gen_dsib): Likewise.
5825
5826 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5827
5828         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
5829
5830 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
5831
5832         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
5833         check_and_change_labels, s390_final_chunkify): Delete.
5834         (s390_split_branches, s390_chunkify_pool): New functions.
5835         (s390_function_prologue): Call them.
5836
5837         * config/s390/s390.h (S390_REL_MAX): Delete.
5838         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
5839
5840         * config/s390/s390.md (cjump, icjump, jump): Fix length
5841         attribute calculation.
5842
5843
5844 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
5845
5846         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
5847         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
5848
5849 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5850
5851         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
5852         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
5853         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
5854
5855 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
5856
5857         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
5858
5859 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
5860
5861         * reload.c (find_dummy_reload): Check that an output register
5862         is valid for its mode.
5863
5864 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
5865
5866         * combine.c (known_cond): After replacing the REG of a SUBREG, try
5867         to simplify it.
5868
5869         * function.c (assign_parms): Demote promoted argument passed by
5870         transparent reference.
5871
5872 2001-02-14      Joel Sherrill <joel@OARcorp.com>
5873
5874         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
5875         -Acpu() and -Amachine() to eliminate warnings.
5876
5877 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
5878
5879         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
5880
5881 2002-02-14  Kazu Hirata  <kazu@hxi.com>
5882
5883         * config/h8300/h8300-protos.h: Update the prototype for
5884         const_costs.
5885         * config/h8300/h8300.c (const_costs): Treat SET as a little
5886         more expensive operation.
5887         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
5888         reference to const_costs.
5889
5890 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
5891
5892         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
5893
5894 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
5895
5896         PR c/5503:
5897         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
5898         use arguments from newtype.
5899
5900 2002-02-13  Eric Christopher  <echristo@redhat.com>
5901
5902         * config/mips/mips.c (override_options): Add check for march/mipsX
5903         on the same command line. Fix error message in cpu processing.
5904         Remove architecture and ISA checks.
5905
5906 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
5907
5908         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
5909
5910         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
5911
5912 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
5913
5914         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
5915         alternatives.
5916         ("*movv8hi_internal1"): Same.
5917         ("*movv16qi_internal1"): Same.
5918         ("*movv4sf_internal1"): Same.
5919
5920         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
5921         not push_reload for altivec modes.
5922
5923 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
5924
5925         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
5926         all RTEMS targets including removal of #includes from config/*/rtems*.h
5927         file and adding them to tm_file setting. Added xm_defines=POSIX to
5928         many targets.
5929         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
5930         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
5931         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
5932         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
5933         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
5934         config/m68k/rtemself.h: Ditto.
5935         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
5936         config/mips/rtems64.h: Ditto.
5937         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
5938         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
5939         Ditto.
5940         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
5941         config/sparc/rtemself.h: Ditto.
5942         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
5943         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
5944         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
5945         more like arm-elf.
5946         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
5947         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
5948         target made more similar to i386-elf.
5949         * config/i386/t-rtems-i386: Added soft float support and multilibs.
5950         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
5951         be similar to config/m68k/t-m68kelf.
5952         * gthr-rtems.h: Encapsulate with extern "C" for C++.
5953
5954 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
5955
5956         * regmove.c (kill_value): Handle subregs.
5957
5958 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
5959
5960         * i386.md (mul patterns): Allow memory operand to be first;
5961         add expanders where needed; fix constraints.
5962         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
5963         Allow memory operand to be the first.
5964
5965         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
5966         operands.
5967
5968 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
5969
5970         PR c/5681:
5971         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
5972         GET_MODE (x).
5973
5974 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
5975
5976         PR optimization/5547:
5977         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
5978         all valid IA-32 address modes involving non-scaled %ebx and
5979         GOT/GOTOFF as displacement.
5980
5981 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
5982
5983         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
5984         after emitting ltorg insns.
5985
5986         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
5987         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
5988         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
5989         *abssf2): Fix "op_type" attribute.
5990
5991 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
5992
5993         * mkconfig.sh: Avoid using a subshell redirect.
5994         ($output.T): Change to $(output)T.
5995         (ENABLE_NLS): Remove unneeded undef.
5996
5997         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
5998         * config/alpha/x-vms (libsubdir): Define.
5999
6000         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
6001         register frame procedures. Optimize retrieving context.
6002
6003         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
6004         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
6005         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
6006
6007 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6008
6009         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
6010         Make same change as for find_base_value.
6011
6012 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6013
6014         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
6015         of QImode and SImode.
6016
6017 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6018
6019         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
6020         length computation of movsi.
6021         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
6022
6023 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6024
6025         * config/h8300/h8300.md (subqi3): Tighten the predicate for
6026         operands[2] to register_operand.
6027
6028 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
6029
6030         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
6031
6032 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
6033
6034         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
6035         for altivec_lvx* and altivec_stvx*.
6036         ("*movv4si_internal"): Add constraint for loading from GPRs.
6037         ("*movv8hi_internal1"): Same.
6038         ("*movv16qi_internal1"): Same.
6039         ("*movv4sf_internal1"): Same.
6040
6041         * config/rs6000/rs6000.c (altivec_register_operand): New.
6042
6043         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
6044         altivec_register_operand.
6045
6046 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
6047
6048         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
6049         handle SYMBOL_REF.
6050
6051 2002-02-13  Stan Shebs  <shebs@apple.com>
6052
6053         * c-typeck.c (digest_init): Handle vectors.
6054         (really_start_incremental_init): Same.
6055         (pop_init_level): Same.
6056         (process_init_element): Same.
6057
6058         * varasm.c (output_constant): Same.
6059
6060         * expr.c (clear_storage): Same.
6061         (store_constructor): Same.
6062
6063 2002-02-12  Eric Christopher  <echristo@redhat.com>
6064
6065         * explow.c (hard_function_value): Add comment explaining
6066         signed/unsigned comparison.
6067
6068 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
6069
6070         * jump.c (never_reached_warning): Add finish argument.
6071         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
6072         real insn after end.
6073         * rtl.h (never_reached_warning): Adjust prototype.
6074         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
6075         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
6076         never_reached_warning.
6077
6078 2002-02-12  Graham Stott  <grahams@redhat.com>
6079
6080         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
6081
6082 2002-02-12  Kazu Hirata  <kazu@hxi.com>
6083
6084         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
6085         logical shifts on H8/300.
6086         (shift_alg_si): Improve several shifts on H8/300.
6087         (get_shift_alg): Likewise.
6088
6089 2002-02-12  Graham Stott  <grahams@redhat.com>
6090
6091         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
6092
6093 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6094
6095         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
6096         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
6097
6098 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
6099
6100         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
6101         non-CONST_INT through default_assemble_integer.
6102         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
6103         <case 8>: Abort for CONST_DOUBLE.
6104
6105 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6106
6107         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
6108         is specified.
6109         * config/pa/pa-linux.h (LIB_SPEC): Delete.
6110         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
6111
6112 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
6113
6114         * config/stormy16/stormy16.md (zero_extendqihi2): New.
6115
6116 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
6117
6118         * regrename.c (regrename_optimize): Don't accept a
6119         part-clobbered register if the replaced register is not part
6120         clobbered.
6121
6122         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
6123         take padding into account when computing the argument value.
6124
6125         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
6126
6127         * combine.c (try_combine): Apply substitutions in
6128         CALL_INSN_FUNCTION_USAGE too.
6129
6130 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
6131
6132         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
6133         __builtin_altivec_abs*.
6134         (bdesc_abs): New.
6135
6136         * config/rs6000/rs6000.h (rs6000_builtins): Add
6137         ALTIVEC_BUILTIN_ABS*.
6138
6139         * config/rs6000/altivec.h: Use const char for builtins expecting
6140         literals.
6141         (vec_abs): New versions for C and C++.
6142         (vec_abss): Same.
6143
6144 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6145
6146         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
6147         using Pmode.
6148
6149 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6150
6151         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
6152         constant definition from h8300.md.
6153         (FRAME_POINTER_REGNUM): Likewise.
6154         * config/h8300/h8300.md (define_constants): Add FP_REG.
6155
6156 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6157
6158         * config/h8300/h8300.c (print_operand): Remove redundant code.
6159
6160 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6161
6162         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
6163         * config/h8300/h8300.c (byte_reg): Make it static.
6164
6165 2002-02-10  Richard Henderson  <rth@redhat.com>
6166
6167         PR c/5623
6168         * c-typeck.c (incomplete_type_error): Handle flexible array members.
6169
6170 2002-02-10  Richard Henderson  <rth@redhat.com>
6171
6172         PR c++/5624
6173         * tree.c (append_random_chars): Don't abort if main_input_filename
6174         does not exist.
6175
6176 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
6177
6178         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
6179
6180 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6181
6182         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
6183         (pushhi1): Likewise.
6184
6185 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6186
6187         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
6188         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
6189
6190 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
6191
6192         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
6193         remove MASK_VIS.
6194         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
6195
6196 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6197
6198         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
6199         a half of an SImode register on H8/300.
6200
6201 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
6202
6203         * i386.md (movdi_2): Add missing '!'.
6204
6205 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6206
6207         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
6208         definitions.
6209
6210 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6211
6212         * config/h8300/h8300.md (length): Correct the distance valid
6213         for the short branch.
6214
6215 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6216
6217         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
6218
6219 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
6220
6221         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
6222         registers in SImode.
6223         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
6224         part-clobbered.
6225
6226         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
6227         patch.
6228
6229         Contribute sh64-elf.
6230         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
6231         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
6232         (sh_cannot_modify_jumps_p): New function.
6233         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
6234         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
6235         (sh_ms_bitfield_layout_p): New function.
6236         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
6237                     Zack Weinberg  <zack@codesourcery.com>
6238         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
6239         expand_simple_binop instead of expand_binop.
6240         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
6241         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
6242         use of .quad and .uaquad.
6243         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
6244         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
6245         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
6246         * config/sh/sh.md (movdi_const, movdi_const_32bit,
6247         movdi_const_16bit): Make sure all CONSTs have modes.
6248         (sym2PIC): Ditto, but by adjusting all callers.
6249         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
6250         if the prologue calls the SHmedia argument decoder or register
6251         saver.
6252         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
6253         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
6254         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
6255         (sh_expand_epilogue): Don't emit USE of return target register.
6256         (prepare_move_operands): Legitimize DImode PIC addresses.
6257         (sh_media_register_for_return): Skip tr0, used to initialize the
6258         PIC register.
6259         (sh_expand_prologue): Remove explicit USE of return register.
6260         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
6261         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
6262         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
6263         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
6264         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
6265         EXTRA_CONSTRAINT_T.
6266         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
6267         (MOVI_SHORI_BASE_OPERAND_P): New.
6268         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
6269         (EXTRA_CONSTRAINT_T): Define in terms of them.
6270         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
6271         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
6272         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
6273         alternatives supporting TARGET_REGS.
6274         (UNSPEC_GOTPLT): New constant.
6275         (movdi split): Move incrementing of LABEL_NUSES...
6276         (movdi_const, movdi_const_32bit): Here.  Use
6277         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
6278         (movdi_const_16bit): New.
6279         (call, call_value) [flag_pic]: Use GOTPLT.
6280         (call_pop, call_value_pop): New expands.
6281         (call_pop_compact, call_pop_rettramp): New insns.
6282         (call_value_pop_compact, call_value_pop_rettramp): New insns.
6283         (sibcall) [flag_pic]: Use GOT.
6284         (builtint_setjmp_receiver): Remove bogus, unused expand.
6285         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
6286         (*pt, *ptb, ptrel): New insns.
6287         (sym2GOT): Handle DImode GOT.
6288         (sym2GOTPLT, symGOTPLT2reg): New expands.
6289         (sym2PIC): New expand.
6290         (shcompact_return_tramp): Use GOTPLT to return trampoline.
6291         (shcompact_return_tramp_i): Use return register explicitly.
6292         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
6293         disable flag_reorder_blocks.
6294         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
6295         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
6296         clobbers, for clarity.
6297         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
6298         restoring of r0 in macl as MAYBE_DEAD.
6299         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
6300         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
6301         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
6302         alter_subreg all over.
6303         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
6304         reload, instead of emitting instructions that would require
6305         reloading.
6306         (casesi_load_media): Add missing modes.
6307         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
6308         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
6309         as used if the argument decoder is called.
6310         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6311         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
6312         Pmode, then extend it to DImode if necessary.
6313         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
6314         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
6315         constants in FPU-enabled SHmedia, let them be loaded from memory.
6316         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6317         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
6318         Adjust whitespace in assembly output templates.
6319         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
6320         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
6321         mode of if_then_else.
6322         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
6323         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
6324         sh.h.
6325         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
6326                     Joern Rennecke <amylaar@redhat.com>
6327         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
6328         (SUBTARGET_CPP_PTR_SPEC): New.
6329         (SUBTARGET_CPP_SPEC): Remove.
6330         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
6331         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
6332         Fix typo in previous checkin.
6333         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
6334         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
6335         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
6336                     Alexandre Oliva  <aoliva@redhat.com>
6337         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
6338         what single FP register can hold for SHmedia target.
6339         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
6340                     Alexandre Oliva  <aoliva@redhat.com>
6341         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
6342         Do not split into SUBREG.
6343         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
6344         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
6345         and added new functions as specified in SH5 ABI r9.
6346         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
6347         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
6348         8-byte boundary.
6349         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
6350         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
6351         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
6352         and consttable_window_ends.
6353         2001-06-03  Graham Stott  <grahams@redhat,com>
6354         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
6355         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
6356         * config/sh/sh.c (print_operand): Handle floating-point pair,
6357         vector and matrix registers.
6358         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
6359         vector modes into account.
6360         * config/sh/sh.md (movv2sf): Split move between registers into
6361         movdf.
6362         (movv4sf, movv16sf): Introduce insns that get split only after
6363         reload.
6364         * config/sh/shmedia.h: Fix Copyright dates.
6365         * config/sh/ushmedia.h: Likewise.  Move loop counter
6366         declarations into conditionals that uses them.
6367         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
6368         loop boundary.
6369         * config/sh/sshmedia.h: Fix Copyright dates.
6370         (sh_media_PUTCFG): Fix constraints.
6371         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
6372         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
6373         ptrmemfunc_vbit_in_delta for SH5.
6374         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
6375         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
6376         * invoke.texi: Likewise.
6377         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
6378         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
6379         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
6380         GCC_pop_shmedia_regs_nofpu): New global symbols.
6381         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
6382         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
6383         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
6384         compact function with nonlocal labels.
6385         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
6386         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
6387         (initial_elimination_offset): Account for their stack space.
6388         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
6389         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
6390         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
6391         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
6392         least one of the operands to be a register.
6393         (movv2sf): Likewise.  Renamed to movv2sf_i.
6394         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
6395         prepare_move_operands() before emitting SHmedia insns.
6396         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
6397         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
6398         Don't save nor initialize r12.  Don't mis-align the stack.
6399         Pad the code with a nop.
6400         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
6401         stack.
6402         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
6403         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
6404         [__SHMEDIA__]: Implement.
6405         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
6406         * config/sh/sh.md: Set latency of `pt' closer to reality.
6407         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
6408         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
6409         Set move, load and store type attributes.
6410         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
6411         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
6412         profiling.
6413         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
6414         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
6415         * config/sh/sh.c (sh_media_register_for_return): New function.
6416         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
6417         branch-target register.
6418         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
6419         * config/sh/sh.md (return_media_i): Use any call-clobbered
6420         branch-target register.
6421         (return_media): If r18 wasn't copied in the prologue, copy it
6422         here.
6423         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
6424         Clear class FP0_REGS.
6425         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
6426         from elf.h.
6427         2001-03-08  DJ Delorie  <dj@redhat.com>
6428         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
6429         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
6430         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
6431         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
6432         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
6433         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
6434         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
6435         return value correctly for call_cookie.
6436         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
6437         * config/sh/crt1.asm (start): Modified so as to call
6438         ___setup_argv_and_call_main.
6439         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
6440         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
6441         SHmedia mode.
6442         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
6443         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
6444         (STRIP_NAME_ENCODING): Use it.
6445         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
6446         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
6447         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
6448         prepare_scc_operands().
6449         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
6450         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
6451         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
6452         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
6453         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
6454         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
6455         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
6456         used in shcompact_incoming_args.
6457         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
6458         change.
6459         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
6460         mode.
6461         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
6462         Adjust accordingly.
6463         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6464         Simplify.  Adjust.  Add sanity check.
6465         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
6466         FPU_SINGLE_BIT.
6467         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
6468         TARGET_SHCOMPACT.
6469         (udivsi3, divsi3): Use them.
6470         (force_mode_for_call): New insn.
6471         (call, call_value, sibcall_value): Emit it before SHcompact
6472         calls.
6473         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
6474         * config/sh/sh.md (call, call_value, sibcall): Make sure the
6475         call cookie is non-NULL before taking its value.
6476         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
6477         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
6478         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
6479         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
6480         block.
6481         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
6482         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
6483         temporary for stack adjusts.  Use MACL and MACH to pass
6484         arguments to shcompact_incoming_args.
6485         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
6486         clobber r1.
6487         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
6488         (nested_trampoline): Load static chain address into r1.
6489         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
6490         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
6491         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
6492         fp_arith_reg_operand().
6493         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
6494         * config/sh/sh.md (casesi): Sign-extend the first two operands,
6495         and use signed compares for them.
6496         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
6497         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
6498         ones properly aligned.
6499         (find_barrier): Account for extra alignment needed for 8-byte wide
6500         constants.
6501         (machine_dependent_reorg): Require a label for the second 4-byte
6502         constant after an 8-byte one.
6503         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
6504         change.
6505         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
6506         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
6507         last_float when switching float modes.
6508         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
6509         auto-increment for general-purpose registers.
6510         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
6511         result.
6512         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
6513         for stack adjust.
6514         * config/sh/sh.c (sh_builtin_saveregs): Support using all
6515         registers for varargs.
6516         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
6517         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
6518         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
6519         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
6520         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
6521         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
6522         call_cookie accordingly.
6523         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
6524         (SHCOMPACT_BYREF): Likewise.
6525         (SHCOMPACT_FORCE_ON_STACK): New macro.
6526         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
6527         (sh_builtin_saveregs): Likewise.
6528         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6529         shcompact_incoming_args): Use new shift values.  Support
6530         sequences of consecutive and non-consecutive pushes/pops.
6531         * config/sh/sh.md (return): Don't explicitly use PR_REG.
6532         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
6533         * config/sh/sh.h (TEXT_SECTION): Define.
6534         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
6535         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
6536         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
6537         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
6538         return values on FPU-enabled SHmedia.
6539         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
6540         FPU-enabled SHmedia.
6541         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
6542         value is returned in a non-FP reg and is not returned by
6543         reference.
6544         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
6545         jump_ind.
6546         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
6547         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
6548         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
6549         quad-aligned to be passed by callee-copy reference.
6550         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
6551         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
6552         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
6553         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
6554         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
6555         copying low-numbered FP regs to r7 and r8.
6556         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
6557         FP regs to general-purpose regs only if the copy was passed on the
6558         stack.
6559         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
6560         copying FP reg to r9.
6561         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
6562         copy FP regs to general-purpose regs only in outgoing calls.
6563         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
6564         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
6565         HOST_WIDE_INT.
6566         * config/sh/sh.h (struct sh_args): Document all fields.
6567         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
6568         passed partially on the stack should not consider making
6569         sibcalls.
6570         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
6571         stack_regs only for incoming calls.  When passing FP args,
6572         make sure there are FP regs available before modifying
6573         call_cookie.
6574         (SHCOMPACT_BYREF): Pass double args in general-purpose
6575         registers by reference.
6576         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
6577         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
6578         attempt to generate sibcalls if the caller got any arguments
6579         by reference.
6580         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
6581         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
6582         to 8-byte boundaries.
6583         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
6584         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
6585         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
6586         stored in the stack.
6587         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
6588         for the offsets to have the ISA bit set.
6589         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
6590         invocation.  Use beq instead of bgt to mark end of sequence of
6591         loads.
6592         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
6593         bgt to mark end of sequence of stores.
6594         * config/sh/sh.c (arith_operand): Don't check whether
6595         CONST_OK_FOR_J for now.
6596         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
6597         instead of long for conversion.
6598         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
6599         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
6600         before passing it to fprintf.
6601         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
6602         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
6603         Call set_fpscr before reading/writing SR.
6604         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
6605         Call set_fpscr.
6606         * config/sh/lib1funcs.asm: Add `.align 2' directives before
6607         SHmedia code.
6608         (FMOVD_WORKS): Define on SH5 with FPU.
6609         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
6610         setting.
6611         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
6612         _fpscr_values.
6613         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
6614         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
6615         address.
6616         (ia_main_table): Ditto.
6617         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
6618         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
6619         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
6620         the definitions from sh.h.
6621         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
6622         TARGET_SH5.
6623         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
6624         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
6625         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6626         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
6627         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
6628         Increment LABEL_NUSES.
6629
6630         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
6631         TARGET_SH5.
6632         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
6633         defined.
6634         * config/sh/elf.h (SIZE_TYPE): Likewise.
6635         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6636         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6637         shcompact_incoming_args): Load switch table addresses using
6638         datalabel.
6639         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6640         (NO_BUILTIN_SIZE_TYPE): Define.
6641         (SIZE_TYPE): Don't define.
6642         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6643         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
6644         definition of __SH5__=32 for -m5-compact-nofpu.
6645         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
6646         ADDR_DIFF_VEC.
6647         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
6648         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
6649         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
6650         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
6651         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
6652         (INSN_LENGTH_ALIGNMENT): Likewise.
6653         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6654         * config/sh/sh.md (call, call_value, sibcall): Simplify
6655         copying of non-branch-target register.
6656         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6657         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
6658         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
6659         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6660         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
6661         floating-point values as structs.
6662         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
6663         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
6664         general-purpose register.
6665         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
6666         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6667         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
6668         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
6669         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
6670         (ENCODE_SECTION_INFO): Enclose variables and constants in
6671         DATALABEL unspecs.
6672         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
6673         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
6674         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
6675         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
6676         only for LABEL_REFs.  For SYMBOL_REFs, prepend
6677         SH_DATALABEL_ENCODING to the symbol name.
6678         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
6679         convert_mode().
6680         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6681         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
6682         UNSPEC_DATALABEL.
6683         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
6684         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
6685         (DATALABEL_REF_P): Don't require CONST.
6686         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
6687         REL label.
6688         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
6689         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
6690         right.
6691         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6692         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
6693         Use shallow_copy_rtx and PUT_MODE to change the mode of
6694         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
6695         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
6696         on SHmedia using GENERAL_REGs.
6697         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6698         bltu_media_i): Fix reversion of conditions.
6699         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6700         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
6701         * config/sh/sh.c (output_far_jump): Save r13 in macl.
6702         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
6703         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
6704         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
6705         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
6706         (GCC_nested_trampoline): Likewise.
6707         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
6708         * config/sh/sh.c (gen_datalabel_ref): Define.
6709         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
6710         (INITIALIZE_TRAMPOLINE): Likewise.
6711         (TRAMPOLINE_ADJUST_ADDRESS): Define.
6712         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
6713         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
6714         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
6715         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
6716         (ic_invalidate): Adjust for SH5.
6717         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
6718         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
6719         _nested_trampoline.
6720         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
6721         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
6722         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
6723         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6724         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
6725         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
6726         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6727         * config/sh/sh.c (target_reg_operand): Match only target-branch
6728         registers and pseudos that aren't virtual registers.
6729         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6730         Copy operands that don't match target_reg_operand to pseudos.
6731         (call_media, call_value_media, sibcall_media): Use
6732         target_reg_operand instead of target_operand.
6733         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
6734         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
6735         * config/sh/sh.c (target_reg_operand): Match hardware registers
6736         other than branch-target registers.
6737         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
6738         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
6739         (fpscr_values) [SH5 == 32]: Define.
6740         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
6741         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6742         Handle function addresses coming in SUBREGs.
6743         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
6744         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6745         shcompact_return_trampoline): Use datalabel where appropriate.
6746         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
6747         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
6748         general-purpose register to copy one branch-target register to
6749         another.
6750         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6751         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
6752         SYMBOL_REFs with VOIDmode.
6753         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6754         bltu_media_i): New insns.
6755         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6756         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
6757         (INIT_CUMULATIVE_ARGS): Likewise.
6758         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
6759         * machmode.def (V16SFmode): New mode.
6760         * c-common.c (type_for_mode): Support V2SF and V16SF.
6761         * tree.c (build_common_tree_nodes_2): Likewise.
6762         * tree.h (tree_index): Likewise.
6763         * calls.c (emit_call_1): Take args_so_far.  Adjust all
6764         callers.  Introduce CALL_POPS_ARGS.
6765         * tm.texi (CALL_POPS_ARGS): Document.
6766         * config/sh/crt1.asm: Implement in SHmedia mode.
6767         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
6768         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
6769         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
6770         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
6771         Implement divsi and udivsi in SHmedia mode.  Introduce
6772         SHcompact trampolines.
6773         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
6774         only in SHmedia64.
6775         (regno_reg_class): Rewrite.
6776         (fp_reg_names): Remove.
6777         (sh_register_names, sh_additional_register_names): New.
6778         (print_operand): Added `u'.  Support SUBREGs in addresses.
6779         Add parentheses around shifted CONSTs.
6780         (output_file_start): Output .mode and .abi directives.
6781         (shiftcosts, addsubcosts, multcosts): Adjust.
6782         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
6783         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
6784         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
6785         bytes, not registers.  Take into account the need for the
6786         SHcompact incoming args trampoline.  Adjust all callers.
6787         (sh_expand_prologue): Take stack_regs into account.  Call
6788         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
6789         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
6790         stack aligned as per SH5 ABI.
6791         (sh_builtin_saveregs): Support SH5 ABI.
6792         (sh_build_va_list, sh_va_start): Likewise.
6793         (initial_elimination_offset): Take alignment into account.
6794         Compute location of PR according to the SH5 stack frame.
6795         (arith_reg_operand): Reject branch-target registers.
6796         (shmedia_6bit_operand): New.
6797         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
6798         (target_reg_operand): Match DImode only.  Accept SUBREGs.
6799         (target_operand): New.
6800         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
6801         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
6802         SIBCALL_REGS for SHmedia.
6803         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
6804         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
6805         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
6806         (TARGET_SWITCHES): New SH5 flags.
6807         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
6808         VALID_REGISTER_P to disable unsupported registers.
6809         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
6810         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
6811         (FUNCTION_ARG_PADDING): Define.
6812         (FASTEST_ALIGNMENT): Adjust.
6813         (SH_REGISTER_NAMES_INITIALIZER): New.
6814         (sh_register_names): Declare.
6815         (DEBUG_REGISTER_NAMES): Define.
6816         (REGISTER_NAMES): Define based on sh_register_names.
6817         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
6818         (sh_additional_register_names): Declare.
6819         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
6820         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
6821         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
6822         (REGISTER_NATURAL_MODE): Define.
6823         (FIRST_PSEUDO_REGISTER): Adjust.
6824         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
6825         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
6826         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
6827         (VECTOR_MODE_SUPPORTED_P): Define.
6828         (REG_CLASS_CONTENTS): Adjust.
6829         (SMALL_REGISTER_CLASSES): Adjust.
6830         (REG_ALLOC_ORDER): Adjust.
6831         (INDEX_REG_CLASS): Adjust.
6832         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
6833         (CONST_OK_FOR_LETTER_P): Adjust.
6834         (PREFERRED_RELOAD_CLASS): Adjust.
6835         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
6836         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
6837         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
6838         (FIRST_FP_PARM_REG): Adjust.
6839         (CALL_POPS_ARGS): Define.
6840         (FUNCTION_ARG_REGNO_P): Adjust.
6841         (struct sh_args): New fields.
6842         (GET_SH_ARG_CLASS): Adjust.
6843         (INIT_CUMULATIVE_ARGS): Adjust.
6844         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
6845         (FUNCTION_ARG_ADVANCE): Adjust.
6846         (FUNCTION_ARG): Adjust.
6847         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
6848         (FUNCTION_ARG_CALLEE_COPIES): Define.
6849         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
6850         (STRICT_ARGUMENT_NAMING): Define.
6851         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
6852         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
6853         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
6854         (SETUP_INCOMING_VARARGS): Adjust.
6855         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
6856         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
6857         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
6858         (SUBREG_OK_FOR_INDEX_P): Adjust.
6859         (EXTRA_CONSTRAINT_S): Update.
6860         (EXTRA_CONSTRAINT_T): New.
6861         (EXTRA_CONSTRAINT): Adjust.
6862         (GO_IF_LEGITIMATE_INDEX): Adjust.
6863         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
6864         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
6865         (MOVE_MAX): Adjust.
6866         (MAX_MOVE_MAX): Define.
6867         (Pmode): Adjust.
6868         (CONST_COSTS): Adjust.
6869         (REGISTER_MOVE_COST): Adjust.
6870         (BRANCH_COST): Adjust.
6871         (TEXT_SECTION_ASM_OP): Adjust.
6872         (DBX_REGISTER_NUMBER): Adjust.
6873         (ASM_OUTPUT_DOUBLE_INT): New.
6874         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
6875         (PREDICATE_CODES): Adjust.
6876         (PROMOTE_MODE): Adjust.
6877         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
6878         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
6879         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
6880         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
6881         (DR0_REG, DR2_REG, DR4_REG): Renumber.
6882         (TR0_REG, TR1_REG, TR2_REG): New.
6883         (XD0_REG): Renumber.
6884         (UNSPEC_COMPACT_ARGS): New.
6885         (type): Added pt and ptabs.
6886         (length): Default to 4 on SHmedia.  Default pt length to 12
6887         and     20 on SHmedia32 and SHmedia64, respectively.
6888         (pt): New function unit.
6889         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
6890         Add whitespace between operands of SHmedia instructions.
6891         (movdicc): Fix.
6892         (adddi3_media, addsi3_media): Adjust constraints.
6893         (subsi3) [SHmedia]: Force operand 1 into a register.
6894         (udivsi3_i1_media, udivsi3_i4_media): New.
6895         (udivsi3): Support SHmedia.
6896         (divsi3_i1_media, divsi3_i4_media): New.
6897         (divsi3): Support SHmedia.
6898         (anddi3, iordi3, xordi3): Adjust constraints.
6899         (zero_extendhidi2, zero_extendqidi2): New.
6900         (extendsidi2, extendhidi2, extendqidi2): New.
6901         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
6902         (pop_e, pop_fpul, pop_4): Likewise.
6903         (movsi_media): Support FP and BT registers.
6904         (movsi_media_nofpu): New.  Adjust splits to DImode.
6905         (lduw, ldub): Renamed to zero_extend* above.
6906         (movqi_media): Fix typo.
6907         (movdi_media): Support FP and BT registers.
6908         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
6909         (movdi_const_32bit): New.
6910         (shori_media): Require immediate operand.  Use `u' for output.
6911         (movdf_media, movsf_media): Simplified.
6912         (movdf_media_nofpu, movsf_media_nofpu): New.
6913         (movdf, movsf): Adjust
6914         (movv2sf, movv2sf, movv16sf): New.
6915         (beq_media, beq_media_i): Adjust constraints.  Don't use
6916         scratch BT register.
6917         (bne_media, bne_media_i): Likewise.
6918         (bgt_media, bgt_media_i): Likewise.
6919         (bge_media, bge_media_i): Likewise.
6920         (bgtu_media, bgtu_media_i): Likewise.
6921         (bgeu_media, bgeu_media_i): Likewise.
6922         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
6923         bunordered): Emit jump insn.  Force operands to registers when
6924         needed.
6925         (jump_media, jump): Simplify.
6926         (call_compact, call_compact_rettramp): New.
6927         (call_value_compact, call_value_compact_rettramp): New.
6928         (call_media, call_value_media): Simplify.
6929         (sibcall_compact, sibcall_media): New.
6930         (call, call_value): Adjust for SHmedia and SHcompact.
6931         (sibcall, sibcall_value, untyped_call): Likewise.
6932         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
6933         (indirect_jump): Adjust for SHmedia.
6934         (casesi_jump_media): New.
6935         (nop): Re-enable for SHmedia.
6936         (call_site): Restrict to SH1.
6937         (casesi): Adjust for SHmedia.
6938         (casesi_shift_media, casesi_load_media): New.
6939         (return): Explicitly use PR register.  Call return trampoline
6940         on SHcompact.
6941         (return_i): Explicitly use PR register.
6942         (shcompact_return_tramp, shcompact_return_tramp_i): New.
6943         (return_media): Adjust.
6944         (shcompact_incoming_args): New.
6945         (epilogue): Adjust.
6946         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
6947         (movstrsi): Disable on SH5.
6948         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
6949         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
6950         (subsf3, subsf3_media): Likewise.
6951         (mulsf3, mulsf3_media, mac_media): Likewise.
6952         (divsf3, divsf3_media): Likewise.
6953         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
6954         (floatsisf2, fux_truncsfsi2): Likewise.
6955         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
6956         constraints.
6957         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
6958         (cmpunsf_media, cmpsf): Likewise.
6959         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
6960         (abssf2, abssf2_media): Likewise.
6961         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
6962         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
6963         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
6964         (floatsidf2, fix_truncdfsi2): Likewise.
6965         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
6966         constraints.
6967         (cmpeqdf_media, cmpgtdf_media): Likewise.
6968         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
6969         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
6970         (absdf2, absdf2_media): Likewise.
6971         (extendsfdf2, extendsfdf2_media): Likewise.
6972         (truncsfdf2, truncsfdf2_media): Likewise.
6973         * config/sh/sh64.h: New file.
6974         * config/sh/t-sh64: New file.
6975         * config/sh/shmedia.h: New file.
6976         * config/sh/ushmedia.h: New file.
6977         * config/sh/sshmedia.h: New file.
6978         * configure.in: Added sh64-*-elf.
6979         * configure: Rebuilt.
6980         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
6981         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
6982         (reg_class_from_letter): Use `b' for TARGET_REGS.
6983         (print_operand): Support `%M', `%m', `AND' and
6984         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
6985         (andcosts): Adjust for SHmedia.
6986         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
6987         Likewise.
6988         (target_reg_operand): New function.
6989         * config/sh/sh-protos.h (target_reg_operand): Declare.
6990         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
6991         FP registers on SH5.
6992         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
6993         on SH4.
6994         (TARGET_REGISTER_P): New macro.
6995         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
6996         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
6997         (EXTRA_CONSTRAINT_S): New macro.
6998         (EXTRA_CONSTRAINT): Adjust.
6999         (FLOAT_TYPE_SIZE): Define to 32.
7000         (Pmode): DImode on SHmedia.
7001         (CONST_COSTS): Adjust for SHmedia literals.
7002         (PREDICATE_CODES): Added target_reg_operand.
7003         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
7004         * config/sh/sh.md: Remove all attrs from SHmedia insns.
7005         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
7006         (cmpdi): Accept SHmedia.
7007         (movdicc_false, movdicc_true): New insns.
7008         (movdicc): New expand.
7009         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
7010         no_new_pseudos.
7011         (addsi3_media): Match `S' constraint.
7012         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
7013         (negdi2): Expand for SHmedia.
7014         (one_cmpldi2): New expand.
7015         (zero_extendsidi2): Change from expand to insn.
7016         (extendsidi2): Add constraints.
7017         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
7018         LD/ST address.  Fix SI immediate loading split.
7019         (movhi_media, movqi_media, lduw, ldub): New insns.
7020         (movhi, movqi): Accept SHmedia.
7021         (shori_media, movdi_media): Relax input constraints.  Split
7022         symbolic constants.
7023         (movdf_media, movsf_media): New insn.  New split to movdi.
7024         (movdf, movsf): Match on SHmedia.
7025         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
7026         bgeu_media): New insns and splits.  New insns with `_i' suffix.
7027         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
7028         (bunordered): New expand.
7029         (jump_compact): Renamed from `jump'.
7030         (jump_media): New insn.
7031         (jump): New expand.
7032         (call_media, call_value_media): New insns.
7033         (call, call_value): Adjust.
7034         (indirect_jump_compact): Renamed from `indirect_jump'.
7035         (indirect_jump_media): New insn.
7036         (indirect_jump): New expand.
7037         (untyped_call, return): Accept SHmedia.
7038         (return_media): New insn.
7039         (prologue, epilogue, blockage): Accept SHmedia.
7040         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
7041         (sunordered): New expand.
7042         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
7043         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
7044         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
7045         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
7046         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
7047         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
7048         abssf2_media): New insns.
7049         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
7050         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
7051         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
7052         floatdidf2, floatsidf2_media, fix_truncdfdi2,
7053         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
7054         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
7055         absdf2_media): New insns.
7056         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
7057         (extendsfdf2_media, truncdfsf2_media): New insns.
7058         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
7059         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
7060         * config/sh/sh.h (CONST_OK_FOR_J): Document.
7061         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
7062         * config/sh/sh.md (adddi3): New expand.
7063         (adddi3_media, adddi3z_media): New insns.
7064         (adddi3_compact): Renamed from adddi3.
7065         (addsi3_media): Use add.l r63 to add constant zero.
7066         (subdi3): New expand.
7067         (subdi3_media): New insn.
7068         (subdi3_compact): Renamed from subdi3.
7069         (mulsidi3): New expand.
7070         (mulsidi3_media): New insn.
7071         (mulsidi3_compact): Renamed from mulsidi3.
7072         (umulsidi3): New expand.
7073         (umulsidi3_media): New insn.
7074         (umulsidi3_compact): Renamed from umulsidi3.
7075         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
7076         (ashlsi3, ashrsi3, lshrsi3): Use them.
7077         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
7078         (ashldi3, ashrdi3, lshrdi3): Use them.
7079         (zero_extendsidi2): New expand.
7080         (extendsidi2): New insn.
7081         (movsi_media): New insn.  Split to movdi to load constants.
7082         (movsi): Enable for shmedia.
7083         (movdi_media): New insn.  Use shori_media to load wide constants.
7084         (short_media): New insn.
7085         (movdi): Enable for shmedia.
7086         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
7087         * config/sh/sh.h (CPP_SPEC): Added `m5'.
7088         (SUBTARGET_CPP_SPEC): Added `!m5'.
7089         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
7090         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
7091         to all other SH variants.
7092         (TARGET_DEFAULT): Set to SH1_BIT.
7093         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
7094         (BITS_PER_WORD): Raise to 64 on shmedia.
7095         (MAX_BITS_PER_WORD): Change to 64.
7096         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
7097         (INT_TYPE_SIZE): Keep as 32.
7098         (UNITS_PER_WORD): Raise to 8 on shmedia.
7099         (MIN_UNITS_PER_WORD): Keep as 4.
7100         (POINTER_SIZE): Raise to 64 on shmedia.
7101         (CONST_OK_FOR_J): New macro.
7102         (CONST_OK_FOR_LETTER_P): Use it.
7103         (processor_type): Add PROCESSOR_SH5.
7104         * config/sh/sh.md: Conditionalize all expands, insns and
7105         splits to TARGET_SH1.
7106         (cpu): Added sh5.
7107         (addsi3_compact): Renamed from...
7108         (addsi3): Now an expand.
7109         (addsi3_media, subsi3_media): New insns.
7110         (subsi3): Don't negate constants with SHmedia.
7111
7112         * hooks.c: New file.
7113         * hooks.h: New file.
7114         * Makefile.in (HOOKS_H): New.
7115         (TARGET_DEF_H): Added $(HOOKS_H).
7116         (OBJS): Added hooks.o.
7117         (cfgcleanup.o, bb-reorder.o): Added target.h.
7118         (hooks.o): Added dependencies.
7119         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
7120         (TARGET_INITIALIZER): this.
7121         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
7122         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
7123         * bb-reorder.c: Include target.h.
7124         (reorder_basic_blocks): Skip if cannot modify jumps.
7125         * cfgcleanup.c: Include target.h.
7126         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
7127
7128 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
7129
7130         * config/mips/mips.md (casesi_internal, casesi_internal_di):
7131         Protect jump delay slot instructions with .set noreorder and
7132         .set nomacro.
7133
7134 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
7135
7136         * config/mips/mips.md (casesi_internal_di): Calculate
7137         the index into the target offset table correctly.
7138
7139 2002-02-08  Richard Henderson  <rth@redhat.com>
7140
7141         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
7142         * final.c (output_addr_const): Accept and discard SUBREG.
7143         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
7144         mark them unknown instead.
7145         (simplify_subtraction): Handle RTX_UNKNOWN.
7146         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
7147
7148 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
7149
7150         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
7151
7152 2002-02-08  Richard Henderson  <rth@redhat.com>
7153
7154         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
7155
7156 2002-02-08  Andreas Jaeger  <aj@suse.de>
7157
7158         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
7159         * config/i386/t-linux64: New file.
7160
7161 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
7162
7163         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
7164         * c-parse.in (compstmt): Clear last_expr_type.
7165
7166 2002-02-07  Richard Henderson  <rth@redhat.com>
7167
7168         * loop.c (strength_reduce): Sink final_value when not
7169         eliminating a biv.
7170
7171 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
7172
7173         * config/sparc/freebsd.h: Fix mismatched spec {.
7174
7175 2002-02-07  Richard Henderson  <rth@redhat.com>
7176
7177         * cfgrtl.c: Include recog.h and insn-config.h.
7178         (keep_with_call_p): Fix general_operand invocation.
7179         * Makefile.in (cfgrtl.o): Update dependencies.
7180
7181 2002-02-07  Kazu Hirata  <kazu@hxi.com>
7182
7183         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
7184         comment.  Accept HImode only if TARGET_H8300.
7185
7186 2002-02-07  Eric Christopher  <echristo@redhat.com>
7187
7188         * config/mips/crtn.asm: Cleanup #ifdefs.
7189
7190 2002-02-07  Eric Christopher  <echristo@redhat.com>
7191
7192         * config/mips/crti.asm: Add changes for mips16. mips16 uses
7193         register 7 as RA instead of $31.
7194         * config/mips/crtn.asm: Ditto.
7195         * config/mips/mips.c (mips_move_2words): Add case for
7196         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
7197         (compute_frame_size): Fix typo.
7198         (save_restore_insns): Ditto.  Make documentation about using
7199         register $7 as return register more precise.
7200         (mips_expand_epilogue): Fix comment. Add code to work around not
7201         being able to add to the stack pointer directly.
7202         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
7203         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
7204         epilogue.
7205
7206 2002-02-07  Tom Rix  <trix@redhat.com>
7207
7208         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
7209         immediates in ldu and stdu DS opcode field.
7210         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
7211         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
7212         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
7213
7214 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
7215
7216         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
7217         offset for stack bias.
7218
7219 2002-02-07  H.J. Lu <hjl@gnu.org>
7220
7221         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
7222
7223 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
7224
7225         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
7226
7227 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
7228
7229         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
7230         * i386.c (x86_order_regs_for_local_alloc): New global function.
7231         * i386.h (REG_ALLOC_ORDER): CLeanup.
7232         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
7233
7234 2002-02-07  Richard Henderson  <rth@redhat.com>
7235
7236         PR optimization/2463
7237         * alias.c (find_base_value): Recall base values for fixed hard regs.
7238         * loop.c (loop_regs_update): Don't use single_set on non-insns.
7239
7240 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
7241
7242         * config/mips/mips.md (define_delay) [mips16]: Adjust required
7243         length.
7244
7245 2002-02-06  Richard Henderson  <rth@redhat.com>
7246
7247         PR c/5609
7248         * stmt.c (resolve_operand_name_1): Take more care with mixed
7249         named and unnamed operands.
7250
7251 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
7252             Jan Hubicka  <jh@suse.cz>
7253
7254         * loop.c (remove_constant_addition): Avoid clobbering a shared
7255         CONST expression.
7256
7257 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7258
7259         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
7260         * config/s390/t-linux64: New file.
7261         * config/s390/libgcc-glibc.ver: New file.
7262
7263 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7264
7265         * config/s390/linux64.h: Delete file.
7266         * config/s390/s390x.h: New file.
7267         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
7268         as target header file.
7269         * config/s390/linux.h (TARGET_VERSION): Define depending on
7270         DEFAULT_TARGET_64BIT.
7271         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
7272         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
7273         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
7274         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
7275         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
7276         (EXTRA_SPEC): New define.
7277         * config/s390/s390.h (TARGET_VERSION): Define depending on
7278         DEFAULT_TARGET_64BIT.
7279         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
7280
7281 2002-02-06  Jason Merrill  <jason@redhat.com>
7282
7283         * c-decl.c (finish_function): Warn about a non-void function with
7284         no return statement and no abnormal exit.
7285         (current_function_returns_abnormally): New variable.
7286         (start_function): Clear it.
7287         (struct c_language_function): Add returns_abnormally.
7288         (push_c_function_context): Save it.
7289         (pop_c_function_context): Restore it.
7290         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
7291         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
7292         an explicit return type.
7293         * c-tree.h: Declare current_function_returns_abnormally.
7294         (C_FUNCTION_IMPLICIT_INT): New macro.
7295         * c-typeck.c (build_function_call): Set it.
7296         (c_expand_return): Set current_function_returns_value even if the
7297         value is erroneous.
7298
7299 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
7300
7301         PR c/5420:
7302         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
7303         unsafe for reevaluation.
7304
7305 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
7306
7307         PR c/5482:
7308         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
7309         EXPR_STMT, but COMPOUND_STMT, recurse into it.
7310
7311 2002-02-06  Richard Henderson  <rth@redhat.com>
7312
7313         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
7314         be a general_operand.  Dest for function value must be a pseudo.
7315
7316 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
7317
7318         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
7319         as SYMBOL_REFs from the constant pool.
7320
7321 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
7322
7323         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
7324         passed by invisible reference.
7325
7326 2002-02-05  Richard Henderson  <rth@redhat.com>
7327
7328         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
7329
7330 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
7331
7332         Implement using "base addresses" in insn operands as default.
7333         * config/mmix/mmix.c (mmix_conditional_register_usage): if
7334         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
7335         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
7336         used to read the rtx value.
7337         (mmix_target_asm_function_epilogue): Fix spacing.
7338         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
7339         (mmix_legitimate_address): Ditto.
7340         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
7341         should be loaded with a GETA insn.  Don't allocate needless extra
7342         char for nul termination and fix misleading comment.
7343         (mmix_print_operand_address): Handle constants if
7344         TARGET_BASE_ADDRESSES.
7345         (mmix_output_register_setting): Use base addressing if
7346         TARGET_BASE_ADDRESSES and the number of insns is 3.
7347         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
7348         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
7349         to use R as constraint, add LDA to match s.
7350         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
7351         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
7352         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
7353         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
7354         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
7355         order with other fixed registers.
7356         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
7357         other parameter/call-clobbered registers.
7358         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
7359         -mbase-addresses, -mno-base-addresses.
7360         (MMIX Options): Ditto.
7361
7362 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7363
7364         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
7365
7366 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
7367
7368         * config/rs6000/altivec.h: Change elem to _S_elem.
7369
7370 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
7371
7372         * config/netbsd.h (WCHAR_TYPE): Define.
7373         (WCHAR_TYPE_SIZE): Ditto.
7374         (WINT_TYPE): Ditto.
7375         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
7376         (WCHAR_UNSIGNED): Ditto.
7377         (WCHAR_TYPE_SIZE): Ditto.
7378         (WINT_TYPE): Ditto.
7379         * config/arm/netbsd.h: Likewise.
7380         * config/i386/netbsd-elf.h: Likewise.
7381         * config/i386/netbsd.h: Likewise.
7382         * config/m68k/netbsd-elf.h: Likewise.
7383         * config/m68k/netbsd.h: Likewise.
7384         * config/ns32k/netbsd.h: Likewise.
7385         * config/sparc/netbsd.h: Likewise.
7386         * config/vax/netbsd.: Likewise.
7387
7388 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
7389
7390         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
7391         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
7392         (TARGET_INITIALIZER): this.
7393         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
7394         (BITFIELD_NBYTES_LIMITED): Markup fix.
7395         * tree.h (default_ms_bitfield_layout_p): Declare.
7396         (record_layout_info): Added prev_field.
7397         * tree.c (default_ms_bitfield_layout_p): New fn.
7398         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
7399         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
7400         * stor-layout.c: Include target.h.
7401         (start_record_layout): Initialize prev_field.
7402         (place_field): Handle MS bit-field layout, and disregard
7403         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
7404         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
7405         * Makefile.in (stor-layout.o): Adjust dependencies.
7406
7407 2002-02-05  Jason Merrill  <jason@redhat.com>
7408
7409         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
7410
7411 2002-02-05  Andreas Jaeger  <aj@suse.de>
7412
7413         * crtstuff.c: Fix comments.
7414
7415 2002-02-05  Richard Henderson  <rth@redhat.com>
7416
7417         PR fortran/3393
7418         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
7419         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
7420
7421         PR fortran/3392
7422         * config/mips/mips.c (function_arg): Handle TImode.
7423         (function_arg_advance): Likewise.
7424
7425 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7426
7427         * config/rs6000/altivec.h (vec_step_help): Rename to
7428         __vec_step_help.
7429
7430 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7431
7432         * config/rs6000/altivec.h: Fix typos.
7433
7434 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
7435
7436         * config/arm/netbsd.h: Correct a comment.
7437
7438 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7439
7440         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
7441         building void typed builtins.
7442
7443         * config/rs6000/altivec.h (vec_ld*): Fix typos.
7444         (vec_step): Implement for C++.
7445
7446 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7447
7448         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
7449
7450 2002-02-04  Richard Henderson  <rth@redhat.com>
7451
7452         * combine.c (nonzero_bits): Re-introduce special case for
7453         sp/fp/ap wrt REGNO_POINTER_ALIGN.
7454
7455 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7456
7457         * doc/extend.texi: Warn about unsupported usage of altivec
7458         builtins.
7459
7460         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
7461         (altivec_predicate_*): New.
7462
7463         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
7464         Add C++ version of vec_*() functions.
7465
7466         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
7467         (bdesc_2arg): Remove altivec predicates.
7468         (altivec_expand_builtin): Handle predicates.
7469         (altivec_init_builtins): Handle predicates.
7470         (altivec_expand_predicate_builtin): New.
7471
7472 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7473
7474         * pa.c (DO_FRAME_NOTES): Move forward.
7475         (store_reg): Revise handling of frame notes.
7476         (load_reg): Likewise.
7477         (set_reg_plus_d): Likewise.
7478         (hppa_expand_prologue): Likewise.
7479         (hppa_expand_epilogue): Likewise.
7480
7481 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7482
7483         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
7484
7485 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7486
7487         PR c/4475, c++/3780:
7488         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
7489         * c-common.h (SWITCH_TYPE): Define.
7490         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
7491         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
7492         Rename spareness variable to sparseness.
7493         (expand_end_case_type): Renamed from expand_end_case, use orig_type
7494         if non-NULL instead of TREE_TYPE (orig_index).
7495         * tree.h (expand_end_case_type): Renamed from expand_end_case.
7496         (expand_end_case): Define using expand_end_case_type.
7497         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
7498         to expand_end_case_type.
7499         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
7500
7501 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7502
7503         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
7504         (BIGGEST_ALIGNMENT): Change to 128.
7505
7506 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7507
7508         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
7509
7510 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7511
7512         * pa.md (call_internal_reg_64bit): Remove unused variable.
7513
7514 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
7515
7516         * config/arm/arm.h (machine_function): Add uses_anonymous_args
7517         field.
7518         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
7519         * config/arm/arm.c (current_function_anonymous_args): Delete,
7520         replace uses with cfun->machine->uses_anonymous_args.
7521         (arm_reorg): Do not reset uses_anonymous_args.
7522
7523         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
7524         any geenral register.
7525
7526 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
7527
7528         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
7529         the entry block.
7530
7531 2002-02-04  Richard Henderson  <rth@redhat.com>
7532
7533         * combine.c (force_to_mode): Remove STACK_BIAS code.
7534         (nonzero_bits): Likewise.  Replace sp/fp special case with
7535         REGNO_POINTER_ALIGN.
7536
7537         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
7538         (HARD_FRAME_POINTER_REGNUM): New.
7539         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
7540         (FIXED_REGS, CALL_USED_REGS): Update.
7541         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
7542         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
7543         (HARD_REGNO_NREGS): Update for SFP.
7544         (STACK_POINTER_OFFSET): Include bias here ...
7545         (FIRST_PARM_OFFSET): ... not here.
7546         (STACK_BIAS): Remove.
7547         (INIT_EXPANDERS): New.
7548         (STARTING_FRAME_OFFSET): Do not include bias.
7549         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
7550         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
7551         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
7552         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
7553         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
7554         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
7555         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
7556         (MUST_SAVE_REGISTER): Likewise.
7557         (sparc_flat_function_prologue): Likewise.
7558         (sparc_flat_function_epilogue): Likewise.
7559         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
7560         (sparc_init_modes): SFP is GENERAL_REGS.
7561         (sparc_builtin_saveregs): SFP does not have bias applied.
7562
7563 2002-02-04  Richard Henderson  <rth@redhat.com>
7564
7565         * config/alpha/alpha.c (current_function_is_thunk): Don't check
7566         current_function_is_thunk.
7567         (alpha_sa_mask): Distinguish between current_function_is_thunk
7568         called from ASM_OUTPUT_MI_THUNK and not.
7569         (alpha_does_function_need_gp): Thunks always need gp.
7570         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7571         (alpha_output_mi_thunk_osf): New.
7572         * config/alpha/alpha-protos.h: Update.
7573         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
7574
7575 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
7576
7577         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
7578         function types, not when they're taken away.
7579
7580 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
7581
7582         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
7583         CODE_LABEL and jump table when replacing a table jump with a
7584         simple jump.
7585
7586 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7587
7588         * config/s390/s390-protos.h (legitimize_la_operand,
7589         s390_secondary_input_reload_class, s390_plus_operand,
7590         s390_expand_plus_operand): Add prototypes.
7591
7592         config/s390/s390.c (s390_secondary_input_reload_class,
7593         s390_plus_operand, s390_expand_plus_operand): New functions.
7594
7595         (struct s390_address): New member 'pointer'.
7596         (s390_decompose_address): Compute it.
7597         (legitimate_la_operand_p): Use it.
7598         (legitimize_la_operand): New function.
7599         (movti, movdi, movdf splitters): Call it.
7600
7601         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
7602         (PREDICATE_CODES): Add s390_plus_operand.
7603
7604         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
7605         (la_ccclobber): Allow GENERAL_REGS as output operand.
7606
7607         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
7608         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
7609         (*la_64, *la_31, reload_indi, reload_insi): ... these.
7610
7611 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7612
7613         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
7614         register names for regular asm () construct.
7615
7616 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7617
7618         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
7619         registers.
7620
7621 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7622
7623         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
7624         pat for recog.
7625
7626 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
7627
7628         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
7629         constant pool to be identical by string address and index.
7630
7631 2002-02-04  Anthony Green  <green@redhat.com>
7632
7633         * output.h (SECTION_OVERRIDE): Define.
7634         * varasm.c (named_section): Obey SECTION_OVERRIDE.
7635
7636 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7637
7638         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
7639         by existing arm*-*-netbsd* (a.out) target.
7640         (ns32k-*-netbsdelf*): Likewise.
7641         (sparc-*-netbsdelf*): Likewise.
7642         (vax-*-netbsdelf*): Likewise.
7643
7644 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
7645
7646         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
7647         headers and libobjc headers.
7648
7649 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
7650
7651         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
7652         (_mingw.h): Remove duplicate include.
7653
7654 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7655
7656         * config.gcc: Set cpu_type to m68k for 68010, as well.
7657         (m68010-*-netbsdelf*): New...
7658         (m68k*-*-netbsdelf*): ...targets.
7659         * config/m68k/netbsd-elf.h: New file.
7660
7661 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7662
7663         * config/h8300/h8300.c (hand_list): Move inside function_arg.
7664
7665 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7666
7667         * config/h8300/h8300.c (h8_push_ops): Move inside
7668         h8300_init_once.
7669         (h8_pop_ops): Likewise.
7670         (h8_move_ops): Likewise.
7671
7672 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7673
7674         * config/h8300/h8300.c (os_task): Make it static.
7675         (monitor): Likewise.
7676         (pragma_saveall): Likewise.
7677
7678 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
7679
7680         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
7681         constant is a valid sign-extension for Pmode.
7682
7683 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7684
7685         * config/h8300/h8300.c: Fix formatting.
7686
7687 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7688
7689         * config/h8300/h8300.md: Fix formatting.
7690
7691 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7692
7693         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
7694         predicates of operands[1].  Split the patterns for each
7695         processor variant.
7696
7697 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7698
7699         * config/h8300/h8300.md (xor patterns): Tighten the predicates
7700         of operands[1] to register_operand.
7701
7702 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7703
7704         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
7705         * cpphash.c (_cpp_init_hashtable): Similarly.
7706         * cppinit.c (cpp_create_reader): Default the signed_char flag.
7707         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
7708         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
7709         (cpp_handle_option): Handle the new options.
7710         * cpplex.c (cpp_interpret_charconst): Use new flag.
7711         * cpplib.h (struct cpp_options): New member signed_char.
7712         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
7713         (cpp_options): Handle -fsigned-char and -funsigned-char.
7714         (static_specs): Remove signed_char_spec.
7715         (do_spec1): Don't handle %c.
7716         * system.h: Poison SIGNED_CHAR_SPEC.
7717         * tradcif.y (yylex): Use flag_signed_char.
7718         * tradcpp.h (flag_signed_char): New.
7719         * tradcpp.c (flag_signed_char): New.
7720         (main): Handle new command-line options.
7721         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
7722 config:
7723         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
7724         * avr/avr.h: Remove old comments.
7725         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
7726         (CC1_SPEC): Pass -fsigned-char if -mic*.
7727         (SIGNED_CHAR_SPEC): Remove.
7728 doc:
7729         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
7730
7731 2002-02-01  Eric Christopher  <echristo@redhat.com>
7732
7733         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
7734         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
7735         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
7736         (ASM_OUTPUT_REG_POP): Ditto.
7737
7738 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7739
7740         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
7741         patch.
7742
7743 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7744
7745         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
7746
7747 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7748
7749         PR c/5304:
7750         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
7751         unconditionally.
7752
7753 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7754
7755         * cfganal.c: Include tm_p.h.
7756         (keep_with_call_p): Fix the test that determines if a register holds
7757         the return value of a call.
7758
7759 2002-02-01  DJ Delorie  <dj@redhat.com>
7760
7761         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
7762         we are given conflicting registers, switch to the other one we
7763         had allocated for us.
7764         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
7765         as TImode so we know when the "other" register is available.
7766
7767 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
7768
7769         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
7770         sparc/sparc_bi.h.
7771
7772 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7773
7774         * cfganal.c (keep_with_call_p): New function.
7775         (flow_call_edges_add): Prevent splitting a block between a call and
7776         a single-set instruction that should be kept in the same block.
7777
7778 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7779
7780         * doc/install.texi (avr): Update outdated URL.
7781
7782 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
7783
7784         * config/stormy16/stormy16.md (pushqi): New.
7785         (popqi): New.
7786         (pushhi): New.
7787         (pophi): New.
7788         (movhi): Remove stack operands.
7789         (movqi): Likewise.
7790         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
7791         nonimmediate_nonstack_operand.
7792         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
7793         New.
7794         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
7795         New.
7796
7797 2002-01-31  Jason Merrill  <jason@redhat.com>
7798
7799         * Makefile.in (c-parse.c): Handle .output file.
7800         * objc/Make-lang.in (objc-parse.c): Likewise.
7801
7802 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
7803
7804         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
7805         the -me[lb] option is given.  Don't output the default flag
7806         twice.
7807
7808 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
7809
7810         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
7811         the primary source file; this has not been done yet.
7812         * c-decl.c (c_expand_body): Reset input_filename from
7813         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
7814
7815 2002-01-31  Kazu Hirata  <kazu@hxi.com>
7816
7817         * rtlanal.c (subreg_regno_offset): Do not use
7818         SUBREG_REGNO_OFFSET.
7819         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
7820         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
7821
7822 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7823
7824         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
7825         version rather than GNATS version in --version output.
7826
7827 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
7828
7829         * ifcvt.c (noce_process_if_block): Make a copy of the destination
7830         when copying back from a temporary.
7831
7832 2002-01-30  Richard Henderson  <rth@redhat.com>
7833
7834         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
7835         and new_dest are the same.
7836
7837 2002-01-30  Richard Henderson  <rth@redhat.com>
7838
7839         PR opt/5076
7840         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
7841         * rtl.c (note_insn_name): Update.
7842         * emit-rtl.c (remove_unnecessary_notes): Kill it.
7843         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
7844         to perform loop rotation.
7845         (expand_exit_loop_top_cond): New.
7846         * tree.h (expand_exit_loop_top_cond): Declare it.
7847         * c-semantics.c (genrtl_while_stmt): Use it.
7848         (genrtl_for_stmt): Likewise.
7849
7850 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
7851
7852         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
7853         arguments to 64-bit boundaries on 64-bit ABIs.
7854
7855 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
7856
7857         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
7858
7859 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7860
7861         * c-decl.c (grokdeclarator): Handle type being a typedef for an
7862         invalid type.
7863
7864 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
7865
7866         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
7867         * config/sparc/sparc_bi.h: Remove file.
7868         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
7869
7870 2002-01-30  Richard Henderson  <rth@redhat.com>
7871
7872         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
7873
7874 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
7875
7876         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
7877
7878 2002-01-30  Jason Merrill  <jason@redhat.com>
7879
7880         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
7881         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
7882         (reg_save): Use DW_CFA_offset_extended_sf instead.
7883
7884         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
7885
7886 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7887
7888         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
7889         in cselib_lookup.
7890
7891 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
7892
7893         * rs6000.md ("*call_value_local32"): Remove constraints.
7894         ("*call_value_local64"): Same.
7895         ("*call_value_indirect_nonlocal_aix32"): Same.
7896         ("*call_value_nonlocal_aix32"): Same.
7897         ("*call_value_indirect_nonlocal_aix64"): Same.
7898         ("*call_value_nonlocal_aix64"): Same.
7899         ("*call_value_nonlocal_sysv"): Same.
7900
7901 2002-01-29  Richard Henderson  <rth@redhat.com>
7902
7903         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
7904
7905 2002-01-29  Richard Henderson  <rth@redhat.com>
7906
7907         * expr.c (force_operand): Ignore flag_pic for detecting pic
7908         address loads.
7909         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
7910         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
7911         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
7912         instead of open-coded loop.
7913         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
7914         be fixed when in use.
7915
7916 2002-01-29  Richard Henderson  <rth@redhat.com>
7917
7918         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
7919         * sched-rgn.c (propagate_deps): Update them.
7920         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
7921         clobbers list when either gets too long.
7922
7923 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7924
7925         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
7926         and INDEX_REGS the same as GENERAL_REGS.
7927         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
7928
7929 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7930
7931         * tree.c (build_nonstandard_integer_type): Correct prototype.
7932
7933 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
7934
7935         * config/s390/s390.md (movstrsico, movstrdix_64,
7936         movstrsix_31): Remove, replace by ...
7937         (movstrdi_short, movstrsi_short, movstrdi_long,
7938         movstrsi_long): ... these.  New.
7939         (movstrdi, movstrsi): Adapt.
7940
7941         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
7942         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
7943         Remove unnecessary CC clobber.
7944         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
7945         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
7946
7947         (divmoddi4): Don't partially initialize TImode register.
7948
7949 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
7950
7951         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
7952
7953 2002-01-29  Richard Henderson  <rth@redhat.com>
7954
7955         * flow.c (print_rtl_and_abort): Remove.
7956         (print_rtl_and_abort_fcn): Remove.
7957         (verify_local_live_at_start): Use dump_bb instead.
7958         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
7959         (verify_wide_reg_1): Return 2 on mode test failure.
7960
7961 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7962
7963         PR c/3325, c/3326, c/2511, c/3347
7964         * c-decl.c (enum_decl_context): Remove BITFIELD.
7965         (grokdeclarator): Take bitfield width as an input.
7966         Ensure bitfields are given the correct type.  Perform
7967         bitfield width validation with build_bitfield_integer_type
7968         rather than waiting for finish_struct.
7969         (grok_typename, grok_typename_in_parm_context, start_decl,
7970         push_parmdecl, grokfield, start_function): Update calls to
7971         grokdeclarator.
7972         (build_bitfield_integer_type): New function.
7973         (finish_struct): Move bitfield validation to grokdeclarator
7974         and build_bitfield_integer_type.
7975         * tree.c (build_nonstandard_integer_type): New function.
7976         * tree.h (build_nonstandard_integer_type): New prototype.
7977 objc:
7978         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
7979
7980 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7981
7982         PR other/1502:
7983         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
7984         don't ignore unrecognized -W* options.
7985         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
7986         * cpplib.h (cpp_handle_option): Adjust prototype.
7987         * c-decl.c (c_decode_options): Pass 0 as last argument to
7988         cpp_handle_option.
7989
7990         PR c/2896:
7991         * gcc.c (cpp_unique_options): Split from cpp_options.
7992         (cpp_options): Source cpp_unique_options.
7993         (default_compilers): Use cpp_unique_options instead of cpp_options
7994         when used together with cc1_options.
7995         (static_specs): Add cpp_unique_options.
7996         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
7997         when used together with cc1_options.
7998
7999 2002-01-29  Kazu Hirata  <kazu@hxi.com>
8000
8001         * config/h8300/h8300-protos.h: Update the prototype of
8002         output_a_shift.
8003         * config/h8300/h8300.c (output_a_shift): Remove an unused
8004         argument 'insn'.  Remove redundant code.
8005         * config/h8300/h8300.md: Adust to the new prototype of
8006         output_a_shift.
8007
8008 2002-01-29  Kazu Hirata  <kazu@hxi.com>
8009
8010         * config/h8300/h8300-protos.h: Update the prototypes of
8011         emit_a_rotate and expand_a_rotate.
8012         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
8013         first argument to 'enum rtx_code'.
8014         (expand_a_rotate): Likewise.
8015
8016 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8017
8018         * config/h8300/h8300-protos.h: Update the prototype of
8019         output_simode_bld.
8020         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
8021         'log2'.
8022         * config/h8300/h8300.md: Adjust to the new prototype.
8023
8024 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8025
8026         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
8027         redundant code.
8028
8029 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8030
8031         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
8032         is a fixed register before returning pic_offset_table_rtx.
8033         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
8034         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
8035
8036 2002-01-28  Jason Merrill  <jason@redhat.com>
8037
8038         * dwarf2.h: Sync with src version.
8039
8040 2002-01-28  Paul Koning  <pkoning@equallogic.com>
8041
8042         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
8043         BT_FN_VOID_PTR_VAR.
8044         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
8045         * doc/extend.texi (__builtin_prefetch): Update documentation:
8046         first argument is now const void ptr.
8047
8048 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8049
8050         * config/h8300/h8300-protos.h: Remove an unused prototype.
8051
8052 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
8053
8054         * toplev.c (lang_independent_init): Round up identifier size.
8055
8056 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
8057
8058         * config.gcc: Revert previous change.
8059
8060 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
8061
8062         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
8063
8064 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
8065
8066         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
8067         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
8068         other non-elf netbsd config frags.
8069         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
8070         collect2 will does that.
8071         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
8072         shared-lib frobbing will work.
8073
8074 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8075
8076         * config/h8300/h8300.h: Fix formatting.
8077         * config/h8300/h8300.md: Likewise.
8078
8079 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
8080
8081         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
8082         the old, removed AAA_standards fix.
8083         * fixinc/fixincl.x: Rebuilt.
8084
8085 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
8086
8087         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
8088         atexit call in crtbegin, hooked in after call to frame_dummy;
8089         register EH before registering __fini__start.
8090
8091 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
8092
8093         * config/rs6000/altivec.h: Remove spurious semicolons.
8094
8095 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8096
8097         * config/h8300/h8300.md: Replace dead bit extraction patterns
8098         with ones that work.
8099
8100 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8101
8102         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
8103         if not STRICT_ALIGNMENT.
8104         * rtl.h (MEM_ALIGN): Likewise.
8105
8106 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8107
8108         * doc/invoke.texi (-fdump-translation-unit): Revert this
8109         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8110
8111 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8112
8113         * config/h8300/h8300.md (define_constants): New.
8114         (anonymous patterns) Use defined constants appropriately.
8115
8116 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8117
8118         * config/h8300/h8300.c (function_arg): Remove redundant code.
8119
8120 2002-01-26  Richard Henderson  <rth@redhat.com>
8121
8122         * sched-deps.c (reg_pending_uses_head): New.
8123         (reg_pending_barrier): Rename from reg_pending_sets_all.
8124         (find_insn_list): Don't mark inline.
8125         (find_insn_mem_list): Remove.
8126         (add_dependence_list, add_dependence_list_and_free): New.
8127         (flush_pending_lists): Replace only_write param with separate
8128         for_read and for_write parameters.  Update all callers.  Use
8129         add_dependence_list_and_free.
8130         (sched_analyze_1): Do not add reg dependencies here; just set
8131         the pending bits.  Use add_dependence_list.
8132         (sched_analyze_2): Likewise.
8133         (sched_analyze_insn): Replace schedule_barrier_found with
8134         reg_pending_barrier.  Add all dependencies for pending reg
8135         uses, sets, and clobbers.
8136         (sched_analyze): Don't add reg dependencies for calls, just
8137         set pending bits.  Use regs_invalidated_by_call.  Treat
8138         sched_before_next_call as a normal list, not a fake insn.
8139         (init_deps): No funny init for sched_before_next_call.
8140         (free_deps): Free pending mems lists.  Don't zero reg_last.
8141         (init_deps_global): Init reg_pending_uses.
8142         (finish_deps_global): Free it.
8143         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
8144         (find_insn_mem_list): Remove.
8145         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
8146         (propagate_deps): Use them.  Zero temp mem lists.
8147
8148 2002-01-26  Richard Henderson  <rth@redhat.com>
8149
8150         * Makefile.in (CRTSTUFF_CFLAGS): New.
8151         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
8152         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
8153         crtstuff.c instead of alpha assembly version.
8154         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
8155         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
8156         not FORCE_{INIT,FINI}_SECTION_ALIGN.
8157         (__do_global_dtors_aux): Mark used.
8158         (frame_dummy, __do_global_ctors_aux): Mark used.
8159         (fini_dummy, init_dummy): Remove.
8160
8161         * config/alpha/crtbegin.asm: Remove file.
8162         * config/alpha/crtend.asm: Remove file.
8163         * config/alpha/t-crtbe: Remove file.
8164         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
8165         (LINK_EH_SPEC): New.
8166
8167         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
8168         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
8169         calling constructors.
8170         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
8171
8172         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
8173         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
8174         CRT_END_INIT_DUMMY hack.
8175         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
8176         FORCE_{INIT,FINI}_SECTION_ALIGN.
8177
8178         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
8179         FORCE_{INIT,FINI}_SECTION_ALIGN.
8180
8181         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
8182         invocation sequence.
8183         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
8184
8185         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
8186         (FORCE_CODE_SECTION_ALIGN): New.
8187
8188 2002-01-26  Richard Henderson  <rth@redhat.com>
8189
8190         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
8191
8192 2002-01-26  Richard Henderson  <rth@redhat.com>
8193
8194         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
8195         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
8196
8197 2002-01-26  Kazu Hirata  <kazu@hxi.com>
8198
8199         * config/h8300/h8300.md: Remove bit extraction patterns that
8200         cannot be triggered.
8201         Restrict each bit extraction pattern to a variant on which the
8202         pattern is tested.
8203
8204 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
8205
8206         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
8207
8208 2002-01-26  Kazu Hirata  <kazu@hxi.com>
8209
8210         * config/h8300/h8300.md: Remove bit test patterns that cannot
8211         be triggered.
8212         Restrict each bit test pattern to a variant on which the
8213         pattern is tested.
8214
8215 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8216
8217         * builtins.c (expand_builtin_strncat): Remove redundant check for
8218         INTEGER_CST.
8219
8220 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
8221
8222         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
8223         default setting.
8224         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
8225         existing setting.
8226
8227 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
8228
8229         * dbxout.c (dbxout_init): Use assemble_name rather than just
8230         stripping off the first character.
8231         (dbxout_source_file): Likewise.
8232
8233 2002-01-25  DJ Delorie  <dj@redhat.com>
8234
8235         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
8236         using rtx_equal_p, not by comparing pointers.
8237
8238 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
8239
8240         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
8241         for PIC_OFFSET_TABLE_REGNUM.
8242         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
8243
8244 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
8245
8246         * config.gcc (x86_64-*-freebsd*): New target.
8247         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
8248         value.
8249         (i[34567]86-*-freebsd*): Don't include svr4.h.
8250         * config/i386/freebsd64.h: New file.
8251
8252 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
8253
8254         * config/alpha/x-vms (version): Make static.
8255
8256         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
8257         in previous checkin.
8258
8259         * Makefile.in (install-headers-cp): New target.
8260         * config.gcc (alpha-dec-*vms*): Install headers with
8261         install-headers-cp
8262
8263 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
8264
8265         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
8266         avoid it's copies.
8267
8268 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8269
8270         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
8271         of compare_tree_int.
8272         (expand_builtin_strncat): Likewise.
8273         * c-decl.c (finish_struct): Use tree_low_cst.
8274         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
8275         * tree.c (compare_tree_int): Likewise.
8276
8277 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
8278
8279         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
8280         adjustments even if they are implemented by more than two insns.
8281
8282 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
8283
8284         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
8285         * df.h (struct ref): Kill B.
8286         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
8287
8288         * basic-block.h (PROP_EQUAL_NOTES): New flag.
8289         * flow.c (propagate_one_insn): Use it.
8290         (mark_used_regs): Handle NIL.
8291
8292 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
8293
8294         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
8295         to help folding.
8296
8297 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
8298
8299         * rs6000.md (prefetch): Make address V4SI mode so that the address
8300         is restricted to legitimate form for instruction.
8301
8302 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
8303
8304         * doc/install.texi (xtensa-*-elf): New target.
8305         (xtensa-*-linux*): New target.
8306         * doc/contrib.texi: Add myself.
8307
8308 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
8309
8310         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
8311         purpose register to hold an SImode (or smaller) value.
8312
8313 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
8314
8315         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
8316         registry only.
8317         * crtstuff.c: Likewise.
8318
8319 2002-01-25  Kazu Hirata  <kazu@hxi.com>
8320
8321         * config/h8300/h8300.md (negation patterns): Tighten
8322         predicates to register_operand.
8323
8324 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
8325
8326         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
8327         mode, not Pmode.
8328
8329         * builtins.c (expand_builtin_prefetch): Same.
8330
8331 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8332
8333         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
8334         modes.
8335
8336 2002-01-24  Kazu Hirata  <kazu@hxi.com>
8337
8338         * config/h8300/h8300.c (print_operand): Remove support for
8339         operand character 'A'.
8340         * config/h8300/h8300.md (three anonymous patterns): Replace
8341         operand character 'A' with either 'T' or 'S'.
8342
8343 2002-01-24  Kazu Hirata  <kazu@hxi.com>
8344
8345         * config/h8300/h8300.c (print_operand): Remove support for
8346         operand character 'U'.
8347
8348 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
8349
8350         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
8351
8352 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
8353
8354         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
8355         values to be assigned to the stack pointer.
8356
8357 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
8358
8359         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
8360         to const_double needs to be done right for big-endian systems.
8361
8362 2002-01-24  Jason Merrill  <jason@redhat.com>
8363
8364         PR c++/2432
8365         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
8366         to can_throw_internal.
8367
8368 2002-01-23  Richard Henderson  <rth@redhat.com>
8369
8370         * fold-const.c (fold): Change UINT_MAX test to check vs precision
8371         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
8372
8373 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8374
8375         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
8376         (symGOT2reg): Use them, then set as GOT value as unchanging.
8377         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
8378         as a temporary, if possible.
8379         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
8380         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
8381
8382 2002-01-23  Kazu Hirata  <kazu@hxi.com>
8383
8384         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
8385         accept to accept 0x80 as operands[2].
8386
8387 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8388
8389         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
8390
8391 2002-01-23  Richard Henderson  <rth@redhat.com>
8392
8393         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
8394
8395 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
8396
8397         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
8398         (parmlist_or_identifiers_1): Verify that only a parmlist follows
8399         an attribute.
8400
8401 2002-01-23  Richard Henderson  <rth@redhat.com>
8402
8403         * expr.c (move_by_pieces_1): Extend size before negation.
8404
8405         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
8406         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
8407         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
8408         * config/m68k/t-m68kelf: Likewise.
8409
8410 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
8411
8412         * config/xtensa/elf.h: New file.
8413         * config/xtensa/lib1funcs.asm: New file.
8414         * config/xtensa/lib2funcs.S: New file.
8415         * config/xtensa/linux.h: New file.
8416         * config/xtensa/t-xtensa: New file.
8417         * config/xtensa/xtensa-config.h: New file.
8418         * config/xtensa/xtensa-protos.h: New file.
8419         * config/xtensa/xtensa.c: New file.
8420         * config/xtensa/xtensa.h: New file.
8421         * config/xtensa/xtensa.md: New file.
8422         * config.gcc (xtensa-*-elf*): New target.
8423         (xtensa-*-linux*): New target.
8424         * cse.c (canon_hash): Compare rtx pointers instead of register
8425         numbers.  This is required for the Xtensa port.
8426         * integrate.c (copy_insn_list): Handle case where the static
8427         chain is in memory and the memory address has to be copied to
8428         a register.
8429         * doc/invoke.texi (Option Summary): Add Xtensa options.
8430         (Xtensa Options): New node.
8431         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
8432
8433 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
8434
8435         * diagnostic.c (internal_error): Do ICE suppression only
8436         when ENABLE_CHECKING is not defined.
8437
8438         * c-typeck.c (require_complete_type): Return error_mark_node
8439         if type is error_mark_node.
8440
8441 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
8442
8443         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
8444         -Os and issue a warning.
8445
8446 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
8447
8448         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
8449         current (lack of) need for host configuration by hand.
8450
8451         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
8452         references.  Documentation of some target macros moved from
8453         hostconfig.texi to tm.texi.
8454
8455 2002-01-23  Will Cohen  <wcohen@redhat.com>
8456
8457         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
8458         defined.
8459
8460 2002-01-23  Kazu Hirata  <kazu@hxi.com>
8461
8462         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
8463         operand[3].
8464
8465 2002-01-23  Jason Merrill  <jason@redhat.com>
8466
8467         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
8468
8469         * function.c (assign_parms): Don't put args of inline functions
8470         into registers when not optimizing.
8471
8472 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
8473
8474         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
8475         (prologue_use): New pattern.
8476         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
8477         preference to gen_rtx_USE.
8478         (thumb_expand_prologue): Use gen_prologue_use in preference to
8479         gen_rtx_USE.
8480         (thumb_expand_epilogue): Use gen_prologue_use in preference to
8481         gen_rtx_USE.
8482
8483 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
8484
8485         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
8486
8487 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
8488
8489         PR c/3504
8490         * doc/extend.texi: Correct documentation of __alignof__.
8491
8492 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
8493
8494         * params.h: Rename arguments of DEFPARAM so that it will be
8495         recognized as a translation keyword.
8496
8497 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8498
8499         * extend.texi: Document altivec functions.
8500         Fix N-bit adjectives in X86 builtin documentation.
8501
8502 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
8503
8504         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
8505         auto_inc_dec values.
8506
8507 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
8508
8509         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
8510         after backslash.
8511         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
8512
8513 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
8514
8515         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
8516
8517 2002-01-22  Richard Henderson  <rth@redhat.com>
8518
8519         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
8520         copy_insn not copy_rtx.
8521
8522 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
8523
8524         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
8525         "nonzero" as that might add "1" bits.  Ensure "constop" is
8526         properly sign extened.
8527         (force_to_mode): Tweak for sign extended constop.
8528
8529 2002-01-22  Richard Henderson  <rth@redhat.com>
8530
8531         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
8532         for_each_rtx instead of assuming we're already looking at the MEM.
8533         (split_small_symbolic_mem_operand): Likewise.
8534         * config/alpha/alpha.h (PREDICATE_CODES): Update.
8535         * config/alpha/alpha.md (small symbolic memory splitters): Update.
8536
8537 2002-01-22  Richard Henderson  <rth@redhat.com>
8538
8539         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
8540         sequence number for the literal.
8541         (divmoddi_internal_er): Likewise.
8542
8543 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8544
8545         PR java/4972
8546         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
8547         in LIBICONV variable.
8548         * configure: Regenerated.
8549
8550 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
8551
8552         * dependence.c (build_def_use): Remove array_idx.
8553
8554         * dwarfout.c (last_filename): Remove.
8555         (output_compile_unit_die): Remove last_filename.
8556
8557 2002-01-22  Roger Sayle  <roger@eyesopen.com>
8558             Richard Henderson  <rth@redhat.com>
8559
8560         PR opt/3640
8561         * fold-const.c (fold): Optimize unsigned comparisons against
8562         UINT_MAX (and similar unsigned constants).
8563
8564 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
8565
8566         * Makefile.in (loop.o): Depend on OPTABS_H.
8567         * loop.c (emit_prefetch_instructions): Check the prefetch operand
8568         against the predicate.
8569
8570         PR target/5379
8571         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
8572         for the address operand.
8573
8574 2002-01-22  Richard Henderson  <rth@redhat.com>
8575
8576         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
8577
8578 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8579
8580         PR other/5450
8581         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
8582         preprocessor flags.
8583
8584 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
8585
8586         * config.gcc (x86_64-*-netbsd*): New target.
8587         * config/i386/netbsd64.h: New file.
8588
8589 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8590
8591         * regrename.c (kill_value): Fix typo.
8592
8593 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8594
8595         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
8596
8597         * config/rs6000/rs6000.h: Same.
8598
8599         * function.c (instantiate_virtual_regs): Remove
8600         STARTING_FRAME_PHASE.
8601         (assign_stack_local_1): Same.
8602         Calculate frame phase.
8603
8604 2002-01-22  Nick Clifton  <nickc@redhat.com>
8605
8606         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
8607         variable declaration to outer scope in order to simplify
8608         future extensions.
8609         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
8610         arm_hard_regno_mode_ok.
8611         * config/arm/arm-protos.h: Add a prototype for
8612         arm_hard_regno_mode_ok.
8613         * config/arm/arm.c (soft_df_operand): Remove now redundant
8614         check for DImode values using IP_REGNUM.
8615         (nonimmediate_soft_df_operand): Remove now redundant check for
8616         DImode values using IP_REGNUM.
8617         (arm_hard_regno_mode_ok): New function. New check: make sure
8618         that DImode values are not stored in IP_REGNUM.
8619
8620         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
8621         note with a USE.
8622         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
8623
8624 2002-01-22  Jason Merrill  <jason@redhat.com>
8625
8626         * c-semantics.c (genrtl_compound_stmt): Only check nesting
8627         consistency if this COMPOUND_STMT is scoped.
8628
8629 2002-01-22  Kazu Hirata  <kazu@hxi.com>
8630
8631         * predict.c: Fix formatting.
8632         * print-tree.c: Likewise.
8633         * protoize.c: Likewise.
8634         * real.h: Likewise.
8635         * rtl.h: Likewise.
8636         * sbitmap.h: Likewise.
8637         * scan.c: Likewise.
8638         * sched-deps.c: Likewise.
8639         * sched-vis.c: Likewise.
8640         * sdbout.c: Likewise.
8641         * sibcall.c: Likewise.
8642         * ssa.c: Likewise.
8643         * ssa-ccp.c: Likewise.
8644         * ssa-dce.c: Likewise.
8645         * stmt.c: Likewise.
8646         * stor-layout.c: Likewise.
8647         * system.h: Likewise.
8648
8649 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8650
8651         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
8652         if fits in bounds of base type.
8653
8654         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
8655         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
8656         (add_bound_info, default): If can't find a context, make a
8657         SAVE_EXPR.
8658         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
8659
8660 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
8661
8662         * c-typeck.c (parser_build_binary_op): If result from
8663         build_binary_op is ERROR_MARK just return error_mark_node without
8664         further processing.
8665
8666 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
8667
8668         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
8669         Split a.out-specific bits into...
8670         * config/netbsd-aout.h: ...this.
8671         * config/netbsd-elf.h: New file.
8672         * config/alpha/netbsd-elf.h: Remove.
8673         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
8674         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
8675         (STARTFILE_SPEC): Remove redundant definition.
8676         (ENDFILE_SPEC): Likewise.
8677         (LINK_SPEC): Likewise.
8678         (CPP_SPEC): Likewise.
8679         (ASM_SPEC): Likewise.
8680         (LIB_SPEC): Likewise.
8681         (SWITCH_TAKES_ARG): Likewise.
8682         (TARGET_MEM_FUNCTIONS): Likewise.
8683         (CPP_PREDEFINES): Redefine.
8684         (ASM_FINAL_SPEC): Remove redefinition.
8685         (ASM_COMMENT_START): Redefine.
8686         (FUNCTION_PROFILER): Define.
8687         (TARGET_VERSION): Redefine.
8688         Comment and formatting cleanup.
8689         * config/i386/netbsd.h: Include <netbsd-aout.h>.
8690         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
8691         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
8692         big- or little-endian.
8693         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
8694         * config.gcc (*-*-netbsd*): Add definitions common to all
8695         NetBSD configs.
8696         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
8697         gnu_ld definitions.  Add netbsd-elf.h to and remove
8698         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
8699         tmake_file, and don't lose previous tmake_file contents.
8700         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
8701         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
8702         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
8703         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
8704         (mipsel-*-netbsd*): Rename this to...
8705         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
8706         mips/little.h to tm_file for mips*el-*.
8707         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
8708         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
8709         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
8710
8711 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8712
8713         * pa-protos.h (reg_before_reload_operand): New function prototype.
8714         * pa.c (reg_before_reload_operand): New function implementation.
8715         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
8716         contraints to "*m".
8717
8718 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8719
8720         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
8721
8722 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8723
8724         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
8725         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
8726         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
8727         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
8728         (ENDFILE_SPEC): Undefine.
8729         (STARTFILE_SPEC): Redefine for PA.
8730
8731 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8732
8733         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
8734
8735 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
8736
8737         * config.gcc: Add entries to supported PowerPC --with-cpu
8738         types.
8739
8740 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
8741
8742         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
8743         true for 64-bit mode only SSE registers in 32-bit mode.
8744
8745 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8746
8747         * unwind-dw2.c: Fix formatting.
8748         * unwind-dw2-fde.c: Likewise.
8749         * unwind-dw2-fde.h: Likewise.
8750         * unwind-pe.h: Likewise.
8751         * varasm.c: Likewise.
8752         * varray.h: Likewise.
8753
8754 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
8755
8756         Remove workaround for register stack overwrite bug in mmix.
8757         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
8758         support for TARGET_REG_STACK_FILL_BUG.
8759         * config/mmix/mmix.h: Remove member has_call_without_parameters.
8760         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
8761         Delete.
8762         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
8763         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
8764         -mno-reg-stack-fill-bug-workaround.
8765         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
8766         machine member has_call_without_parameters.
8767         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
8768         -mreg-stack-fill-bug-workaround and
8769         -mno-reg-stack-fill-bug-workaround.
8770         (MMIX Options): Ditto.
8771
8772 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8773
8774         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
8775         as appropriate.
8776         Remove redundant code.
8777
8778 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8779
8780         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
8781         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8782         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
8783         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
8784         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
8785         out target macro definitions and non-target-specific comments
8786         mostly taken from old versions of the manual.
8787
8788 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8789
8790         * config/h8300/h8300.h: Fix comment formatting.
8791         * config/ia64/aix.h: Likewise.
8792         * config/ia64/ia64-protos.h: Likewise.
8793         * config/ia64/ia64.c: Likewise.
8794         * config/ia64/ia64.h: Likewise.
8795         * config/ia64/ia64intrin.h: Likewise.
8796         * config/ia64/linux.h: Likewise.
8797         * config/ia64/unwind-aix.c: Likewise.
8798         * config/ia64/unwind-ia64.c: Likewise.
8799
8800 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8801
8802         * config/h8300/h8300.c: Revise comments about shift code.
8803
8804 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8805
8806         * config/h8300/h8300.c (function_arg): Update a comment.
8807
8808 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8809
8810         * config/h8300/h8300.md: Update the comments at the beginning
8811         of the file.
8812
8813 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8814
8815         * config/i370/i370.c: Fix comment formatting.
8816         * config/i370/i370.h: Likewise.
8817         * config/i370/i370.md: Likewise.
8818         * config/i370/linux.h: Likewise.
8819
8820 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8821
8822         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
8823
8824         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
8825         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
8826         in incomplete case.
8827
8828 2002-01-20  Graham Stott  <grahams@redhat.com>
8829
8830         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
8831
8832 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8833
8834         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
8835
8836 2002-01-19  Tom Rix  <trix@redhat.com>
8837
8838         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
8839
8840 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
8841
8842         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
8843
8844         * function.c (assign_stack_local_1): Adjust x_frame_offset with
8845         STARTING_FRAME_PHASE.
8846         (STARTING_FRAME_PHASE): New.
8847         (instantiate_virtual_regs): Check saneness of
8848         STARTING_FRAME_PHASE.
8849
8850         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
8851
8852 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
8853
8854         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
8855
8856 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8857
8858         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
8859         be used for bootstrapping GCC 3.0.
8860
8861 2002-01-18  Kazu Hirata  <kazu@hxi.com>
8862
8863         * config/h8300/h8300.md: Fix an insn length.
8864
8865 2002-01-18  Kazu Hirata  <kazu@hxi.com>
8866
8867         * bitmap.h: Fix comment formatting.
8868         * combine.c: Likewise.
8869         * cppfiles.c: Likewise.
8870         * c-pragma.h: Likewise.
8871         * c-typeck.c: Likewise.
8872         * df.c: Likewise.
8873         * dwarf2out.c: Likewise.
8874         * function.c: Likewise.
8875         * gcc.c: Likewise.
8876         * genattrtab.c: Likewise.
8877         * gthr-win32.h: Likewise.
8878         * haifa-sched.c: Likewise.
8879         * predict.c: Likewise.
8880         * rtlanal.c: Likewise.
8881         * rtl.h: Likewise.
8882         * unwind-dw2-fde.h: Likewise.
8883         * unwind-pe.h: Likewise.
8884         * vmsdbgout.c: Likewise.
8885
8886 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8887
8888         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
8889         if type_required and passed decl.
8890
8891 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
8892
8893         * config.gcc (cpu_type): Include altivec.h in powerpc
8894         extra_headers.
8895         Same for darwin.
8896
8897         * config/rs6000/altivec.h: New.
8898
8899 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
8900
8901         * doc/install.texi (*-ibm-aix*): Update assembler and exception
8902         handling information.
8903         * doc/trouble.texi (Interoperation): Add libstdc++ information
8904         for AIX.
8905         (Misunderstandings): Add template instantiation and static template
8906         member information for AIX.
8907
8908 2002-01-17  Jason Merrill  <jason@redhat.com>
8909
8910         * dbxout.c (dbxout_type): Support const and volatile.
8911
8912         * except.c (add_partial_entry): Remove backwards compatibility code.
8913         (end_protect_partials): Likewise.
8914
8915 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
8916
8917         * config/ia64/ia64.md (prologue_use): New.
8918         * config/ia64/ia64.c (ia64_expand_prologue): Use
8919         gen_prologue_use instead of gen_rtx_USE.
8920         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
8921         as CODE_FOR_pred_rel_mutex.
8922         (ia64_sched_reorder2): Likewise.
8923
8924 2002-01-16  Eric Christopher  <echristo@redhat.com>
8925
8926         * config/mips/r3900.h: Reformat.
8927         (SUBTARGET_CPP_SIZE_SPEC): Remove.
8928         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
8929         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
8930         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
8931         * config/mips/t-elf: Remove mips3 multilib.
8932
8933 2002-01-16  H.J. Lu <hjl@gnu.org>
8934
8935         * config/mips/linux.h: Include "mips/abi64.h".
8936
8937 2002-01-16  H.J. Lu <hjl@gnu.org>
8938
8939         * config/mips/t-linux: New.
8940
8941         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
8942
8943         * config/mips/linux.h: Don't include "gofast.h".
8944         (INIT_SUBTARGET_OPTABS): Removed.
8945
8946 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8947
8948         * config/h8300/h8300-protos.h: Replace emit_a_shift with
8949         output_a_shift.
8950         * config/h8300/h8300.c: Likewise.
8951         * config/h8300/h8300.md: Likewise.
8952
8953 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8954
8955         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
8956         spaces after an opcode name.
8957         (pushqi1_h8300hs): Likewise.
8958         (pushhi1_h8300hs): Likewise.
8959
8960 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8961
8962         * doc/extend.texi: Replace "option" with "attribute"
8963         appropriately.
8964
8965 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
8966
8967         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
8968         (and:DI () (const_int -8)).
8969         (split_small_symbolic_mem_operand): Split
8970         (mem (and:DI () (const_int -8)).
8971
8972 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
8973
8974         PR target/5309:
8975         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
8976         same way as TYPE_IMUL.
8977         (ultrasparc_sched_reorder): Likewise.
8978         * config/sparc/sparc.md (type): Add comment to update
8979         ultrasparc_sched_reorder when making changes.
8980
8981 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8982
8983         * doc/invoke.texi: Change the dump file name of block
8984         reordering pass from 28.bbro to 29.bbro.
8985         Mention -dk option.
8986
8987 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
8988
8989         * i386.md (minsf splitter): Fix pasto.
8990
8991 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
8992
8993         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
8994         to frame pointer initialisation instruction.
8995         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
8996         initialisation instruction.
8997         (soft_df_operand): Do not accept the IP register.
8998         (nonimmediate_soft_df_operand): Do not accept the IP register.
8999
9000 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
9001
9002         PR target/5357:
9003         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
9004         MASK_V8 being both set.
9005
9006 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
9007
9008         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
9009         insn for GOT register; add REG_MAYBE_DEAD notes instead.
9010         config/s390/s390.md (call, call_value): Add GOT register to
9011         CALL_INSN_FUNCTION_USAGE where needed.
9012         (call_exp, call_value_exp): New.
9013
9014 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
9015
9016         * config/arm/arm.c: General formatting tidy up.
9017
9018 2002-01-16  Graham Stott  <grahams@redhat.com>
9019
9020         * calls.c (try_to_integrate): Use "(size_t)" intermediate
9021         cast and when casting an integer literal to "rtx" pointer.
9022         (expand_call): Likewise.
9023         * flow.c (try_pre_increment): Likewise.
9024         (find_use_as_address): Likewise.
9025         * integrate.c (expand_iline_function): Likewise.
9026         * regmove.c (try_auto_increment): Likewise.
9027
9028 2002-01-16  Graham Stott  <grahams@redhat.com>
9029
9030         * sched-rgn.c (passed): Use sbitmap_free.
9031         (header): Likewise.
9032         (inner): Likewise.
9033         (in_queue): Likewise.
9034         (in_stack): Likewise.
9035
9036 2002-01-15  Eric Christopher  <echristo@redhat.com>
9037
9038         * flow.c (propagate_one_insn): Change to use fatal_insn.
9039
9040 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9041
9042         * expmed.c (extract_fixed_bit_field): Remove unused code.
9043         * system.h: Poison SLOW_ZERO_EXTEND.
9044         * doc/tm.texi: Remove.
9045         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
9046         * config/arm/arm.h: Likewise.
9047         * config/avr/avr.h: Likewise.
9048         * config/clipper/clipper.h: Likewise.
9049         * config/convex/convex.h: Likewise.
9050         * config/d30v/d30v.h: Likewise.
9051         * config/dsp16xx/dsp16xx.h: Likewise.
9052         * config/elxsi/elxsi.h: Likewise.
9053         * config/fr30/fr30.h: Likewise.
9054         * config/h8300/h8300.h: Likewise.
9055         * config/i370/i370.h: Likewise.
9056         * config/i386/i386.h: Likewise.
9057         * config/m68k/m68k.h: Likewise.
9058         * config/mips/mips.h: Likewise.
9059         * config/ns32k/ns32k.h: Likewise.
9060         * config/pdp11/pdp11.h: Likewise.
9061         * config/pj/pj.h: Likewise.
9062         * config/s390/s390.h: Likewise.
9063         * config/sh/sh.h: Likewise.
9064         * config/stormy16/stormy16.h: Likewise.
9065         * config/v850/v850.h: Likewise.
9066         * config/vax/vax.h: Likewise.
9067         * config/we32k/we32k.h: Likewise.
9068
9069 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
9070
9071         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
9072         (altivec_lvsl): Change constraint to b.
9073         (altivec_lvsr): Same.
9074         (altivec_lvebx): Same.
9075         (altivec_lvehx): Same.
9076         (altivec_lvewx): Same.
9077         (altivec_lvxl): Same.
9078         (altivec_lvx): Same.
9079         (altivec_stvx): Add parallel.
9080         (altivec_stvxl): Same.
9081         (altivec_stvehx): Same.
9082         (altivec_stvebx): Same.
9083         (altivec_stvebx): Same.
9084
9085 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
9086
9087         * config.gcc: Change altivec.h to altivec-defs.h.
9088
9089         * config/rs6000/altivec.h: Delete.
9090
9091         * config/rs6000/altivec-defs.h: Add.
9092
9093 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9094
9095         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
9096         and UMOD modes.
9097
9098         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
9099         less than or equal to eight bytes.
9100
9101         * vax.md (andsi3): Remove constraints and change SET destination
9102         operand type to nonimmediate_operand.
9103         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
9104         when it is a CONST_INT.
9105
9106 2002-01-15  Jason Merrill  <jason@redhat.com>
9107
9108         * c-common.def (FILE_STMT): New code.
9109         * c-common.c (statement_code_p): It's a statement.
9110         * c-common.h (stmt_tree_s): Add x_last_filename.
9111         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
9112         (last_expr_filename): New macro.
9113         * c-semantics.c (begin_stmt_tree): Initialize it.
9114         (add_stmt): If the filename changed, also insert a
9115         FILE_STMT.
9116         (expand_stmt): Handle seeing one.
9117
9118 2002-01-15  Eric Christopher  <echristo@redhat.com>
9119
9120         * flow.c (propagate_one_insn): Add error message and print out
9121         insn for debugging.
9122
9123 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
9124
9125         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
9126         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
9127         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
9128         TRAMPOLINE_ALIGNMENT.
9129         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
9130         to be in bits.
9131         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
9132         PCC_BITFIELD_TYPE_MATTERS.
9133         * config/interix.h (STDC_VALUE): Remove.  Use
9134         STDC_0_IN_SYSTEM_HEADERS.
9135         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
9136         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
9137         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
9138
9139 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9140
9141         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
9142         not work on this platform currently.
9143
9144 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
9145
9146         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
9147         readonly_warning in _().
9148
9149 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
9150
9151         * gcc.c (delete_if_ordinary): Backout previous change.
9152
9153 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9154
9155         * config/h8300/h8300.c (print_operand): Remove support for
9156         unused operand characters.
9157
9158         * read-rtl.c: Fix formatting.
9159         * real.c: Likewise.
9160         * recog.c: Likewise.
9161         * regclass.c: Likewise.
9162         * regmove.c: Likewise.
9163         * reg-stack.c: Likewise.
9164         * reload1.c: Likewise.
9165         * rtlanal.c: Likewise.
9166
9167 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9168
9169         * config/i386/i386.c: Fix formatting.
9170
9171 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
9172
9173         * c-typeck.c (process_init_element): Don't save_expr
9174         COMPOUND_LITERAL_EXPR if just its initializer will be used.
9175
9176 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
9177
9178         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
9179         emit optional traceback table if optimize_size or TARGET_ELF.
9180         * config/rs6000/rs6000.md (prefetch): New.
9181
9182 2002-01-15  Andreas Jaeger  <aj@suse.de>
9183
9184         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
9185
9186 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9187
9188         * mips-tfile.c: Fix formatting.
9189
9190 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
9191
9192         * unroll.c (final_reg_note_copy): Fix previous commit.
9193
9194 2002-01-14  Kazu Hirata  <kazu@hxi.com>
9195
9196         * config/h8300/h8300-protos.h: Remove the prototype for
9197         eq_operator.
9198         * config/h8300/h8300.c (eq_operator): Remove.
9199
9200 2002-01-14  Richard Henderson  <rth@redhat.com>
9201
9202         * config/i386/i386.md (prefetch): Tidy.
9203         (prefetch_3dnow): Fix locality operand.
9204
9205 2002-01-14  Richard Henderson  <rth@redhat.com>
9206
9207         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
9208         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
9209
9210 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
9211
9212         * reload1.c (reload_combine): Pass reg_sum replacement through
9213         copy_rtx in loop performing multiple changes.
9214
9215 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
9216
9217         * except.c (remove_unreachable_regions): New.
9218         (free_eh_status): Clear exception_handler_labels.
9219         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
9220         (find_exception_handler_labels): Don't add the same label more than
9221         once.
9222         (remove_exception_handler_label): Don't die if
9223         find_exception_handler_labels hasn't been called for the current
9224         function yet.
9225
9226 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
9227
9228         * toplev.c (rest_of_compilation): Rebuild jump labels after
9229         gcse.
9230
9231 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
9232
9233         * doc/extend.texi: Move documentation of X86 built-in functions
9234         here.
9235         * doc/invoke.texi: From here.
9236         * doc/sourcebuild.texi: Document location of documentation for
9237         machine built-in functions.
9238
9239 2002-01-13  Christopher Faylor  <cgf@redhat.com>
9240
9241         * cppfiles.c (TEST_THRESHOLD): New macro.
9242         (SHOULD_MMAP): Ditto.
9243         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
9244         be used.
9245
9246 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
9247
9248         * unroll.c (final_reg_note_copy): Properly handle
9249         REG_LABEL
9250         (unroll_loops): Fix LOOP_CONDITION heuristics.
9251
9252 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
9253
9254         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
9255         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
9256
9257 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9258
9259         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
9260         threaded loop.
9261
9262 2002-01-14  Tom Rix  <trix@redhat.com>
9263
9264         * config/rs6000/rs6000.md: Fix typo with sradi.
9265
9266 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
9267
9268         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
9269         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
9270         (clrstrdi, clrstrsi): Adapt callers.
9271
9272         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
9273
9274         (movti splitter): Never use register 0 as base register.
9275
9276 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
9277
9278         * combine.c (simplify_shift_const): Always generate new rtx
9279         for shift expression instead of reusing given expression.
9280
9281 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9282
9283         * config/alpha/alpha.c (alpha_expand_mov): Don't call
9284         alpha_legitimize_address unless mode is Pmode.
9285
9286 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
9287
9288         * doc/md.texi (Modifiers): Document the '*' constraint for the
9289         user.
9290
9291         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
9292         * doc/extend.texi (Function Attributes): 'interrupt' is valid
9293         for xstormy16 too.
9294
9295 2002-01-13  Richard Henderson  <rth@redhat.com>
9296
9297         * reload.c (find_reloads): Use a hard reg destination as reload reg
9298         for an input reload of the source.
9299
9300 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9301
9302         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
9303         more generic.
9304
9305 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
9306
9307         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
9308         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
9309
9310         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
9311
9312 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9313
9314         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
9315
9316 2002-01-12  Tom Rix  <trix@redhat.com>
9317
9318         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
9319         TARGET_POWERPC64.
9320
9321 2002-01-12  Richard Henderson  <rth@redhat.com>
9322
9323         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
9324
9325         * doc/invoke.texi: Update Alpha options.
9326
9327         * doc/invoke.texi: Update i386 built-in function lists.
9328
9329 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
9330
9331         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
9332         referencing outside.
9333
9334 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9335
9336         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
9337         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
9338         offsets, and change line folding.
9339         * optabs.c (expand_binop): Remove warnings.
9340         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
9341
9342 2002-01-12  Graham Stott <grahams@redhat.com>
9343
9344         * attribs.c (handle_deprecated_attribute): constify WHAT.
9345         * diagnostic.c (warn_deprecated_use): Add braces, fixes
9346         dangling else warning and constify WHAT.
9347         * except.h (struct function, struct inline_remap): Move
9348         struct tag forward defs before all prototypes.
9349         (duplicate_eh_regions): Whitespace.
9350
9351 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
9352
9353         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
9354         MODE_BASE_REG_CLASS.
9355         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
9356
9357 2002-01-12  Richard Henderson  <rth@redhat.com>
9358
9359         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
9360         (ix86_expand_vector_move): New.
9361         (bdesc_2arg): Remove andps, andnps, orps, xorps.
9362         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
9363         Remove old prefetch builtins.  Special case the logicals removed above.
9364         (ix86_expand_builtin): Likewise.
9365         (safe_vector_operand): Use V4SFmode, not TImode.
9366         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
9367         (ix86_expand_timode_binop_builtin): New.
9368         * config/i386/i386-protos.h: Update.
9369         * config/i386/i386.h (enum ix86_builtins): Update.
9370         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
9371         Use ix86_expand_vector_move in vector move expanders.
9372         (movti_internal, movti_rex64): Add xorps alternative.
9373         (sse_clrv4sf): Rename and adjust from sse_clrti.
9374         (prefetch): Don't work so hard.
9375         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
9376         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
9377         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
9378
9379 2002-01-11  Richard Henderson  <rth@redhat.com>
9380
9381         * config/i386/mmintrin.h: New file.
9382         * config/i386/xmmintrin.h: New file.
9383         * config.gcc (i?86-*-*): Add extra_headers.
9384         * simplify-rtx.c (simplify_unary_operation): Handle saturating
9385         truncation codes.
9386         (simplify_binary_operation): Handle saturating arithmetic codes.
9387         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
9388         not the lowpart subreg.
9389         (ix86_expand_builtin): Return a TImode dummy register instead of 0
9390         on error.
9391         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
9392
9393 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9394
9395         * conflict.c (conflict_graph_compute): Free regsets when finished.
9396         * ssa.c (compute_coalesced_reg_partition): Likewise.
9397
9398 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9399
9400         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
9401         every where we allocate a register.
9402
9403 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9404
9405         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
9406         * lcm.c (compute_earliest, compute_farthest): Likewise.
9407
9408 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
9409
9410         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
9411
9412 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
9413
9414         * doc/rtl.texi (Insns): Fix 2 typos.
9415
9416 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
9417
9418         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
9419         options.  Use @table @gcctabopt for MMIX options.  Add index
9420         entries for MMIX options.  Start new paragraph with first
9421         heading of the machine-dependent options.
9422
9423 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9424
9425         PR other/5299
9426         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
9427         * combine.c (force_to_mode): Same.
9428         * reload1.c (clear_reload_reg_in_use): Same.
9429
9430 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
9431
9432         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
9433         and 'subtargets'.
9434
9435 2002-01-11  Andreas Jaeger  <aj@suse.de>,
9436             Brad Lucier <lucier@math.purdue.edu>
9437
9438         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
9439         mcpu.
9440
9441 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
9442
9443         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
9444         Protect with IN_LIBGCC.
9445         (LINK_EH_SPEC): Add required trailing space.
9446
9447 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9448
9449         * c-tree.h: Move function declarations so that they are listed
9450         under the filename which contains them.
9451         (check_identifier, finish_decl_top_level,
9452         lookup_name_current_level_global, shadow_record_fields): Remove.
9453
9454 2002-01-11  Andreas Jaeger  <aj@suse.de>
9455
9456         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
9457         march.
9458
9459 2002-01-10  Richard Henderson  <rth@redhat.com>
9460
9461         * config/alpha/alpha.c (print_operand): Add 'J'.
9462         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
9463         new operand with the sequence number for the lituse.  When splitting
9464         the insns, use gen_movdi_er_high_g and generate a sequence number.
9465         (gen_movdi_er_high_g): Print the sequence number if non-zero.
9466
9467 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
9468
9469         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
9470         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
9471         stvxl.
9472         (altivec_expand_builtin): Same.
9473         (altivec_expand_stv_builtin): New.
9474
9475         * config/rs6000/rs6000.h (rs6000_builtins): Same.
9476
9477         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
9478         ("altivec_lvehx"): New.
9479         ("altivec_lvewx"): New.
9480         ("altivec_lvxl"): New.
9481         ("altivec_lvx"): New.
9482         ("altivec_stvx"): New.
9483         ("altivec_stvebx"): New.
9484         ("altivec_stvehx"): New.
9485         ("altivec_stvewx"): New.
9486         ("altivec_stvxl"): New.
9487
9488 2002-01-10  Richard Henderson  <rth@redhat.com>
9489
9490         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
9491         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
9492         care not to delete instructions twice.
9493
9494 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
9495
9496         * toplev.c: Don't declare environ (it's not used anywhere).
9497         * configure.in: Don't check for declaration of environ.
9498         * config/i386/xm-mingw32.h: Don't #define environ.
9499         * config.in, configure: Regenerate.
9500
9501 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
9502
9503         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
9504         * configure: Regenerate.
9505
9506         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
9507         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
9508         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
9509         alpha/xm-vms.h.
9510         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
9511         LIMITS_H_TEST here, not in m68k/x-next.
9512         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
9513         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
9514
9515         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
9516         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
9517         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
9518
9519         * config/i386/x-djgpp: Renamed i386/t-djgpp.
9520         * config/m88k/x-dolph: Renamed m88k/t-dolph.
9521         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
9522         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
9523         replacement of quadlib.asm with quadlib.c.
9524
9525         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
9526         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
9527         config/rs6000/xm-beos.h: Delete file.
9528
9529         * config.gcc: Update to match above changes.
9530
9531 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9532
9533         * config/h8300/h8300.h: Fix comment typos.
9534         * config/h8300/h8300.md: Likewise.
9535         * config/h8300/lib1funcs.asm: Likewise.
9536
9537 2002-01-10  Dale Johannesen  <dalej@apple.com>
9538
9539         PR optimization/5269
9540         * unroll.c (precondition_loop_p): Make *increment be the correct
9541         sign when n_iterations known, to avoid confusing caller.
9542
9543 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9544
9545         * doc/extend.texi (deprecated): Fix a typo.
9546
9547 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9548
9549         * basic-block.h (update_br_prob_note): Declare.
9550         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
9551         (try_forward_edges): Care negative frequencies and update note.
9552         (outgoing_edges_match): Tweek conditional merging heuristics.
9553         (try_crossjump_to_edge): use update_br_prob_note.
9554         * cfglayout.c (fixup_reorder_chain): Likewise.
9555         * cfrtl.c (update_br_prob_note): New.
9556         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
9557
9558         * i386.c (ix86_decompose_address): Return -1 if address contains
9559         shift.
9560         (legitimate_address_p): Require ix86_decompose_address to return 1.
9561
9562         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
9563         (cprop_insn): Likewise.
9564
9565 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9566
9567         * toplev.c: Fix formatting.
9568         * tree.c: Likewise.
9569         * tree-dump.c: Likewise.
9570         * unroll.c: Likewise.
9571         * unwind-dw2.c: Likewise.
9572         * unwind-dw2-fde.c: Likewise.
9573         * unwind-dw2-fde-glibc.c: Likewise.
9574         * unwind-sjlj.c: Likewise.
9575
9576 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9577
9578         * doc/invoke.texi: Document PDP-11 options.
9579
9580 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9581
9582         * config/h8300/h8300.h: Fix formatting.
9583
9584 2002-01-10  Ira Ruben   <ira@apple.com>
9585
9586         Add __attribute__ ((deprecated)).
9587         * extend.texi: Document __attribute__ ((deprecated)).
9588         * invoke.texi: Document -Wno-deprecated-declarations.
9589         * testsuite/g++.dg/other/deprecated.C: New C++ test.
9590         * testsuite/gcc.dg/deprecated.c: New C test.
9591         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
9592         (c_common_attribute_table): Add "deprecated" entry.
9593         (handle_deprecated_attribute): New function.
9594         * c-decl.c (deprecated_states): New enum.
9595         deprecated_state: State of "deprecated" handling.
9596         (start_decl): Set deprecated_state based on attributes.
9597         (grokdeclarator): Test for deprecated uses, propagate attribute.
9598         * c-typeck.c (build_component_ref): Test for deprecated fields.
9599         (build_external_ref): Test for deprecated primaries.
9600         * diagnostic.c (warn_deprecated_use) New function to issue
9601         warnings about __attribute__ ((depricated)) references.
9602         * flags.h (warn_deprecated_decl): Extern declared for
9603         -W[no-]deprecated-declarations option.
9604         * print-tree.c (print_node): Show deprecated flag status.
9605         * toplev.c (warn_deprecated_decl): Defined.
9606         (W_options): Added "deprecated-declaration".
9607         * toplev.h (warn_deprecated_use): Extern declared.
9608         * tree.h (struct tree_common): Define deprecated_flag.
9609         (TREE_DEPRECATED): New macro to access flag.
9610         * cp/call.c (build_call): Test for deprecated calls.
9611         * cp/class.c (add_implicitly_declared_members): Set global
9612         flag to tell grokdeclarator to not issue deprecated warnings.
9613         * cp/cp-tree.h: Add extern for adding_implicit_members.
9614         * cp/decl.c (deprecated_states): New enum.
9615         (start_decl): Set deprecated_state based on attributes.
9616         (grokdeclarator): Test for deprecated uses, propagate attribute.
9617         * cp/lex.c (do_identifier): Test for deprecated primaries.
9618         * cp/typeck.c (build_component_ref): Test for deprecated fields.
9619
9620 2002-01-10  Ira Ruben   <ira@apple.com>
9621
9622         Fix to assign attributes to inline member functions.
9623         * cp/decl.c (start_method): Handle attrlist.
9624
9625 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9626
9627         * combine.c (expand_field_assignment): Use subreg_lsb().
9628
9629 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
9630
9631         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
9632         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
9633         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
9634         Recurse for any operand of AND as long as constant is non-zero.
9635
9636 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9637
9638         * config/h8300/h8300.md: Remove constraints from expanders.
9639
9640 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9641
9642         * varasm.c: Fix formatting.
9643         * varray.c: Likewise.
9644         * vmsdbgout.c: Likewise.
9645         * xcoffout.c: Likewise.
9646
9647 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
9648
9649         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
9650         update edge probabilities to match.
9651
9652 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9653
9654         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
9655         dependencies.
9656         * doc/languages.texi, doc/sourcebuild.texi: New files.
9657         * doc/configfiles.texi: Make a subsubsection.  Update.
9658         * doc/configterms.texi: Add @node.  Remove warning that this isn't
9659         instructions for building GCC.
9660         * doc/makefile.texi: Make a subsection.
9661         * doc/gccint.texi: Update.
9662
9663 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
9664
9665         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
9666
9667 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9668
9669         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
9670
9671 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
9672
9673         * optabs.c (expand_fix): Look for wider integer modes first.
9674
9675         * i386.md (mov?f): Avoid the fake const double trick for medium
9676         memory model.
9677         (min?f*/max?f*): Prohibit memory operands for i387 variant.
9678         (fop_df_4): Disable for SSE compilation.
9679
9680 2002-01-10  Graham Stott  <grahams@redhat.com>
9681
9682         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
9683         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
9684
9685 2002-01-10  Richard Henderson  <rth@redhat.com>
9686
9687         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
9688
9689 2002-01-10  Richard Henderson  <rth@redhat.com>
9690
9691         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
9692         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
9693
9694 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9695
9696         * combine.c (can_combine_p): Fix a comment typo.
9697
9698 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
9699
9700         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
9701         empty list correctly.  Change loop index $t to $f for
9702         consistency with rest of Makefile.
9703
9704 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
9705
9706         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
9707         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9708
9709         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
9710         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
9711         (altivec_init_builtins): Same.
9712         (altivec_expand_unop_builtin): Return NULL_RTX on error.
9713         (altivec_expand_binop_builtin): Same.
9714         (altivec_expand_ternop_builtin): Same.
9715         (bdesc_dst): New.
9716
9717         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
9718         ("altivec_vctuxs"): Fix typo.
9719         ("altivec_vnmsubfp"): Same.
9720         ("altivec_dssall"): New.
9721         ("altivec_mfvscr"): New.
9722         ("altivec_dss"): New.
9723         ("altivec_lvsl"): New.
9724         ("altivec_lvsr"): New.
9725         ("altivec_dstt"): New.
9726         ("altivec_dstst"): New.
9727         ("altivec_dststt"): New.
9728         ("altivec_dst"): New.
9729
9730         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
9731         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9732
9733 2002-01-09  Richard Henderson  <rth@redhat.com>
9734
9735         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
9736
9737 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
9738
9739         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
9740         function.
9741         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
9742         prototype.
9743         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
9744
9745 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9746
9747         * read-rtl.c: Fix formatting.
9748         * real.c: Likewise.
9749         * regclass.c: Likewise.
9750         * regrename.c: Likewise.
9751         * reg-stack.c: Likewise.
9752         * reload1.c: Likewise.
9753         * reload.c: Likewise.
9754         * rtl.c: Likewise.
9755
9756 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9757
9758         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
9759         to extract items in the expr_list chain.
9760
9761 2002-01-09  Richard Henderson  <rth@redhat.com>
9762
9763         * config/vax/vax.c (vax_rtx_cost): Never abort.
9764
9765         * config/vax/vax.h (REAL_ARITHMETIC): Define.
9766
9767 2002-01-09  Jan Hubicka  <jh@suse.cz>
9768
9769         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
9770
9771 2002-01-09  Richard Henderson  <rth@redhat.com>
9772
9773         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
9774         Unify code from various alternatives.
9775
9776 2002-01-09  Richard Henderson  <rth@redhat.com>
9777
9778         * regrename.c (copy_value): Ignore the copy if the source register
9779         is present in the value chain with a narrower mode.
9780
9781 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
9782
9783         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
9784         for the c4x target. Also improve layout.
9785
9786 2002-01-09  Richard Henderson  <rth@redhat.com>
9787
9788         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
9789         * config/m32r/m32r.md (and ior xor splitters): Swap operands
9790         to match insn patterns.
9791
9792 2002-01-09  Richard Henderson  <rth@redhat.com>
9793
9794         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
9795         (copyprop_hardreg_forward_1): Likewise.
9796
9797 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9798
9799         * pa.md (decrement_and_branch_until_zero): Change predicate for
9800         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
9801
9802 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9803
9804         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
9805         gets undefined. For Darwin.
9806
9807 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9808
9809         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
9810
9811 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9812
9813         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
9814
9815 2002-01-08  Richard Henderson  <rth@redhat.com>
9816
9817         * regrename.c (copy_value): Ignore overlapping copies.
9818
9819 2002-01-08  Richard Henderson  <rth@redhat.com>
9820
9821         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
9822         as needed to avoid shared structure.
9823
9824 2002-01-08  Kazu Hirata  <kazu@hxi.com>
9825
9826         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
9827         H8/300H and H8/S.
9828
9829 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9830
9831         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
9832         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
9833         documentation of obsolete macros.
9834         * system.h: Poison these macros.
9835         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
9836         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
9837         config/c4x/c4x.h, config/clipper/clipper.h,
9838         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
9839         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
9840         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
9841         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
9842         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
9843         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
9844         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
9845         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
9846         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
9847         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
9848         config/sparc/sparc.h, config/stormy16/stormy16.h,
9849         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
9850         definitions and commented out definitions of obsolete macros.
9851         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
9852         of MAX_INT_TYPE_SIZE.
9853
9854 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
9855
9856         * config/s390/s390.c (s390_preferred_reload_class): Never
9857         return ADDR_REGS if it isn't a subset of the given class.
9858         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
9859         FP_REGS, but all superclasses as well.
9860
9861         * config/s390/s390.c (s390_function_profiler): Fix thinko.
9862
9863         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
9864         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
9865         must not be a const_int.
9866
9867 2002-01-08  Richard Henderson  <rth@redhat.com>
9868
9869         * Makefile.in (toplev.o): Depend on options.h.
9870         (gcc.o): Depend on specs.h.
9871
9872 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
9873
9874         * expr.c (store_expr): Convert VOIDmode constants back to target's
9875         mode.
9876
9877 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9878
9879         * doc/invoke.texi: Markup gcc as @command.  Refer to
9880         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
9881         of http://gcc.gnu.org/thanks.html.
9882
9883 2002-01-08  Dale Johannesen  <dalej@apple.com>
9884
9885         * config/rs6000/rs6000.md: Add missing int register
9886         target case to movdf_low.
9887
9888 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
9889
9890         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
9891         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
9892         (cppinit.o): Depend on except.h.
9893         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
9894         s-specs): New rules.
9895
9896         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
9897         Don't create specs.h/options.h/gencheck.h here.  Remove
9898         unnecessary variable settings from last argument of AC_OUTPUT.
9899         * config.in, configure: Regenerate.
9900         * intl.c: Hardcode package name as "gcc".
9901
9902         * cppinit.c: Include except.h.
9903         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
9904         appropriate.
9905         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
9906         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
9907         (!)USING_SJLJ_EXCEPTIONS.
9908         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
9909
9910 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9911
9912         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
9913         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
9914         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
9915         documentation of obsolete macros.
9916         * system.h: Poison these macros.
9917         * config/d30v/d30v.h, config/ns32k/encore.h,
9918         config/stormy16/stormy16.h: Remove definitions and commented out
9919         definitions of obsolete macros.
9920
9921 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
9922
9923         * objc/objc-act.c (handle_class_ref): Mark the declaration of
9924         %sobjc_class_ref_%s as used - to prevent unwanted compiler
9925         warnings.
9926
9927 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
9928
9929         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
9930         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
9931         to insn adjusting stack/frame pointer.
9932         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
9933         accept operands that cause the insn to be non-splittable.
9934
9935 2002-01-08  Graham Stott  <grahams@redhat.com>
9936
9937         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
9938         (C_TYPE_FIELDS_VOLATILE): Likewise.
9939         (C_TYPE_BEING_DEFINED): Likewise.
9940         (C_IS_RESERVED_WORD): Likewise.
9941         (C_TYPE_VARIABLE_SIZE): Likewise.
9942         (C_DECL_VARIABLE_SIZE): Likewise.
9943         (C_MISSING_PROTOTYPE_WARNED): Likewise.
9944         (C_SET_EXP_ORIGINAL_CODE): Likewise.
9945         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
9946         parenthesis.
9947         (C_DECL_ANTICIPATED): Likewise.
9948         (c_build_type_variant): Add parenthesis.
9949
9950 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9951
9952         * gcc.c (option_map): Remove --version.
9953         (process_command): Handle -fversion following the GNU Coding
9954         Standards.  Partially addresses PR other/704.
9955
9956 2002-01-08  Graham Stott  <grahams@redhat.com>
9957
9958         * combine.c (combine_instructions): Fix typo.
9959
9960 2002-01-08  Graham Stott  <grahams@redhat.com>
9961
9962         * debug.h: Use "tree" and "rtx" throughout.
9963
9964         * debug.c: Likewise.
9965
9966 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
9967
9968         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
9969         constant pool, use the pool's version of the symbol instead.
9970
9971 2002-01-07  Richard Henderson  <rth@redhat.com>
9972
9973         * regrename.c (find_oldest_value_reg): Ignore the value chain if
9974         the original register was copied in a mode with a fewer number of
9975         hard registers than the desired mode.
9976         (copyprop_hardreg_forward_1): Likewise.
9977         (debug_value_data): Fix loop test.
9978         * toplev.c (parse_options_and_default_flags): Reenable
9979         -fcprop-registers at -O1.
9980
9981 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
9982
9983         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
9984         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
9985
9986         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
9987         predicates.
9988
9989         * config/rs6000/rs6000.md: Add altivec predicate patterns.
9990
9991 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9992
9993         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
9994         (pa_output_function_prologue): Output local label at the beginning of
9995         the prologue when profiling.
9996         (hppa_profile_hook): Use the local label rather than the function label.
9997         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
9998
9999 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
10000
10001         * config/rs6000/rs6000.c (print_operand): Remove extra space.
10002         (altivec_expand_unop_builtin): Fix thinko.
10003         (altivec_expand_binop_builtin): Same.
10004         (altivec_expand_ternop_builtin): Same.
10005         (altivec_expand_builtin): Same.
10006
10007 2002-01-07  Richard Henderson  <rth@redhat.com>
10008
10009         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
10010
10011 2002-01-07  Jason Merrill  <jason@redhat.com>
10012
10013         * unwind-dw2.c (execute_cfa_program): Use < again.
10014
10015 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
10016
10017         * predict.c (combine_predictions_for_insn): Avoid division by zero.
10018
10019 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
10020
10021         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
10022         Don't allow -1 - x -> ~x simplifications in the first pass.
10023
10024 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
10025
10026         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
10027         arguments.
10028         (altivec_expand_binop_builtin): Same.
10029         (altivec_expand_unop_builtin): Same.
10030         (print_operand): Fix typo.
10031         (bdesc_1arg): Add vupk* variants.
10032
10033         * rs6000.h (rs6000_builtins): Add vupk* enums.
10034
10035         * rs6000.md: Add altivec_vupk* variants.
10036
10037 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
10038
10039         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
10040         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
10041         and last update dates.
10042
10043 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
10044
10045         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
10046
10047 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10048
10049         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
10050         * config/avr/avr.h (CPP_SPEC): Likewise.
10051         (LINK_SPEC): Likewise.
10052         (CRT_BINUTILS_SPECS): Likewise.
10053         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10054         * doc/invoke.texi (AVR Options): Document them.
10055
10056 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
10057
10058         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
10059         LABEL_NUSES.
10060
10061 2002-01-07  Graham Stott  <grahams@redhat.com>
10062
10063         * config/i386/i386.h: Update copyright date.
10064         (HALF_PIC_PTR): Add parenthesis.
10065         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
10066         (CONSTANT_ALIGNMENT): Add parenthesis.
10067         (DATA_ALIGNMENT): Likewise.
10068         (LOCAL_ALIGNMENT): Likewise.
10069         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
10070         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
10071         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
10072         (HARD_REGNO_NREGS): Add paranethesis.
10073         (VALID_SSE_REG_MODE): Whitespace.
10074         (VALID_MMX_REG_MODE): Whitespace.
10075         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
10076         (ix86_hard_regno_mode_ok): Add parenthesis.
10077         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
10078         (RETURN_IN_MEMORY): Whitespace.
10079         (N_REG_CLASSES): Add parenthesis.
10080         (INTEGER_CLASS_P): Add parenthesis and wrap.
10081         (FLOAT_CLASS_P): Likewise.
10082         (SSE_CLASS_P): Likewise.
10083         (MMX_CLASS_P): Likewise.
10084         (MAYBE_INTEGER_CLASS_P): Likewise.
10085         (MAYBE_FLOAT_CLASS_P): Likewise.
10086         (MAYBE_SSE_CLASS_P): Likewise.
10087         (MAYBE_MMX_CLASS_P): Likewise.
10088         (Q_CLASS_P): Likewise.
10089         (GENERAL_REGNO_P): Uppercase macro parameter.
10090         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
10091         (FP_REGNO_P): Likewise.
10092         (ANY_FP_REGNO_P): Uppercase macro parameter.
10093         (SSE_REGNO_P): Likewise.
10094         (SSE_REGNO): Likewise.
10095         (SSE_REG_P): Likewise.
10096         (SSE_FLOAT_MODE_P): Likewise.
10097         (MMX_REGNO_P): Likewise.
10098         (MMX_REG_P):Likewise.
10099         (STACK_REG_P): Likewise.
10100         (NON_STACK_REG_P): Likewise.
10101         (STACK_TOP_P): Likewise.
10102         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
10103         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
10104         (SECONDARY_MEMORY_NEEDED): Likewise.
10105         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
10106         (MD_ASM_CLOBBERS): Whitespace and wrap.
10107         (MUST_PASS_IN_STACK): Whitespace and wrap.
10108         (RETURN_POPS_ARGS): Add parenthesis.
10109         (INIT_CUMULATIVE_ARGS): Likewise.
10110         (FUNCTION_ARG): Likewise.
10111         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
10112         (SETUP_INCOMING_VARARGS): Likewise.
10113         (BUILD_VA_LIST_TYPE):  Add parenthesis.
10114         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
10115         parenthsis.
10116         (EXPAND_BUILTIN_VA_ARG): Likewise.
10117         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
10118         (INITIALIZE_TRAMPOLINE): Add parenthesis.
10119         (INITIAL_ELIMINATION_OFFSET): Likewise.
10120         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
10121         (REGNO_OK_FOR_BASE_P): Likewise.
10122         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
10123         (REGNO_OK_FOR_DIREG_P): Likewise.
10124         (REG_OK_FOR_INDEX_P): Whitespace.
10125         (REG_OK_FOR_BASE_P): Whitespace.
10126         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
10127         parenthesis.
10128         (FIND_BASE_TERM): Fix typo.
10129         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
10130         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
10131         (SYMBOLIC_CONST; Whitespace.
10132         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
10133         (ENCODE_SECTION_INFO): Whitespace.
10134         (FINALIZE_PIC): Remove do { ... } while (0).
10135         (PROMOTE_MODE): Wrap in do { ... } while (0).
10136         (CONST_COSTS): Whitespace.
10137         (RTX_COSTS): Add paramethesis, whitespace and wrap.
10138         (REGISTER_MOVE_COST): Add parenthesis.
10139         (MEMORY_MOVE_COST): Likewise.
10140         (EXTRA_CC_MODES): Whitespace.
10141         (SELECT_CC_MODE): Add parenthesis and whitespace.
10142         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
10143         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
10144         (ASM_OUTPUT_LABEL): Add paramethesis.
10145         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
10146         (ASM_OUTPUT_REG_POP): Likewise.
10147         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
10148         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10149
10150         * config/i386/i386.c: Update copyright.
10151         (CHECK_STACK_LIMIT): Add parenthesis.
10152         (AT_BP): Uppercase macro parameter.
10153         (x86_64_int_parameter_registers): Constify.
10154         (x86_64_int_return_registers): Likewise.
10155         (ix86_compare_op0): Use rtx.
10156         (construct_container): Constify INTREG parameter.
10157         (function_arg): Use rtx.
10158
10159         * diagnostic.h: Update copyright date.
10160         (output_buffer_state): Add parenthesis.
10161         (output_buffer_format_args): Likewise.
10162
10163         * combine.c (combine_instructions): Replace XEXP (links, 0)
10164         with link.
10165
10166 2002-01-06  H.J. Lu <hjl@gnu.org>
10167
10168         * cfgcleanup.c (thread_jump): Fix 2 typos.
10169
10170 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
10171
10172         * config.gcc: Add support for --enable-altivec.
10173
10174 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10175
10176         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
10177
10178 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
10179
10180         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
10181         __objc_class_name_*.
10182
10183 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10184
10185         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
10186
10187 2002-01-06  Richard Henderson  <rth@redhat.com>
10188
10189         * reorg.c (emit_delay_sequence): Remove death notes, not merely
10190         nop them out.  Increment label reference count for REG_LABEL.
10191         (fill_slots_from_thread): Frob label reference count around
10192         delete_related_insns.
10193
10194 2002-01-05  Richard Henderson  <rth@redhat.com>
10195
10196         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
10197         jump threading.
10198
10199 2002-01-05  Richard Henderson  <rth@redhat.com>
10200
10201         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
10202         * integrate.c (output_inline_function): Likewise.
10203         * toplev.c (rest_of_compilation): Do it here instead.  Move call
10204         to remove_unnecessary_notes after emitting abstract instance.
10205         Force an emitted nested function to have its parent emited as well.
10206         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
10207         for null.
10208         (rtl_for_decl_location): Do not look at reload data structures
10209         before reload has run.
10210
10211 2002-01-05  Kazu Hirata  <kazu@hxi.com>
10212
10213         * cse.c: Fix formatting.
10214         * dwarf2asm.c: Likewise.
10215         * dwarf2out.c: Likewise.
10216         * explow.c: Likewise.
10217         * expmed.c: Likewise.
10218         * function.c: Likewise.
10219         * gcov.c: Likewise.
10220         * gencheck.c: Likewise.
10221         * genrecog.c: Likewise.
10222         * ggc-common.c: Likewise.
10223         * ggc-page.c: Likewise.
10224         * global.c: Likewise.
10225
10226 2002-01-05  Kazu Hirata  <kazu@hxi.com>
10227
10228         * combine.c: Fix formatting.
10229
10230 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
10231
10232         PR middle-end/1557
10233         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
10234
10235 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
10236
10237         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
10238         as 1 for __powerpc64__ as well.
10239
10240         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
10241
10242         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
10243         return it.
10244
10245 2002-01-05  Daniel Berlin  <dan@dberlin.org>
10246
10247         * lcm.c: Revert change, due to performance regression it causes on
10248         SPEC because it's slightly more conservative (sigh, I hate
10249         edge-based LCM).
10250
10251 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
10252
10253         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
10254
10255 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10256
10257         * doc/cppinternals.texi: Update.
10258
10259 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
10260
10261         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
10262         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
10263         negatives.
10264         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
10265         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
10266         kludge for pre-october-14th mmix versions to handle new-found bug
10267         with PUSHJ/PUSHGO and the register stack.
10268         * config/mmix/mmix.h (struct machine_function): Rename member
10269         has_call_value_without_parameters to has_call_without_parameters.
10270         All referers changed.
10271         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
10272         TARGET_MASK_BRANCH_PREDICT): New macros.
10273         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
10274         -mno-reg-stack-fill-bug-workaround.
10275         * config/mmix/mmix.md ("call"): Set struct machine member
10276         has_call_without_parameters.
10277
10278 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
10279
10280         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
10281
10282 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
10283
10284         * cfgcleanup.c: Include tm_p.h
10285         (mark_effect): Fix handling of hard register; fix handling of SET
10286
10287 2002-01-04  Kazu Hirata  <kazu@hxi.com>
10288
10289         * config/h8300/h8300.md (anonymous patterns): Check that
10290         operands are registers before using REGNO on them.
10291
10292 2002-01-03  Roland McGrath  <roland@frob.com>
10293
10294         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
10295
10296 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
10297
10298         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
10299         * c-common.h (genrtl_expr_stmt_value): Likewise.
10300         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
10301         (expand_expr_stmt_value): Add maybe_last argument.
10302         Don't warn about statement with no effect if it is the last statement
10303         in expression statement.
10304         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
10305         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
10306         expand_expr_stmt_value.
10307         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
10308         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
10309         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
10310         as maybe_last to expand_expr_stmt_value.
10311
10312 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
10313
10314         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
10315         be passed in, do not build it.
10316         (c_begin_if_stmt): New function.
10317         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
10318         * c-common.h (c_expand_start_cond): Update prototype.
10319         (c_begin_if_stmt): Prototype new function.
10320         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
10321         * c-parse.in (if_prefix): Use c_begin_if_stmt,
10322         c_begin_while_stmt and c_finish_while_stmt_cond.
10323
10324 2002-01-04  William Cohen  <wcohen@redhat.com>
10325
10326         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
10327         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
10328         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
10329         * config/pa/som.h (ASM_FILE_START): Likewise.
10330
10331 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
10332
10333         * lcm.c: Include df.h.
10334         Add available_transfer_function prototype.
10335         (compute_available): Rework to use iterative dataflow framework.
10336         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
10337         with bb_info in df.h
10338         (available_transfer_function): New function.
10339
10340         * Makefile.in (lcm.o): add df.h to dependencies.
10341
10342 2002-01-04  Richard Henderson  <rth@redhat.com>
10343
10344         * config/alpha/alpha.c (some_operand): Accept HIGH.
10345         (input_operand): Likewise; accept simple references to globals.
10346         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
10347         (alpha_const_double_ok_for_letter_p): Likewise.
10348         (alpha_extra_constraint): Likewise.
10349         (alpha_preferred_reload_class): Likewise.  Do not force
10350         symbolic constants to memory.
10351         (alpha_legitimate_address_p): Accept simple references
10352         to small_symbolic_operand.
10353         (alpha_legitimize_address): New arg scratch.  Be prepared to be
10354         called when no_new_pseudos.  Emit simple symbolic references.
10355         Split integers into low, high, and rest.
10356         (alpha_expand_mov): Use alpha_legitimize_address.
10357         (some_small_symbolic_mem_operand): New.
10358         (split_small_symbolic_mem_operand): New.
10359         * config/alpha/alpha-protos.h: Update.
10360         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
10361         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
10362         (EXTRA_CONSTRAINT): Likewise.
10363         (PREFERRED_RELOAD_CLASS): Likewise.
10364         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
10365         (PREDICATE_CODES): Update.
10366         * config/alpha/alpha.md: New post-reload splitters to convert
10367         simplfied symbolic operands to the form that references $29.
10368         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
10369         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
10370
10371 2002-01-03  Richard Henderson  <rth@redhat.com>
10372
10373         * local-alloc.c (function_invariant_p): Update commentary.
10374
10375 2002-01-04  H.J. Lu <hjl@gnu.org>
10376
10377         * toplev.c (rest_of_compilation): Fix a typo when calling
10378         cleanup_cfg.
10379
10380 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10381
10382         * c-common.c: Fix formatting.
10383         * diagnostic.c: Likewise.
10384         * doloop.c: Likewise.
10385         * dwarf2out.c: Likewise.
10386
10387 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10388
10389         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
10390         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
10391
10392 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10393
10394         * cpperror.c: Update comments and copyright.
10395         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
10396         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
10397
10398 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10399
10400         * collect2.c (main): Use strcmp when testing for "-shared".
10401
10402 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10403
10404         * cppmacro.c: Don't include intl.h.  Update comments.
10405         (new_number_token): Allocate enough buffer for 64-bit unsigned
10406         integers; update prototype.
10407         * cppmain.c: Update comments.
10408
10409 2002-01-03  William Cohen  <wcohen@redhat.com>
10410
10411         * function.h (struct function): Add profile.
10412         (current_function_profile): New.
10413         doc/extend.texi: Update documentation.
10414         * final.c (final_start_function): Use current_function_profile
10415         instead of profile_flag.
10416         (profile_after_prologue): Likewise.
10417         * function.c (expand_function_start): Likewise.
10418         (expand_function_start): Likewise.
10419         * config/alpha/alpha.c (direct_call_operand):
10420         (alpha_does_function_need_gp): Likewise.
10421         (alpha_expand_prologue): Likewise.
10422         * config/arm/arm.c (arm_expand_prologue): Likewise.
10423         thumb_expand_prologue: Likewise.
10424         * config/d30v/d30v.c (d30v_stack_info): Likewise.
10425         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
10426         (fr30_expand_prologue): Likewise.
10427         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
10428         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
10429         * config/i386/i386.h (FINALIZE_PIC): Likewise.
10430         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
10431         * config/i960/i960.c (i960_output_function_prologue): Likewise.
10432         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
10433         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
10434         (m32r_expand_prologue): Likewise.
10435         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
10436         (m88k_expand_prologue): Likewise.
10437         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
10438         * config/mips/mips.c (compute_frame_size): Likewise.
10439         (mips_expand_prologue): Likewise.
10440         (mips_can_use_return_insn): Likewise.
10441         * config/pa/elf.h (ASM_FILE_START): Likewise.
10442         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
10443         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
10444         * config/pa/som.h (ASM_FILE_START): Likewise.
10445         * config/romp/romp.c (romp_using_r14): Likewise.
10446         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
10447         (rs6000_stack_info): Likewise.
10448         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10449         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
10450         * config/v850/v850.c (compute_register_save_size): Likewise.
10451
10452 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
10453
10454         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
10455         gen_lowpart_common fails, use gen_lowpart_SUBREG.
10456
10457 2002-01-03  Turly O'Connor  <turly@apple.com>
10458
10459         * darwin.c (machopic_output_possible_stub_label): Don't generate
10460         stub routines for pseudo-stubs which we've just defined.
10461
10462 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10463
10464         * builtins.c: Fix formatting.
10465         * c-typeck.c: Likewise.
10466         * combine.c: Likewise.
10467         * expr.c: Likewise.
10468         * loop.c: Likewise.
10469
10470 2002-01-03  Andreas Schwab  <schwab@suse.de>
10471
10472         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
10473         and return true if _cpp_push_next_buffer pushed a new include
10474         file.
10475         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
10476         _cpp_pop_file_buffer did not push a new file.
10477         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
10478
10479 2002-01-02  Eric Christopher  <echristo@redhat.com>
10480
10481         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
10482         FIND_REG_INC_NOTE call. Update copyright.
10483         * loop.c (canonicalize_condition): Ditto.
10484         * reorg.c (delete_scheduled_jump): Ditto.
10485
10486 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10487
10488         * gcse.c: Fix formatting.
10489
10490 2002-01-03  Graham Stott  <grahams@redhat.com>
10491
10492         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
10493         forward defs for struct tags rtx_def, union_tree, rtvec_def
10494         also output corresponding typedefs for rtx, tree, and rtvec.
10495
10496         * system.h: Move forward defs for struct tags rtx_def, union_tree,
10497         rtvec_def along with corresponding typedefs for rtx, tree, and
10498         rtvec to config.h, hconfig.h, tconfig.h.
10499
10500 2002-01-03  Graham Stott  <grahams@redhat.com>
10501
10502         * tree.h: Update copyright date.
10503         (IS_EXPR_CODE_CLASS): Add parenthesis.
10504         (TREE_SET_CODE): Add whitespace.
10505         (TREE_CHECK): Add parenthesis.
10506         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
10507         (CST_OR_CONSTRUCTOR_CHECK):
10508         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
10509         (TREE_SYMBOL_REFERENCED): Whitespace.
10510         (INT_CST_LT): Likewise.
10511         (INT_CST_LT_UNSIGNED): Likewise.
10512         (tree_real_cst): Unwrap comment.
10513         (tree_string): Likewise.
10514         (tree_complex): Likewise.
10515         (IDENTIFIER_POINTER): correct cast.
10516         (SAVE_EXPR_CONTEXT): Whitespace.
10517         (EXPR_WFL_FILENAME_NODE): Likewise.
10518         (EXPR_WFL_FILENAME): Remove parenthesis.
10519         (DECL_ORIGIN): Add parenthesis.
10520         (DECL_FROM_INLINE): Use NULL_TREE.
10521         (build_int_2): Whitespace.
10522         (build_type_variant): Add parenthesis.
10523
10524         * gcc/jcf-parse.c: Update copyright date.
10525         (yyparse): Constify resource_filename.
10526
10527 2002-01-03  Graham Stott  <grahams@redhat.com>
10528
10529         * rtl.h: Update copyright date.
10530         (RTL_CHECK1): Wrap long line.
10531         (RTL_CHECK2): Likewise.
10532         (RTL_CHECKC1): Wrap long line and whitespace.
10533         (RTL_CHECKC2): Likewise.
10534         (XWINT): Whitespace.
10535         (XINT): Likewise.
10536         (XSTR): Likewise.
10537         (XEXP): Likewise.
10538         (XVEC): Likewise.
10539         (XMODE): Likewise.
10540         (XBITMAP): Likewise.
10541         (XTREE): Likewise.
10542         (XBBDEF): Likewise.
10543         (XTMPL): Likewise.
10544         (X0WINT): Likewise.
10545         (X0INT):Likewise.
10546         (X0UINT): Likewise.
10547         (X0STR): Likewise.
10548         (X0EXP): Likewise.
10549         (X0VEC): Likewise.
10550         (X0MODE): Likewise.
10551         (X0BITMAP): Likewise.
10552         (X0TREE): Likewise.
10553         (X0BBDEF): Likewise.
10554         (X0ADVFLAGS): Likewise.
10555         (X0CSELIB): Likewise.
10556         (X0MEMATTR): Likewise.
10557         (XCWINT): Likewise.
10558         (XCINT): Likewise.
10559         (XCUINT): Likewise.
10560         (XCSTR): Likewise.
10561         (XCEXP): Likewise.
10562         (XCVEC): Likewise.
10563         (XCMODE): Likewise.
10564         (XCBITMAP): Likewise.
10565         (XCTREE): Likewise.
10566         (XCBBDEF): Likewise.
10567         (XCADVFLAGS): Likewise.
10568         (XCCSELIB): Likewise.
10569         (XC2EXP): Likewise.
10570         (INSN_UID): Likewise.
10571         (PREV_INSN): Likewise.
10572         (PATTERN): Likewise.
10573         (INSN_CODE): Likewise.
10574         (PUT_REG_NOTE_KIND): Likewise.
10575         (CODE_LABEL_NUMBER): Likewise.
10576         (NOTE_SOURCE_FILE): Likewise.
10577         (NOTE_BLOCK): Likewise.
10578         (NOTE_EH_HANDLER): Likewise.
10579         (NOTE_RANGE_INFO): Likewise.
10580         (NOTE_LIVE_INFO): Likewise.
10581         (NOTE_BASIC_BLOCK): Likewise.
10582         (NOTE_EXPECTED_VALUE): Likewise.
10583         (NOTE_LINE_NUMBER): Likewise.
10584         (LABEL_NAME): Likewise.
10585         (LABEL_NUSES): Likewise.
10586         (LABEL_ALTERNATE_NAME): Likewise.
10587         (ADDRESSOF_DECL): Likewise.
10588         (JUMP_LABEL): Likewise.
10589         (LABEL_NEXTREF): Likewise.
10590         (REGNO): Likewise.
10591         (ORIGINAL_REGNO: Likewise.
10592         (HARD_REGISTER_NUM_P): Add parenthesis.
10593         (SUBREG_REG): Whitespace.
10594         (SUBREG_BYTE): Likewise.
10595         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
10596         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
10597         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
10598         (ASM_OPERANDS_INPUT_VEC): Likewise.
10599         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
10600         (ASM_OPERANDS_INPUT): Likewise.
10601         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
10602         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
10603         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
10604         (ASM_OPERANDS_INPUT_MODE): Likewise.
10605         (ASM_OPERANDS_SOURCE_FILE): Likewise.
10606         (ASM_OPERANDS_SOURCE_LINE): Likewise.
10607         (MEM_SET_IN_STRUCT_P): Minor reformat.
10608         (TRAP_CONDITION): Whitespace.
10609         (TRAP_CODE): Likewise.
10610         (COND_EXEC_TEST): Likewise.
10611         (COND_EXEC_CODE): Likewise.
10612         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
10613         (PHI_NODE_P): Add parenthesis.
10614         (plus_constant): Whitespace and add parenthesis.
10615
10616 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10617
10618         * config/avr/avr.c: Fix comment typos.
10619         * config/c4x/c4x.md: Likewise.
10620         * config/dsp16xx/dsp16xx.h: Likewise.
10621         * config/dsp16xx/dsp16xx.md: Likewise.
10622         * config/i386/i386.md: Likewise.
10623         * config/ia64/ia64.c: Likewise.
10624         * config/m32r/m32r.h: Likewise.
10625         * config/m68hc11/m68hc11.md: Likewise.
10626         * config/mmix/mmix.c: Likewise.
10627         * config/mn10200/mn10200.c: Likewise.
10628         * config/romp/romp.c: Likewise.
10629         * config/sh/sh.c: Likewise.
10630         * config/stormy16/stormy16.c: Likewise.
10631         * config/stormy16/stormy16.h: Likewise.
10632         * config/stormy16/stormy16.md: Likewise.
10633
10634 2002-01-03  Graham Stott  <grahams@redhat.com>
10635
10636         * loop.h: Update copyright date.
10637         (LOOP_MOVABLES): Fix typo.
10638         (LOOP_REGS): Likewise.
10639         (LOOP_IVS): Likewise.
10640
10641 2002-01-03  Graham Stott  <grahams@redhat.com>
10642
10643         * cppinit.c: Update copyright date.
10644         Don't include output.h
10645         * Makefile.in: Update copyright date.
10646         Update dependency.
10647
10648 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10649
10650         PR c/5226
10651         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
10652         (-pthread) Add to RS/6000 options.
10653
10654 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10655
10656         * except.c: Fix comment typos.
10657         * loop.c: Likewise.
10658         * varasm.c: Likewise.
10659         * doc/tm.texi: Fix a typo.
10660
10661 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
10662
10663         * c-typeck.c (output_init_element): Allow initializing static storage
10664         duration objects with compound literals.
10665
10666 2002-01-02  Richard Henderson  <rth@redhat.com>
10667
10668         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
10669         after abusing it.
10670
10671 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10672
10673         * gcc.c (default_compilers): Const-ify.
10674         * mips-tdump.c (stab_names): Likewise.
10675         * mips-tfile.c (map_coff_types, map_coff_storage,
10676         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
10677         pseudo_ops_t, pseudo_ops): Likewise.
10678         * protoize.c (default_include): Likewise
10679
10680         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
10681         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
10682         Add array size in declaration.
10683         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
10684         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
10685         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
10686         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
10687         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
10688         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
10689         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
10690         emtens, make_nan): Const-ify.
10691         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
10692         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
10693
10694 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10695
10696         * config.gcc (ia64-*-*): Set extra_headers.
10697         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
10698         * config/alpha/t-osf: Remove.
10699         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
10700
10701 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
10702
10703         * config/rs6000/t-aix43: Revert previous change.
10704
10705 2002-01-02  Jason Merrill  <jason@redhat.com>
10706
10707         * c-decl.c (c_expand_body): Call outlining_inline_function when
10708         emitting an inline function out of line.
10709
10710 2002-01-02  Richard Henderson  <rth@redhat.com>
10711
10712         * dwarf2out.c (limbo_die_node): Add created_for member.
10713         (new_die): New argument created_for.  Update all callers.
10714         (mark_limbo_die_list): New.
10715         (dwarf2out_init): Register limbo_die_list as a root.
10716         (dwarf2out_finish): Force insert limbo dies into their function
10717         context.
10718
10719 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
10720
10721         PR c++/5089
10722         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
10723
10724 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10725
10726         * config/h8300/fixunssfsi.c: Update copyright.
10727         Fix comment typos.
10728         Fix formatting.
10729         * config/h8300/h8300.c: Update copyright.
10730         Eliminate warnings.
10731
10732 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10733
10734         * config/romp/romp.c: Fix comment formatting.
10735         * config/romp/romp.h: Likewise.
10736         * config/romp/romp.md: Likewise.
10737         * config/s390/s390.c: Likewise.
10738         * config/stormy16/stormy16.c: Likewise.
10739         * config/stormy16/stormy16.h: Likewise.
10740
10741 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
10742
10743         * c-common.h (genrtl_expr_stmt_value): Declare.
10744         * c-semantics.c (genrtl_goto_stmt): Redirect to...
10745         (genrtl_goto_stmt_value): ... this new function.  Pass new
10746         argument down to expand_expr_stmt_value, taking
10747         TREE_ADDRESSABLE into account.
10748         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
10749         STMT_EXPR as addressable, i.e., one whose result we want.
10750         * expr.c (expand_expr): Don't save expression statement value
10751         of labeled_blocks or loop_exprs.
10752         * stmt.c (expand_expr_stmt): Redirect to...
10753         (expand_expr_stmt_value): ... this new function.  Use new
10754         argument to tell whether to save expression value.
10755         (expand_end_stmt_expr): Reset last_expr_type and
10756         last_expr_value if we don't have either.
10757         * tree-inline.c (declare_return_variable): Mark its use
10758         statement as addressable.
10759         * tree.h: Document new use of TREE_ADDRESSABLE.
10760         (expand_expr_stmt_value): Declare.
10761
10762 2002-01-01  Tom Rix  <trix@redhat.com>
10763
10764         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
10765         rs6000_emit_allocate_stack.
10766
10767 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10768
10769         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
10770         ${srcdir}/ginclude/ to every entry in extra_headers.
10771         * configure: Regenerate.
10772         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
10773         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
10774         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
10775         * ginclude/proto.h: Rename to config/convex/proto.h.
10776
10777 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10778
10779         * attribs.c (handle_vector_size_attribute): Use host_integerp
10780         and tree_int_cst; remove warnings.
10781         * caller-save.c (insert_restore): Add cast to get rid of warning.
10782         (insert_save): Likewise.
10783         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
10784         * regmove.c (find_matches): Add temporary var to kill a warning.
10785
10786 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
10787
10788         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
10789         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
10790         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
10791         (vms-dwarf2eh.o): Add Makefile rule.
10792         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
10793         * config/alpha/vms-dwarf2eh.asm: New file.
10794
10795         * gcc.c (delete_if_ordinary): Delete all versions.
10796
10797 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
10798
10799         * config/mmix/mmix.md: Update FIXME to not mention
10800         define_constants.
10801         (MMIX_rJ_REGNUM): New define_constants constant.
10802         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
10803         "*movdicc_real"): Adjust contraints formatting.
10804         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
10805         for branch prediction.
10806         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
10807         output template.
10808         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
10809         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
10810         number.  Delete related FIXMEs.
10811         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
10812         from number to MMIX_rJ_REGNUM.
10813         (TARGET_MASK_BRANCH_PREDICT): New.
10814         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
10815         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
10816         value.  Add -mbranch-predict and -mno-branch-predict.
10817         (TARGET_VERSION): Drop date.
10818         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
10819         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
10820         for finding out global symbols.
10821         (mmix_asm_output_labelref): Revert condition for global symbol.
10822         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
10823         (mmix_print_operand_punct_valid_p): A '+' is valid.
10824
10825 See ChangeLog.6 for earlier changes.