OSDN Git Service

* mips.c: Don't include output.h twice.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2
3         * mips.c: Don't include output.h twice.
4         * stormy16.c: Likewise.
5         * xtensa.c: Likewise.
6         * output.h: Protect against multiple inclusion.
7
8 2003-06-02  J"orn Rennecke <joern.rennecke@superh.com>
9
10         * sh.h (OLD_ARG_MODE): New macro.
11         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
12         (FUNCTION_ARG_1): Break out of:
13         (FUNCTION_ARG).  Use OLD_ARG_MODE.
14
15 2003-04-16  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16
17         * gcc/config.gcc Add support multilib parts for m32rx processor.
18
19 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20
21         * Makefile.in (c-options.c): Pass in $(AWK) to opts.sh.
22         (mostlyclean): Delete c-options.c and c-options.h.
23
24 2003-06-02  Neil Booth  <neil@daikokuya.co.uk>
25
26         * c-opts.c (CL_REJECT_NEGATIVE): New.
27         (c_common_decode_option): Update to use it.
28         * c.opt: Update documentation; use RejectNegative.
29         * opts.sh: Handle RejectNegative.
30
31 2003-06-01  Zack Weinberg  <zack@codesourcery.com>
32
33         * ggc-page.c (init_ggc): Give better diagnostics on failure to
34         open /dev/zero.
35         * toplev.c (crash_signal): Reset handling for received signal
36         to SIG_DFL.
37
38 2003-06-02  Ben Elliston  <bje@wasabisystems.com>
39
40         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare.
41         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define if not already.
42         (arm_use_dfa_pipeline_interface): Implement.
43         * config/arm/arm.md (arm): New automaton.
44         (write_buf): Remove function units; new cpu unit.
45         (write_blockage): Remove function units; new cpu unit.
46         (core): Remove function units; new cpu unit.
47         (r_mem_f_wbuf): New instruction reservation.
48         (store1_wbuf, store2_wbuf, store3_wbuf, store4_wbuf): Likewise.
49         (store1_ldsched, store2, store3, store4): Likewise.
50         (load_ldsched, load_ldsched_xscale, load_or_store): Likewise.
51         (mult, mult_ldsched, mult_ldsched_strongarm): Likewise.
52         (multi_cycle, single_cycle): Likewise.
53         * config/arm/fpa.md (armfp): New automaton.
54         (fpa): Remove function units; new cpu unit.
55         (fpa_mem): Remove function unit; new cpu unit.
56         (fdivx, fdivd, fdivs, fmul, ffmul, farith, ffarith): New reservations.
57         (r_2_f, f_2_r, f_load, f_store, r_mem_f, f_mem_r): Likewise.
58
59 2003-06-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
60
61         * builtin-attrs.def (ATTR_ASM_FPRINTF): New.
62         * c-format.c (enum format_type): Add asm_fprintf_format_type.
63         (NOARGUMENTS, asm_fprintf_length_specs, asm_fprintf_flag_specs,
64         asm_fprintf_flag_pairs, asm_fprintf_char_table): New.
65         (format_types_orig): Renamed from format_types.  Add new data.
66         (format_types): Declare as pointer.
67         (handle_format_attribute): Move later in file so we have all
68         necessary declarations.  Add section to capture HOST_WIDE_INT.
69         * output.h (ATTRIBUTE_ASM_FPRINTF, __gcc_host_wide_int__): New.
70         (asm_fprintf): Mark with ATTRIBUTE_ASM_FPRINTF.
71
72 2003-06-01  Andreas Jaeger  <aj@suse.de>
73
74         * doc/tm.texi (Storage Layout): Remove ROUND_TYPE_SIZE and
75         ROUND_TYPE_SIZE_UNIT.
76
77         * stor-layout.c (finalize_record_size): Remove usages of
78         ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
79         (finalize_type_size): Likewise.
80         (layout_type): Likewise.
81
82         * system.h: Poison ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
83
84         * loop.c (check_insn_for_givs): Remove DONT_REDUCE_ADDR macro.
85
86         * config/d30v/d30v.h: Remove text copied from the manual.
87
88 2003-06-01  Roger Sayle  <roger@eyesopen.com>
89             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
90             Geoffrey Keating  <geoffk@apple.com>
91
92         * emit-rtl.c (gen_lowpart_common): Handle interpreting integer
93         constants as condition code values.
94
95 2003-06-01  DJ Delorie  <dj@redhat.com>
96
97         * cppmacro.c (warn_of_redefinition): Handle cases where the two
98         definitions have different numbers of tokens.
99
100 2003-06-01  Andreas Jaeger  <aj@suse.de>
101
102         * gen-protos.c (main): Readd unused attribute for argc.
103
104 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
105
106         * Makefile.in (c-options.c, c-options.h): Parallel make safe.
107         * c.opt: End in blank line.
108         * opts.sh: Take AWK from environment if available; use C locale.
109
110 2003-06-01  Andreas Schwab  <schwab@suse.de>
111
112         * config/m68k/linux.h: Remove code protected by USE_GNULIBC_1.
113
114 2003-06-01  Andreas Jaeger  <aj@suse.de>
115
116         * gen-protos.c (main): Revert patch to check for argument.
117
118 2003-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
119
120         PR target/11044
121         * config/i386/i386.md (length attribute): Set length to 4
122         for instructions of type "fcmp".
123
124 2003-06-01  Andreas Jaeger  <aj@suse.de>
125
126         * toplev.c: Use ISO C90 prototypes.
127
128         * toplev.h: Use ISO C90 prototypes.
129
130         * genrecog.c: Use ISO C90 prototypes.
131         (nodes_identical): Correct declaration to match prototype.
132         (maybe_both_true): Likewise.
133         (merge_trees): Likewise.
134
135         * genpeep.c (gen_peephole): Remove #if 0 code.
136         Use ISO C90 prototypes.
137
138         * genattrtab.c (copy_rtx_unchanging): Remove #if 0'ed code.
139         Remove #if 0'ed function simplify_by_alternatives.
140         (optimize_attrs): Remove #if 0'ed code.
141         Remove ^L.
142         Use ISO C90 prototypes.
143         (make_canonical): Remove #if 0'ed code.
144         (convert_const_symbol_ref): Remove #if 0'ed function.
145
146         * gen-protos.c (main): Check for argument.
147
148         * rtl.h: Use ISO C90 prototypes for functions from lists.c.
149
150         * params.h: Use ISO C90 prototypes.
151         * params.c: Likewise.
152         * intl.c: Likewise.
153         * intl.h: Likewise.
154         * lists.c: Likewise.
155         * errors.c: Likewise.
156         * errors.h: Likewise.
157         * gencodes.c: Likewise.
158         * genpreds.c: Likewise.
159         * genattr.c: Likewise.
160         * gen-protos.c: Likewise.
161         * genflags.c: Likewise
162         * genconditions.c: Likewise.
163         * genautomata.c: Likewise.
164         * gencheck.c: Likewise.
165         * genconfig.c: Likewise.
166         * genconstants.c: Likewise.
167         * genemit.c: Likewise.
168         * genextract.c: Likewise.
169         * gengenrtl.c: Likewise.
170         * gengtype.c: Likewise.
171         * gengtype.h: Likewise.
172         * genopinit.c: Likewise.
173         * genoutput.c: Likewise.
174         * gensupport.c: Likewise.
175         * gensupport.h: Likewise.
176
177         * sdbout.h: Use ISO C90 prototypes.
178
179         * sdbout.c (CONTIN): Removed empty macro.
180         (sdbout_one_type): Remove CONTIN usages.
181         Remove ^Ls.
182         (tag_of_ru_type): Remove #if 0'ed function.
183         (sdbout_symbol): Remove #if 0'ed code.
184         (sdbout_one_type): Remove a #if 1.
185         (sdbout_one_type): Remove #if 0'ed code.
186         (sdbout_init): Remove RMS_QUICK_HACK_1 code.
187         Remove PARAMS, use ISO C90 prototypes for all functions.
188
189 2003-06-01  Josef Zlomek  <zlomekj@suse.cz>
190
191         * rtl.def (CONST_DOUBLE): Update comment.
192
193 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
194
195         * opts.sh: Remove path from sort.
196
197 2003-06-01  Aldy Hernandez  <aldyh@redhat.com>
198
199         PR/9680
200         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require
201         TARGET_SPE for SPE_VECTOR_MODE.
202
203 2003-05-31  Aldy Hernandez  <aldyh@redhat.com>
204
205         * toplev.c (botch): Remove.
206         (do_abort): Remove.
207         (set_Wunused): Comment.
208         (set_Wextra): Comment.
209         Remove ^L's.
210         (rest_of_compilation): Factor out common code into functions.
211         (rest_of_handle_inlining): New.
212         (rest_of_handle_ssa): New.
213         (rest_of_handle_cse): New.
214         (rest_of_handle_gcse): New.
215         (rest_of_handle_loop_optimize): New.
216         (rest_of_handle_jump_bypass): New.
217         (rest_of_handle_sibling_calls): New.
218         (rest_of_handle_null_pointer): New.
219         (rest_of_handle_addresof): New.
220         (rest_of_handle_flow): New.
221         (rest_of_handle_branch_prob): New.
222         (rest_of_handle_if_conversion): New.
223         (rest_of_handle_tracer): New.
224         (rest_of_handle_loop2): New.
225         (rest_of_handle_cse2): New.
226         (rest_of_handle_life): New.
227         (rest_of_handle_combine): New.
228         (rest_of_handle_if_after_combine): New.
229         (rest_of_handle_regmove): New.
230         (rest_of_handle_sched): New.
231         (rest_of_handle_old_regalloc): New.
232         (rest_of_handle_new_regalloc): New.
233         (rest_of_handle_regrename): New.
234         (rest_of_handle_reorder_blocks): New.
235         (rest_of_handle_sched2): New.
236         (rest_of_handle_new_regalloc): New.
237         (rest_of_handle_old_regalloc): New.
238         (rest_of_handle_regrename): New.
239         (rest_of_handle_reorder_blocks): New.
240         (rest_of_handle_stack_regs): New.
241         (rest_of_handle_machine_reorg): New.
242         (rest_of_handle_delay_slots): New.
243         (rest_of_handle_final): New.
244
245         * toplev.h (botch): Remove prototype.
246         (do_abort): Same.
247
248 2003-05-31  Neil Booth  <neil@daikokuya.co.uk>
249
250         * Makefile.in (c-opts.o, c-options.h): Update dependencies.
251         * c-opts.c: Include c-options.h and c-options.c.
252         (CL_C_ONLY, CL_OBJC_ONLY, CL_CXX_ONLY, CL_OBJCXX_ONLY):
253         Rename CL_C, CL_OBJC, CL_CXX, CL_OBJCXX.
254         (CL_ARG, CL_ALL, COMMAND_LINE_OPTIONS, struct cl_option,
255         OPT, opt_comp): Remove.
256         (missing_arg, c_common_init_options, c_common_decode_option,
257         write_langs): Update for macro redefinitions and enumeration
258         name changes.
259         * c.opt, opts.sh: New files.
260         * doc/passes.texi: Update.
261
262 2003-05-31  Andreas Jaeger  <aj@suse.de>
263
264         * function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE
265         usage.
266
267         * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE.
268
269         * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE.
270
271         * system.h: Poison ALLOCATE_TRAMPOLINE.
272
273         * doc/tm.texi (Misc): Remove HANDLE_PRAGMA.
274         * system.h: Poison HANDLE_PRAGMA.
275
276 2003-05-31  Kazu Hirata  <kazu@cs.umass.edu>
277
278         * doc/invoke.texi: Update dump file names.
279
280 2003-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
281
282         * c-format.c (format_length_info, format_char_info,
283         format_flag_spec, format_flag_pair, format_kind_info):
284         De-const-ify structure members.
285
286 2003-05-31  Roger Sayle  <roger@eyesopen.com>
287
288         * flags.h (flag_wrapv): New flag controlling overflow semantics.
289         * toplev.c (flag_wrapv): Declare the variable with default false.
290         (lang_independent_options): New option "-fwrapv" to set the above.
291
292         * fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2
293         as x, when signed arithmetic overflow wraps around.
294         (fold): Optimize "-A - B" as "-B - A" if overflow wraps around.
295         * loop.c (basic_induction_var): Ignore BIVs that rely on undefined
296         overflow when flag_wrapv is true.
297
298         * doc/invoke.texi: Document new -fwrapv command line option.
299         * doc/c-tree.texi: Mention that the overflow semantics of
300         NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent
301         upon both flag_wrapv and flag_trapv.
302
303 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
304
305         * doc/install.texi (mips-sgi-irix5): Add missing
306         HTML <hr> marker.
307
308 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
309
310         * doc/md.texi (Machine Constraints): Document
311         missing SPARC constraints.
312
313 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
314
315         * doc/md.texi (Automaton pipeline description): Use
316         "type" instead of "cpu" as the attribute in the examples.
317
318 2003-05-30  Stan Shebs  <shebs@apple.com>
319
320         * system.h: Poison OBJC_PROLOGUE.
321
322 2003-05-30  Roger Sayle  <roger@eyesopen.com>
323
324         * emit-rtl.c (gen_complex_constant_part): New function for getting
325         the constant real or imaginary part of a complex constant.
326         (gen_realpart): Use it.
327         (gen_imagpart): Likewise.
328
329 2003-05-30  Kazu Hirata  <kazu@cs.umass.edu>
330
331         * doc/invoke.texi: Fix typos.
332         * doc/rtl.texi: Likewise.
333
334 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
335
336         * config/h8300/crti.asm: Use .h8300hn and .h8300sn for normal
337         mode.
338         * config/h8300/crtn.asm: Likewise.
339         * config/h8300/lib1funcs.asm: Likewise.
340         * config/h8300/h8300.c (asm_file_start): Likewise.
341         * config/h8300/elf.h (LINK_SPEC): Use h8300hnelf and
342         h8300snelf emulations for normal mode.
343         * config/h8300/h8300.h (LINK_SPEC): Use h8300hn and h8300sn
344         emulations for normal mode.
345
346 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
347
348         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Return
349         true if TARGET_NORMAL_MODE.
350
351 2003-05-30  Roger Sayle  <roger@eyesopen.com>
352
353         * cse.c (cse_insn): Simplify REG_EQUAL note on libcalls when
354         making a substitution.
355         (dead_libcall_p): If directly replacing a libcall with a
356         constant value produces an invalid instruction, also try forcing
357         the constant into the constant pool.
358         * expr.c (emit_move_insn): Add a REG_EQUAL note when it is not
359         obvious that the source is a constant.
360         (compress_float_constant): Use set_unique_reg_note to place
361         REG_EQUAL notes on instructions.
362
363 2003-05-30  Eric Christopher  <echristo@redhat.com>
364
365         * config/mips/mips.c (extern_list): Add GTY marker.
366         (extern_head): Separate out definition. Add marker.
367         (mips_output_external): Use ggc_alloc for extern_list
368         allocation.
369         (mips_output_external_libcall): Ditto.
370
371 2003-05-30  Florian Weimer  <fw@deneb.enyo.de>
372
373         * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or
374         later.
375
376 2003-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
377
378         * vax.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
379         warnings.
380         (PRINT_OPERAND): Likewise.
381
382 2003-05-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
383
384         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move
385         -mdebug/-no-mdebug switches ...
386         (MDEBUG_ASM_SPEC): ... here.
387         Use only with gas.
388         (EXTRA_SPECS): Initialize mdebug_asm_spec.
389
390 2003-05-29  Matt Kraai  <kraai@alumni.cmu.edu>
391
392         * gthr-gnat.c: Remove #undef UNUSED.
393         (__gnat_default_lock, __gnat_default_unlock): Prototype.
394         (__gnat_task_lock, __gnat_task_unlock): Make declarations
395         prototypes.
396         (__gnat_install_locks): Convert declaration to ISO C90, make
397         parameter declarations prototypes, and remove blank line.
398         * gthr-gnat.h (__gnat_install_locks): Make parameter
399         declarations prototypes.
400
401 2003-05-29  Jason Merrill  <jason@redhat.com>
402
403         * Makefile.in (unstrap): Remove stage_last after make unstage1.
404
405 2003-05-29  Roger Sayle  <roger@eyesopen.com>
406
407         * mips-tfile.c (PAGE_SIZE): Increase page size to 32K.
408
409 2003-05-29  Roger Sayle  <roger@eyesopen.com>
410             Kaveh Ghazi  <ghazi@caip.rutgers.edu>
411
412         PR bootstrap/10169
413         * mips-tfile.c (main): Use getopt_long instead of getopt.
414         Add new command line option --version to display version.
415         Treat --verbose like -v to report a single line version.
416         (options): New global variable for getopt_long.
417         * mips-tdump.c (main): Use getopt_long instead of getopt.
418         New command line options -v, --version and -verbose to display
419         the program version number (to match mips-tfile's behavior).
420         (options): New global variable for getopt_long.
421
422         * gcov.c (options): Zero-terminate getopt_long array.
423         * gcov-dump.c (options): Likewise.
424
425         * Makefile.in (mips-tdump.o): Add dependency on version.h.
426
427 2003-05-29  Stan Shebs  <shebs@apple.com>
428
429         Remove OBJC_PROLOGUE everywhere.
430         * objc/objc-act.c (finish_objc): Remove use of OBJC_PROLOGUE.
431         * config/avr/avr.h: Remove no-op ref to OBJC_PROLOGUE.
432         * config/d30v/d30v.h: Similarly.
433         * config/ip2k/ip2k.h: Similarly.
434         * doc/tm.texi: Remove doc of OBJC_PROLOGUE.
435
436 2003-05-29  Roger Sayle  <roger@eyesopen.com>
437
438         * c-semantics.c (genrtl_do_stmt_1): New function split out from...
439         (gen_rtl_do_stmt): ... here.  Call genrtl_do_stmt_1.
440         (expand_unreachable_stmt): Expand unreachable while statements
441         using genrtl_do_stmt_1.
442
443 2003-05-29  Richard Sandiford  <rsandifo@redhat.com>
444
445         * config/mips/mips-protos.h (mips_output_load_label): Declare.
446         * config/mips/mips.c (mips_output_load_label): New function.
447         (mips_output_conditional_branch): Use it.
448         * config/mips/mips.md (jump): And here.
449
450 2003-05-28  Bob Wilson  <bob.wilson@acm.org>
451
452         * config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete.
453         (xtensa_split_operand_pair): New proto.
454         * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode.
455         (smalloffset_double_mem_p): Delete.
456         (gen_float_relational, printx, print_operand, xtensa_va_arg):
457         Fix whitespace.
458         (xtensa_split_operand_pair): New.
459         (xtensa_dbx_register_number): Fix formatting.
460         * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint.
461         * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory
462         instead of splitting them into single-word moves.  Remove unnecessary
463         checks for reload_in_progress and reload_completed.
464         (movdi_internal, movdf_internal): Change to post-reload split patterns.
465         Add constraints to allow constant operands.
466         (movsf_internal): Allow CONST_INT operands.
467
468 2003-05-27  Danny Smith   <dannysmith@users.sourceforge.net>
469
470         * config.gcc (i[34567]86-*-mingw32*): Add host makefile
471         fragment i386/x-mingw32.
472         * config/i386/x-mingw32: New file. Make local_includedir
473         relative to EXEC_PREFIX.
474
475 2003-05-27  Aaron W. LaFramboise  <awlaframboise@aol.com>
476
477         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Update.
478         (MD_STARTFILE_PREFIX): Define.
479
480 2003-05-27  Denis Chertykov  <denisc@overta.ru>
481
482         * cselib.c (cselib_invalidate_regno): Abort if hardreg have a
483         VOIDmode.
484         * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in
485         call of cselib_invalidate_regno.
486
487 2003-05-28  Daniel Jacobowitz  <drow@mvista.com>
488
489         * config/mips/linux.h (LIB_SPEC): Add missing -lc and correct
490         -lthread to -lpthread.
491
492 2003-05-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
493             Bruce Korb  <bkorb@gnu.org>
494             Arno Klaassen  <arno@heho.snv.jussieu.fr>
495
496         * fixinc/inclhack.def: Add missing declaration of getpagesize()
497         to unistd.h on Solaris 2.5.1.
498         Fix prototype of recv() and send() in sys/socket.h on
499         Solaris 2.5.1 and 2.6.
500         * fixinc/tests/base/unistd.h: Add solaris_unistd fix test.
501         * fixinc/tests/base/sys/socket.h: Add solaris_socket test.
502         * fixinc/check.tpl: Use 'diff -c', not 'diff -u'.
503         * fixinc/fixincl.x: Regenerate.
504
505 2003-05-27  Jason Merrill  <jason@redhat.com>
506
507         * tree.c (expr_first, expr_length): New fns.
508         * tree.h: Declare them.
509
510         * tree.c (iterative_hash_expr): Hash commutative expressions
511         consistently.
512
513 2003-05-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
514
515         * tree.h (contains_placeholder_p): Now returns bool.
516         (CONTAINS_PLACEHOLDER_P): New macro.
517         (type_contains_placeholder_p): New function.
518         * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF.
519         (contains_placeholder_p): Now returns bool.
520         Rework to use CONTAINS_PLACEHOLDER_P macro.
521         (type_contains_placeholder_p): New function.
522         * fold-const.c (fold, case COMPONENT_REF): Don't fold if
523         type_contains_placeholder_p.
524         (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold):
525         Use CONTAINS_PLACEHOLDER_P macro.
526         * builtins.c (fold_builtin): Likewise.
527         * calls.c (initialize_argument_information): Likewise.
528         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
529         * explow.c (expr_size): Likewise.
530         * expr.c (store_constructor, get_inner_reference): Likewise.
531         * function.c (assign_parms): Likewise.
532         * stor-layout.c (variable_size): Likewise.
533
534 2003-05-25  Gabriel Dos Reis <gdr@integrable-solutions.net>
535
536         * diagnostic.h (output_verbatim, verbatim):  Remove  printf
537         attribute.
538
539 2003-05-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
540
541         * doc/contrib.texi (Contributors): Update Kean Johnston.
542
543 2003-05-24  David Edelsohn  <edelsohn@gnu.org>
544
545         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add length attribute.
546
547 2003-05-24  Nathanael Nerode  <neroden@gcc.gnu.org>
548
549         * config/rs6000/440.md, config/stormy16/stormy16protos.h,
550         config/stormy16/stormy16.c, config/stormy16/stormy16.md:
551         Replace "GNU CC" with "GCC".
552
553 2003-05-24  Matt Kraai  <kraai@alumni.cmu.edu>
554
555         * builtins.c (expand_builtin_memcpy): Use mode of dest_addr for
556         intermediate computation.
557
558 2003-05-23  Eric Christopher  <echristo@redhat.com>
559
560         * config/mips/mips.md (clzsi, clzdi): New patterns.
561
562 2003-05-23  Geoffrey Keating  <geoffk@apple.com>
563
564         * gcc.c (default_compilers): Use -o to specify preprocessor's output
565         file.  Make -no-integrated-cpp work when building PCH files.
566         * objc/lang-specs.h: Likewise.
567
568 2003-05-23  Nathanael Nerode  <neroden@gcc.gnu.org>
569
570         * fixinc/Makefile.in: Correct description.
571         * fixinc/Makefile.in, fixinc/fixfixes.c, fixinc/fixincl.c,
572         fixinc/fixlib.c, fixinc/fixlib.h, fixinc/fixtests.c,
573         fixinc/genfixes: Replace "GNU CC" with "GCC".
574
575 2003-05-23  Roger Sayle  <roger@eyesopen.com>
576
577         * builtins.def: Define atan, atanf, atanl, tan, tanf and tanl
578         builtin functions (and their __builtin_* variants).
579         * builtins.c (mathfn_built_in): Handle tan{,f,l} and atan{,f,l}.
580         (expand_builtin): Don't expand tan{,f,l} or atan{,f,l} when not
581         optimizing.
582
583         * doc/extend.texi: Document new tan and atan builtins, and
584         their float and long double variants.
585
586 2003-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
587
588         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
589         __sparcv9 in the TARGET_ARCH64 case.
590
591 Fri May 23 22:17:32 CEST 2003  Jan Hubicka  <jh@suse.cz>
592
593         * i386.c (ix86_reorg): Calls are also jumps.
594
595 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
596
597         * cse.c (count_reg_usage): When processing an INSNs REG_EQUAL
598         note containing an EXPR_LIST, process all the arguments.
599
600 Fri May 23 21:19:31 CEST 2003  Jan Hubicka  <jh@suse.cz>
601                                Andreas Jaeger  <aj@suse.de>
602
603         * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__;
604         do not use assertion.
605
606 2003-05-23  Mike Stump  <mrs@apple.com>
607
608         * tlink.c (scan_linker_output): Add support for darwin linker, as it
609         emits unresolved symbols one per line, consuming the entire line.
610
611 2003-05-23  Larin Hennessy <larin@science.oregonstate.edu>
612             Zack Weinberg <zack@codesourcery.com>
613
614         * explow.c (allocate_dynamic_stack_space): Remove call to gen_probe.
615         * config/m68k/m68k.c (m68k_output_function_prologue):
616         Remove code under #if NEED_PROBE.
617         * config/m68k/m68k.h: Don't define NEED_PROBE.
618         * config/m68k/m68k.md: Remove "probe" insn.
619         * doc/md.texi: Remove documentation of "probe" pattern.
620
621 2003-05-23  Dorit Naishlos  <gcchaifa@il.ibm.com>
622
623         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add branch attribute.
624
625 2003-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
626
627         * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*.
628         Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*.
629
630 2003-05-22  Roger Sayle  <roger@eyesopen.com>
631
632         * real.c (real_maxval): New function to return the largest finite
633         value representable in a given mode (i.e. FLT_MAX and DBL_MAX).
634         * real.h (real_maxval): Prototype here.
635         * fold-const.c (fold_inf_compare): Transform comparisons against
636         +-Infinity into comparisons against DBL_MAX (or equivalent).
637
638 2003-05-22  Mike Stump  <mrs@apple.com>
639
640         * config.gcc (*-*-darwin*): Remove use_collect2=no, as it is the
641         default.
642
643 2003-05-22  DJ Delorie  <dj@redhat.com>
644
645         * calls.c (expand_call): If the arg block is going to grow
646         downward, we need argblock to point to the top of the block,
647         not the bottom.
648
649 2003-05-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
650
651         * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK.
652
653         * expr.c (expand_expr, case CONSTRUCTOR): Put into memory if
654         constant and EXPAND_CONST_ADDRESS, not just EXPAND_INITIALIZER.
655
656 2003-05-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
657
658         * m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers.
659         * m68k.c: Likewise.
660         * m68k.h: Likewise.
661
662 2003-05-22  Zack Weinberg  <zack@codesourcery.com>
663
664         PR other/2873
665         * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass
666         expressions to prevent triggering on recent curses.h,
667         linux/nls.h, or X11/Xlib.h.
668         (stdio_va_list): Add _G_va_list to bypass pattern.
669         (strict_ansi_not): Add bypass pattern for __SCO_VERSION__.
670         * fixinc/fixincl.x: Regenerate.
671
672 2003-05-22 Rekha Bhintade <rekhad@kpitcummins.com>
673
674         * gcc/config/sh/sh.h (TARGET_SWITCHES): Display all the target
675         switches when --target-help option is specified.
676
677 2003-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
678
679         PR bootstrap/10805
680         * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap
681         failure with Sun assembler 5.0 Alpha 03/27/98.
682
683 2003-05-21  Loren James Rittle  <ljrittle@acm.org>
684
685         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9
686         to match system compiler convention.
687
688 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
689
690         * gthr-win32.h (__GTHREAD_HIDE_WIN32API): Test for non-zero
691         value, not just if defined.
692         Update copyright year.
693
694 2003-05-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
695
696         PR target/6428
697         * pa-hpux10.h (LINK_SPEC, LIB_SPEC): Move -L options for profiling
698         directories from LIB_SPEC to LINK_SPEC.  Emit warning if `-p' or `-pg'
699         option is used without `-static'.
700         * pa-hpux11.h (LINK_SPEC, LIB_SPEC): Likewise.
701         * pa64-hpux.h (LINK_SPEC, LIB_SPEC): Likewise.
702
703 2003-05-21  Bob Wilson  <bob.wilson@acm.org>
704
705         * config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE,
706         TARGET_SERIALIZE_VOLATILE): Delete.
707         (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits.
708         (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE.
709         (TARGET_SWITCHES): Remove "-mserialize-volatile" and
710         "-mno-serialize-volatile".
711         * config/xtensa/xtensa.c (print_operand): Remove checks of
712         TARGET_SERIALIZE_VOLATILE.
713         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
714         * doc/invoke.texi (Option Summary, Xtensa Options): Remove
715         "-mserialize-volatile" and "-mno-serialize-volatile" options.
716
717 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
718
719         * c-parse.in (fndef): Set DECL_SOURCE_LINE and FILE earlier.
720         (nested_function): Likewise.
721         (notype_nested_function): Likewise.
722
723 2003-05-21  Nick Clifton  <nickc@redhat.com>
724
725         * config/stormy16/stormy-abi: Update overflow type for
726         R_XSTORMY16_16 reloc.
727
728 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
729
730         * c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED.
731         * c-parse.in (reswords): Remove __bounded__ and __unbounded__.
732         (rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots.
733         * print-tree.c (print_node): Remove ambient-boundedness.
734         * tree.h (tree_common): Remove bounded_flag.
735         (BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P,
736         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
737         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
738         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
739         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED):
740         Remove.
741         (TYPE_QUALS): Remove BOUNDED.
742         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove.
743         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
744         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
745         TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT,
746         VA_LIST_POINTER_DEPTH): Remove.
747         (struct tree_type): Remove pointer_depth.
748
749 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
750
751         * c-pretty-print.c (pp_c_integer_literal): Use
752         HOST_WIDE_INT_PRINT_DOUBLE_HEX.
753
754 2003-05-20  Roger Sayle  <roger@eyesopen.com>
755             Kazu Hirata  <kazu@cs.umass.edu>
756             Joern Rennecke  <joern.rennecke@superh.com>
757
758         * gcse.c (cprop_jump):  Make use of REG_EQUAL notes on both
759         setcc and jump, if they exist.  If substituted instruction
760         fails to validate, store current effort in a REG_EQUAL note.
761         (cprop_insn): Don't attempt further substitutions if the
762         current instruction has been deleted.
763         (local_cprop_pass): Likewise.
764
765         * jump.c (redirect_jump):  Also update REG_EQUAL note, if
766         one is attached to the jump instruction.
767         (invert_jump): Delete REG_EQUAL note on jump, if one exists.
768
769 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
770
771         PR c++/9738
772         * config/i386/winnt.c (i386_pe_encode_section_info): Enable
773         even if not first.
774
775 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
776
777         * genautomata.c (output_description, output_automaton_units,
778         output_state_arcs): Add missing specifiers.
779
780 2003-05-20  Bob Wilson  <bob.wilson@acm.org>
781
782         * config/xtensa/lib1funcs.asm: Avoid use of .Lfe* in .size directives.
783         (do_abs, do_addx2, do_addx4, do_addx8): New assembler macros.
784         (__mulsi3): Use do_addx* instead of ADDX* instructions.  Formatting.
785         (nsau): Rename to do_nsau.  Provide alternate version for use when
786         the NSAU instruction is available.
787         (__udivsi3, __divsi3, __umodsi3, __modsi3): Use do_nsau macro.
788         (__divsi3, __modsi3): Use do_abs macro instead of ABS instruction.
789         * config/xtensa/xtensa-config.h: Update comments to match binutils.
790         (XCHAL_HAVE_ABS, XCHAL_HAVE_ADDX): Define.
791         * config/xtensa/xtensa.h (MASK_ABS, MASK_ADDX): Define.
792         (TARGET_ABS, TARGET_ADDX): Define.
793         (TARGET_DEFAULT): Conditionally add MASK_ABS and MASK_ADDX.
794         (TARGET_SWITCHES): Add "abs", "no-abs", "addx", and "no-addx".
795         * config/xtensa/xtensa.md (*addx2, *addx4, *addx8, *subx2, *subx4,
796         *subx8): Set predicate condition to TARGET_ADDX.
797         (abssi2): Set predicate condition to TARGET_ABS.
798         * doc/invoke.texi (Option Summary): Document new "-mabs", "-mno-abs",
799         "-maddx", and "-mno-addx" options.
800         (Xtensa Options): Likewise.  Also tag some opcode names with @code.
801
802 2003-05-20  Kevin Ryde <user42@zip.com.au>
803             Wolfgang Bangerth <bangerth@dealii.org>
804
805         PR/10355
806         * doc/extend.texi: Put a warning into the documentation
807         of attribute regparm.
808
809 2003-05-20  Jason Merrill  <jason@redhat.com>
810
811         * tree.c (expr_last): New fn.
812         * tree.h: Declare it.
813         * objc/objc-act (expr_last): Rename to objc_expr_last.
814
815 2003-05-20  J"orn Rennecke <joern.rennecke@superh.com>
816
817         * sh.c (sh_register_move_cost): Add clase for moving between
818         FP registers and MAC registers.
819
820 2003-05-19  John David Anglin  <dave.anglin@nrc-gnrc.gc.ca>
821
822         * pa/milli64.S ($$mulI): Fix typo.
823
824 2003-05-19  Matt Kraai  <kraai@alumni.cmu.edu>
825
826         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p)
827         (nonlocal_set_p): Remove initial blank line.
828         * dwarf2out.c (simple_type_size_in_bits): Likewise.
829         * et-forest.c (et_forest_create): Likewise.
830         * explow.c (stabilize): Likewise.
831         * fix-header.c (write_lbrac): Likewise.
832         * graph.c (start_fct, node_data): Likewise.
833         * jump.c (only_sets_cc0_p, sets_cc0_p): Likewise.
834         * rtlanal.c (global_reg_mentioned_p): Likewise.
835         * tree.c (bit_position): Likewise.
836
837 2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
838
839         * config/mips/linux64.h (LIB_SPEC): Add missing -lc and correct
840         -lthread to -lpthread.
841
842 2003-05-19  Neil Booth  <neil@daikokuya.co.uk>
843
844         * c-opts.c (c_common_decode_option): Don't accept dollars
845         as identifier characters in assembly.
846         * doc/cpp.texi: Document this.
847
848 2003-05-19  Seth Arnold  <sarnold@wirex.com>
849             Aldy Hernandez  <aldyh@redhat.com>
850
851         * config/rs6000/rs6000.c (rs6000_stack_info): Do not add
852         vrsave_size twice.
853
854 2003-05-19  Aldy Hernandez  <aldyh@redhat.com>
855
856         * doc/tm.texi (function_arg): Fix typo.
857
858 2003-05-19  Matt Austern  <austern@apple.com>
859
860         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-offsetof option.
861         * c-common.h (warn_invalid_offsetof): Declare.
862         * c-common.c (warn_invalid_offsetof): Define.
863         * doc/invoke.texi: Document -Winvalid-offsetof.
864         * testsuite/g++.dg/other/offsetof3.C: New.
865         * testsuite/g++.dg/other/offsetof4.C: New.
866
867 2003-05-19  Kevin B. Hendricks  <kevin.hendricks@sympatico.ca>
868             David Edelsohn  <edelsohn@gnu.org>
869
870         * config/rs6000/rs6000.c (rs6000_alignment_string,
871         rs6000_alignment_flags): New variables.
872         (rs6000_parse_alignment_option): New function.
873         (rs6000_override_options): Call it.
874         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option.
875         (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New
876         macros.
877         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED
878         natural alignment if TARGET_NATURAL_ALIGNMENT
879         (ROUND_TYPE_ALIGN): Always use default record alignment if
880         TAGET_NATURAL_ALIGNMENT.
881         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same
882         (ROUND_TYPE_ALIGN): Same.
883         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same
884         (ROUND_TYPE_ALIGN): Same.
885         * doc/invoke.texi (Option Summary, PowerPC Options): Document
886         new options.
887
888 2003-05-19  J"orn Rennecke <joern.rennecke@superh.com>
889
890         * c-decl.c (finish_decl): When setting the DECL_ASSEMBLER_NAME
891         of a function using ASMSPEC, prepend a star.
892
893 2003-05-19  Jason Merrill  <jason@redhat.com>
894
895         * tree-inline.c (copy_body_r): Avoid generating &* during inline
896         substitution.
897
898 2003-05-19  Andrew Macleod  <amacleod@redhat.com>
899
900         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Do
901         not mark assignments to the hard frame pointer as being stack
902         frame related.
903         (xstormy16_expand_epilogue): Mark adjustments to the stack
904         pointer as being stack frame related.
905
906 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
907
908         * config/mips/mips.h (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY,
909         ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): New macros.
910         (PREDICATE_CODES): Add hilo_operand.
911         * config/mips/mips.c (hilo_operand): New predicate.
912         (mips_adjust_insn_length): Account for the number nops that might
913         be needed to avoid hardware hazards.
914         * config/mips/mips.md (dslot): Remove attribute.
915         (hazard): New attribute.
916         (can_delay): Use it.  Check for calls, branches & jumps.
917         (muldi3): Use the standard dmult pattern for mips16 code.
918         (muldi3_internal, muldi3_internal2): Adjust conditions accordingly.
919
920 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
921
922         * config/mips/mips-protos.h (final_prescan_insn,
923         mips_count_memory_refs, mips_fill_delay_slot): Remove.
924         * config/mips/mips.h (delay_type, dslots_load_total,
925         dslots_load_filled, dslots_jump_total, dslots_jump_filled,
926         dslots_number_nops, num_refs, mips_load_reg, mips_load_reg2,
927         mips_load_reg3, mips_load_reg4): Remove.
928         (MASK_STATS): Remove.
929         (MASK_EXPLICIT_RELOCS): Reuse its value.
930         (TARGET_STATS): Remove.
931         (TARGET_SWITCHES): Turn -mstats and -mno-stats into no-ops.
932         Warn that -mstats is now ignored.
933         (FINAL_PRESCAN_INSN): Undefine.
934         (DBR_OUTPUT_SEQEND): Remove handling of dslot statistics.
935         (ASM_OUTPUT_REG_POP): Likewise.
936         * config/mips/mips.c (dslots_load_total, dslots_load_filled,
937         dslots_jump_total, dslots_jump_filled, dslots_number_nops, num_refs,
938         mips_load_reg, mips_load_reg2, mips_load_reg3, mips_load_reg4,
939         mips_fill_delay_slot, mips_count_memory_refs,
940         final_prescan_insn): Remove.
941         (output_block_move): Remove calls to mips_count_memory_refs.
942         (print_operand): Remove printing of #nop for TARGET_STATS.
943         (mips_output_function_epilogue): Remove TARGET_STATS code.
944         Reorganize setting of fnnmae.
945         * config/mips/mips.md: Remove handling of dslot statistics
946         throughout file.  Change all fcmp patterns into normal asm
947         templates, removing calls to mips_fill_delay_slot.
948         * doc/invoke.texi: Remove documentation of -mstats.
949
950 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
951
952         * config/mips/mips.c (mips_class_max_nregs): Return the number of
953         words in the mode.
954
955 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
956
957         * config/mips/mips.c (override_options): Disable explicit
958         relocs for old ABIs unless using gas.
959
960 2003-05-18  Eric Christopher  <echristo@redhat.com>
961
962         * config/mips/mips.h: Remove definition of g_switch_value.
963
964 2003-05-18  Matt Kraai  <kraai@alumni.cmu.edu>
965
966         * flags.h (g_switch_value): Change to an unsigned
967         HOST_WIDE_INT.
968         * toplev.c (g_switch_value): Likewise.
969
970         * config/alpha/alpha.c (small_symbolic_operand): Remove
971         g_switch_value cast.
972         (alpha_in_small_data_p): Cast size to an unsigned
973         HOST_WIDE_INT.
974
975         * config/frv/frv.c (frv_in_small_data_p): Cast size to an
976         unsigned HOST_WIDE_INT.
977         * config/frv/frv.h (g_switch_value, g_switch_set): Remove.
978         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set.
979
980         * config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an
981         unsigned HOST_WIDE_INT.
982         (m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED.
983         * config/m32r/m32r.h (g_switch_value, g_switch_set): Remove.
984         (ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value.
985
986         * config/rs6000/rs6000.c (rs6000_file_start): Use
987         HOST_WIDE_INT_PRINT_UNSIGNED.
988         (small_data_operand): Cast summand to unsigned HOST_WIDE_INT.
989         (rs6000_elf_in_small_data_p): Cast size to unsigned
990         HOST_WIDE_INT.
991         * config/rs6000/sysv4.h (g_switch_value, g_switch_set):
992         Remove.
993         (SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and
994         g_switch_set.
995         (ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove
996         g_switch_value cast.
997
998 2003-05-18  Roger Sayle  <roger@eyesopen.com>
999             Zack Weinberg  <zack@codesourcery.com>
1000
1001         PR middle-end/10472
1002         * builtins.c (expand_builtin_memcpy):  Call force_operand on
1003         expressions and use simplify_gen_binary to create the addition.
1004
1005 2003-05-18  Andreas Schwab  <schwab@suse.de>
1006
1007         * config/m68k/m68k.md: Use define_constants for unspec numbers.
1008
1009 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
1010
1011         * config/sparc/sparc.h: Define sparc for now.
1012 2003-05-18  Nathanael Nerode  <neroden@gcc.gnu.org>
1013
1014         * config.gcc: Clear xm_file, md_file at the beginning of each pass.
1015
1016         * config/stormy16/stormy16.h: Remove about 3000 lines of
1017         target-independent comments.  Update copyright notice.
1018
1019         * doc/collect2.texi: GNU CC -> GCC.
1020         * doc/headerdirs.texi: GNU CC -> GCC.
1021
1022 2003-05-18  Gabriel Dos Reis <gdr@integrable-solutions.net>
1023
1024         * hashtable.h (struct ht_identifier): Add data member "hash_value".
1025         * hashtable.c (ht_lookup): Use it when searching, remember.
1026         (ht_expand): Do not recompute.
1027         * tree.h (IDENTIFIER_HASH_VALUE): New macro.
1028
1029 2003-05-18  Nathan Sidwell  <nathan@codesourcery.com>
1030
1031         * gcov-io.c (gcov_read_bytes): Fix fread thinko.
1032
1033 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
1034
1035         * c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS):
1036         Default here.
1037         (c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS().
1038         * defaults.h: Don't default TARGET_OS_CPP_BUILTINS here.
1039         * config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__.
1040         * config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h,
1041         config/arm/linux-elf.h, config/arm/rtems-elf.h,
1042         config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h,
1043         config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h,
1044         config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h,
1045         config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h,
1046         config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h,
1047         config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h,
1048         config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h,
1049         config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h,
1050         config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h,
1051         config/sparc/openbsd64.h, config/sparc/sp64-elf.h,
1052         config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h:
1053         Don't define __ELF__.
1054         * config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS):
1055         Define __ELF__.
1056         * doc/cpp.texi: Document __ELF__.
1057         * doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS.     *
1058
1059 2003-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1060
1061         * builtins.c (validate_arglist): Eliminate libiberty VA_ macros,
1062         always use stdarg.
1063         * c-errors.c (pedwarn_c99): Likewise.
1064         * c-format.c (status_warning): Likewise.
1065         * c-semantics.c (build_stmt): Likewise.
1066         * calls.c (emit_library_call, emit_library_call_value): Likewise.
1067         * collect2.c (notice, fatal_perror, fatal, error): Likewise.
1068         * cpperror.c (cpp_error, cpp_error_with_line): Likewise.
1069         * diagnostic.c (build_message_string, output_printf,
1070         output_verbatim, verbatim, inform, warning, pedwarn, error, sorry,
1071         fatal_error, internal_error, warning_with_decl, pedwarn_with_decl,
1072         error_with_decl, fnotice): Likewise.
1073         * dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta,
1074         dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr,
1075         dw2_asm_output_addr_rtx, dw2_asm_output_nstring,
1076         dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128,
1077         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
1078         dw2_asm_output_encoded_addr_rtx): Likewise.
1079         * emit-rtl.c (gen_rtx, gen_rtvec): Likewise.
1080         * errors.c (warning, error, fatal, internal_error): Likewise.
1081         * final.c (output_operand_lossage, asm_fprintf): Likewise.
1082         * fix-header.c (fatal): Likewise.
1083         * gcc.c (fatal, error, notice): Likewise.
1084         * gcov.c (fnotice): Likewise.
1085         * genattrtab.c (attr_rtx, attr_printf): Likewise.
1086         * gengtype.c (error_at_line, xasprintf, oprintf): Likewise.
1087         * gensupport.c (message_with_line): Likewise.
1088         * mips-tfile.c (fatal, error): Likewise.
1089         * protoize.c (notice): Likewise.
1090         * ra-debug.c (ra_debug_msg): Likewise.
1091         * read-rtl.c (fatal_with_file_and_line): Likewise.
1092         * rtl-error.c (error_for_asm, warning_for_asm): Likewise.
1093         * tree.c (build, build_nt, build_function_type_list): Likewise.
1094
1095 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
1096
1097         * defaults.h (TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Remove.
1098         * gcc.c (cpp_predefines): Remove.
1099         (cpp_unique_options, do_spec_1): Remove handling of CPP_PREDEFINES.
1100         (static_specs): Remove predefines.
1101         * system.h: Poison CPP_PREDEFINES.
1102         * config/freebsd.h, config/openbsd.h, config/ptx4.h, config/svr3.h,
1103         config/svr4.h, doc/tm.texi: Remove references to CPP_PREDEFINES.
1104
1105 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
1106
1107         * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68k-none.h,
1108         config/m68k/m68k.h, config/m68k/m68kemb.h, config/m68k/m68kv4.h,
1109         config/m68k/openbsd.h, config/m68k/rtemself.h: Remove CPP_PREDEFINES,
1110         use TARGET_OS_CPP_BUILTINS and TARGET_CPU_CPP_BUILTINS instead.
1111
1112 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
1113
1114         PR c/9209
1115         * c-common.c, c-common.h (dollars_in_ident): Remove.
1116         * c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true.
1117         (c_common_init_options, c_common_decode_option): Set dollars_in_ident.
1118         * cpphash.h (warned_dollar): Rename warn_dollars.
1119         * cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang)
1120         Permit dollars regardless of -std=.
1121         (post_options): Set warn_dollars.
1122         * cpplex.c (forms_identifier_p): Use warn_dollars.
1123         * config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h:
1124         Remove redundant definitions of DOLLARS_IN_IDENTIFIERS.
1125         * doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi:
1126         Update documentation.
1127
1128 2003-05-17  Andreas Schwab  <schwab@suse.de>
1129
1130         * config/m68k/m68k.c (m68k_output_function_prologue): Use
1131         HOST_WIDE_INT_PRINT_DEC for fprintf and %wd for asm_fprintf when
1132         formatting a HOST_WIDE_INT.
1133         (m68k_output_function_epilogue): Likewise.
1134
1135 2003-05-17  Zack Weinberg  <zack@codesourcery.com>
1136
1137         * doc/install.texi: Remove information about desupported targets.
1138
1139 2003-05-17  Andreas Schwab  <schwab@suse.de>
1140
1141         * config/m68k/coff.h: Remove support for Sun FPA and Sun SKY board.
1142         * config/m68k/linux.h: Likewise.
1143         * config/m68k/m68k-none.h: Likewise.
1144         * config/m68k/netbsd-elf.h: Likewise.
1145         * config/m68k/sgs.h: Likewise.
1146         * config/m68k/m68k.h: Likewise.
1147         * config/m68k/m68k.md: Likewise.
1148         * config/m68k/m68k.c: Likewise.
1149         * doc/md.texi (Machine Constraints): Remove Sun FPA specific
1150         constraints.
1151         * doc/invoke.texi (Option Summary): Remove -mfpa.
1152         (M680x0 Options): Likewise.
1153
1154 2003-05-17  David Edelsohn  <edelsohn@gnu.org>
1155
1156         * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
1157
1158 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
1159
1160         * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS.
1161         * config/sparc/liteelf.h, config/sparc/openbsd64.h,
1162         config/sparc/rtemself.h, config/sparc/sol2-64.h,
1163         config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h:
1164         Update for use of TARGET_SUB_OS_CPP_BUILTINS.
1165
1166 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
1167
1168         * i960/i960.h, i960/rtems.h: Use TARGET_OS_CPP_BUILTINS and
1169         TARGET_CPU_CPP_BUILTINS in preference to CPP_PREDEFINES.
1170
1171 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
1172
1173         * config.gcc (sparc-*-sysv4*): Add sparc/sysv4-only.h.
1174         * sparc/aout.h, sparc/elf.h, sparc/freebsd.h, sparc/linux.h,
1175         sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, sparc/liteelf.h,
1176         sparc/netbsd-elf.h, sparc/openbsd.h, sparc/openbsd64.h,
1177         sparc/pbd.h, sparc/rtemself.h, sparc/sol2-64.h, sparc/sol2-bi.h,
1178         sparc/sol2.h, sparc/sp64-elf.h, sparc/sp86-elf.h, sparc/sparc.h,
1179         sparc/sysv4.h,
1180         * sparc/sysv4-only.h: New.
1181
1182 2003-05-17  Alan Modra  <amodra@bigpond.net.au>
1183
1184         * function.c (assign_parms): Check for zero size args.
1185
1186 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1187
1188         * cfgloopanal.c (test_for_iteration): Use string concatentation on
1189         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
1190         function calls into one.
1191         * dbxout.c (dbxout_symbol): Likewise.
1192         * defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise.
1193         * dwarf2asm.c (dw2_asm_output_data_uleb128,
1194         dw2_asm_output_data_sleb128): Likewise.
1195         * genrecog.c (debug_decision_2): Likewise.
1196         * loop.c (emit_prefetch_instructions): Likewise.
1197         * print-rtl.c (print_rtx): Likewise.
1198         * print-tree.c (print_node_brief, print_node): Likewise.
1199         * ra-debug.c (dump_igraph, dump_graph_cost,
1200         dump_static_insn_cost): Likewise.
1201         * ra-rewrite.c (dump_cost): Likewise.
1202         * sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
1203         * sreal.c (dump_sreal): Likewise.
1204         * unroll.c (unroll_loop, precondition_loop_p): Likewise.
1205         * varasm.c (assemble_vtable_entry): Likewise.
1206
1207         * avr.c (avr_output_function_prologue,
1208         avr_output_function_epilogue, print_operand): Fix format specifier
1209         warnings.
1210         (init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED.
1211         * avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings.
1212
1213 2003-05-16  Geoffrey Keating  <geoffk@apple.com>
1214
1215         * config/rs6000/rs6000.c (expand_block_move): Unify the TARGET_STRING
1216         and ! TARGET_STRING cases.
1217
1218         * doc/cppopts.texi (-undef): Fix texinfo warning.
1219
1220         * doc/cppopts.texi (-H): Document that -H works for PCH files too.
1221         * cppfiles.c (validate_pch): When -H is used, print some information
1222         about PCH files found.
1223
1224 2003-05-16  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1225
1226         * config/mips/t-elf: Remove obsolete rules adding dependencies on tm.h.
1227         * config/mips/t-isa3264, config/mips/t-r3900: Likewise.
1228         * config/mips/t-sr71k: Likewise.
1229
1230 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1231
1232         * arc.c (arc_output_function_prologue,
1233         arc_output_function_epilogue): Fix format specifier warnings.
1234         * arc.h (LARGE_INT): Fix signed/unsigned warnings.
1235
1236         * v850.c (print_operand): Fix format specifier warnings.
1237
1238         * ns32k.c (ADJSP, ns32k_output_function_prologue): Fix format
1239         specifier warnings.
1240
1241         * mcore.c (mcore_print_operand_address, mcore_print_operand): Fix
1242         format specifier warnings.
1243
1244         * ip2k.c (function_prologue, function_epilogue, print_operand):
1245         Fix format specifier warnings.
1246         * ip2k.md: Likewise.
1247
1248         * i960.c (i960_output_function_prologue, i960_print_operand,
1249         i960_print_operand_addr): Fix format specifier warnings.
1250
1251         * i370.c (ascebc, ebcasc): Wrap in macros controlling usage.
1252         (i370_output_function_prologue): Fix format specifier warnings.
1253         * i370.h (PRINT_OPERAND): Likewise.
1254
1255         * fr30.c (fr30_print_operand): Fix format specifier warnings.
1256
1257         * dsp16xx.c (print_operand_address): Fix format specifier warning.
1258         * dsp16xx.h (INCLUDE_DEFAULTS): Add missing initializers.
1259
1260         * c4x.c (c4x_print_operand, c4x_print_operand_address): Fix format
1261         specifier warnings.
1262
1263         * alpha.c (print_operand_address, alpha_start_function,
1264         unicosmk_output_ssib): Use string concatentation on
1265         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
1266         function calls into one.
1267         * arm.c (arm_print_operand): Likewise.
1268         * cris.c (cris_asm_output_mi_thunk): Likewise.
1269         * frv.c (frv_asm_output_mi_thunk): Likewise.
1270         * ia64.c (ia64_print_operand, process_set): Likewise.
1271         * m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk):
1272         Likewise.
1273         * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
1274         * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
1275         * pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise.
1276         * pa.h (PRINT_OPERAND_ADDRESS): Likewise.
1277         * rs6000.c (rs6000_va_start, print_operand_address): Likewise.
1278         * s390.c (s390_assemble_integer): Likewise.
1279         * sparc.c (sparc_flat_function_prologue,
1280         sparc_flat_function_epilogue): Likewise.
1281         * stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise.
1282         * vax.c (vax_output_mi_thunk): Likewise.
1283
1284         * frv.c (frv_print_operand_memory_reference): Fix format specifier
1285         warning.
1286         (frv_rtx_costs): Mark parameter with ATTRIBUTE_UNUSED.
1287
1288         * m68k.c (m68k_output_function_epilogue): Fix format specifier
1289         warnings.
1290
1291         * stormy16-protos.h (xs_hi_general_operand,
1292         xs_hi_nonmemory_operand): Prototype.
1293         * stormy16.c (xstormy16_output_shift): Fix format specifier
1294         warnings.
1295
1296         * cris.c: Fix format specifier warnings.
1297
1298 2003-05-16  Nick Clifton  <nickc@redhat.com>
1299
1300         * config/arm/lib1funcs.asm: Fix typo: LSM instead of LSYM.
1301
1302 2003-05-16  Wolfgang Bangerth <bangerth@dealii.org>
1303
1304         * doc/bugreport.texi: Remove most of the of the preface of the
1305         bugs section.
1306
1307 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
1308
1309         * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
1310         .save XX, r0.
1311
1312 2003-05-15  Roger Sayle  <roger@eyesopen.com>
1313
1314         * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo.
1315
1316 2003-05-15  Eric Christopher  <echristo@redhat.com>
1317
1318         * cfgcleanup.c (merge_blocks): Fix return value.
1319
1320 2003-05-15 Eric Christopher <echristo@redhat.com>
1321
1322         * combine.c (expand_compound_operation): Make sure
1323         that zero_extend operation is profitable.
1324
1325 2003-05-15  Richard Henderson  <rth@redhat.com>
1326
1327         * config/alpha/linux.h, config/alpha/linux-elf.h: Remove
1328         code protected by USE_GNULIBC_1.
1329
1330 2003-05-15  Zack Weinberg  <zack@codesourcery.com>
1331
1332         * config.gcc: Purge all targets obsoleted in GCC 3.3.  Also
1333         remove hppa*-*-mpeix* which could not be built, and prune
1334         files from tmake_file= or tm_file= lists that don't exist.
1335
1336         * config/alpha/alpha-interix.h, config/alpha/alpha32.h
1337         * config/alpha/t-interix, config/arm/conix-elf.h
1338         * config/arm/t-arm-aout, config/arm/t-strongarm-coff
1339         * config/arm/unknown-elf-oabi.h, config/i386/win32.h
1340         * config/m68k/3b1.h, config/m68k/3b1g.h, config/m68k/amix.h
1341         * config/m68k/atari.h, config/m68k/ccur-GAS.h, config/m68k/crds.h
1342         * config/m68k/hp2bsd.h, config/m68k/hp3bsd.h
1343         * config/m68k/hp3bsd44.h, config/m68k/linux-aout.h
1344         * config/m68k/m68k-psos.h, config/m68k/mot3300.h
1345         * config/m68k/pbb.h, config/m68k/plexus.h, config/m68k/sun2.h
1346         * config/m68k/sun2o4.h, config/m68k/sun3.h, config/m68k/sun3mach.h
1347         * config/m68k/sun3n.h, config/m68k/sun3n3.h, config/m68k/sun3o3.h
1348         * config/m68k/t-mot3300, config/m68k/t-mot3300-gald
1349         * config/m68k/t-mot3300-gas, config/m68k/t-mot3300-gld
1350         * config/m68k/tower-as.h, config/m68k/tower.h
1351         * config/m88k/aout-dbx.h, config/m88k/m88k-aout.h
1352         * config/m88k/m88k-modes.def, config/m88k/m88k-move.sh
1353         * config/m88k/m88k-protos.h, config/m88k/m88k.c
1354         * config/m88k/m88k.h, config/m88k/m88k.md, config/m88k/openbsd.h
1355         * config/m88k/sysv4.h, config/m88k/t-luna, config/m88k/t-luna-gas
1356         * config/m88k/t-m88k, config/m88k/t-sysv4, config/mcore/gfloat.h
1357         * config/mips/rtems64.h, config/mips/sni-gas.h
1358         * config/mips/sni-svr4.h, config/mips/t-ecoff
1359         * config/mn10200/lib1funcs.asm, config/mn10200/mn10200-protos.h
1360         * config/mn10200/mn10200.c, config/mn10200/mn10200.h
1361         * config/mn10200/mn10200.md, config/mn10200/t-mn10200
1362         * config/pa/pa-hiux.h, config/pa/pa-hpux7.h, config/pa/pa-hpux9.h
1363         * config/pa/pa-oldas.h, config/pa/t-mpeix, config/psos.h
1364         * config/romp/romp-protos.h, config/romp/romp.c
1365         * config/romp/romp.h, config/romp/romp.md, config/rs6000/aix31.h
1366         * config/rs6000/aix3newas.h, config/rs6000/mach.h
1367         * config/sparc/bsd.h, config/sparc/hal.h
1368         * config/sparc/linux-aout.h, config/sparc/lynx-ng.h
1369         * config/sparc/lynx.h, config/sparc/netbsd.h
1370         * config/sparc/sp86x-aout.h, config/sparc/splet.h
1371         * config/sparc/sun4gas.h, config/sparc/sun4o3.h
1372         * config/sparc/sunos4.h, config/sparc/t-chorus-elf
1373         * config/sparc/t-halos, config/sparc/t-sparcbare
1374         * config/sparc/t-splet, config/sparc/t-sunos41
1375         * config/v850/rtems.h: Delete file.
1376
1377 2003-05-15  Aldy Hernandez  <aldyh@redhat.com>
1378
1379         * config/rs6000/rs6000-protos.h (function_value): Protoize.
1380
1381         * config/rs6000/rs6000.h (FUNCTION_VALUE): Call function.
1382
1383         * config/rs6000/rs6000.c (rs6000_function_value): New.
1384
1385 2003-05-15  Philip Blundell  <philb@gnu.org>
1386
1387         * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
1388         All uses updated.
1389         (arm_tune_xscale): New variable.
1390         (arm_override_options): Set it.
1391         (arm_adjust_cost): Use it in place of arm_arch_xscale.
1392         (arm_gen_load_multiple): Likewise.
1393         (arm_gen_store_multiple): Likewise.
1394         * config/arm/arm.md (is_xscale): Likewise.
1395         * config/arm/arm.h (arm_tune_xscale): Declare.
1396
1397 2003-05-15  Philip Blundell  <philb@gnu.org>
1398
1399         PR target/10730
1400         * config/arm/arm.c (adjacent_mem_locations): Reject offsets
1401         involving invalid constants.
1402
1403 2003-05-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1404
1405         * pa.c (hppa_expand_prologue): Remove blockage.
1406
1407 2003-05-15  Wolfgang Bangerth <bangerth@dealii.org>
1408
1409         * doc/bugreport.texi: Remove most of the bug reporting
1410         instructions and merge them into bugs.html.
1411
1412 2003-05-14  Matt Kraai  <kraai@alumni.cmu.edu>
1413
1414         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
1415         g_switch_value to unsigned HOST_WIDE_INT.
1416
1417 2003-05-14  Eric Christopher  <echristo@redhat.com>
1418
1419         * combine.c: Fix header comments.
1420         (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
1421         to all calls and prototype.
1422
1423 2003-05-14  Roger Sayle  <roger@eyesopen.com>
1424
1425         PR optimization/10764
1426         * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3):
1427         Add an explicit clobber to show that UNSPEC_FPATAN clobbers st(1).
1428         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3):  Likewise,
1429         add an explicit clobber to show that UNSPEC_FYL2X clobbers st(1).
1430         (logsf2, logdf2, logxf2, logtf2): Update expander patterns to match
1431         the corresponding *fyl2x_?fxf3 instructions.
1432
1433 2003-05-14  Bob Wilson  <bob.wilson@acm.org>
1434
1435         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59.
1436         * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16,
1437         XCHAL_HAVE_L32R): New.
1438         * config/xtensa/xtensa-protos.h (non_const_move_operand,
1439         xtensa_load_constant, xtensa_function_prologue,
1440         xtensa_function_epilogue): Delete prototypes.
1441         (xtensa_expand_prologue): New.
1442         * config/xtensa/xtensa.c (frame_size_const,
1443         TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG,
1444         non_const_move_operand, xtensa_load_constant, xtensa_reorg,
1445         xtensa_function_prologue): Delete.
1446         (add_operand, xtensa_mem_offset): Formatting.
1447         (move_operand): If the const16 option is available, allow any SFmode
1448         and SImode constants.
1449         (xtensa_emit_move_sequence): Inline the former contents of
1450         xtensa_load_constant with modifications to handle the const16 option.
1451         (override_options): Add xtensa_char_to_class['W'] and set it to
1452         the general register class only if the const16 option is enabled.
1453         Fix formatting.  Disallow PIC when using the const16 option.
1454         (print_operand): Reorganize to switch on "letter" instead of the
1455         RTL code.  Add output_operand_lossage calls for invalid cases.
1456         Add support for 't' and 'b' letters.
1457         (xtensa_expand_prologue): New function to replace
1458         xtensa_function_prologue and xtensa_reorg.
1459         (xtensa_function_epilogue): Declare this as static.  Delete code
1460         to print the retw.n or retw instruction.
1461         (xtensa_return_addr): Use A0_REG instead of 0.
1462         (xtensa_rtx_costs): Add costs for using the const16 option.
1463         * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New.
1464         (TARGET_DEFAULT): Add CONST16 if L32R instructions not available.
1465         (TARGET_SWITCHES): Add "const16" and "no-const16".
1466         (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter.
1467         (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not
1468         using the const16 option.
1469         (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn.
1470         (TRAMPOLINE_SIZE): Change from 49 to 59.
1471         (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline.
1472         (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses
1473         when using the const16 option.
1474         (PREDICATE_CODES): Delete non_const_move_operand.
1475         * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and
1476         UNSPECV_ENTRY.
1477         (movdi, movdf): If the source is a constant, always expand to a
1478         sequence of movsi insns.
1479         (movdi_internal, movdf_internal): Remove alternative using l32r insns.
1480         (movsi_internal, movsf_internal): Add alternative using const16 insns.
1481         (movsf): Add const16 support.
1482         (entry, prologue, epilogue): New.
1483         (set_frame_ptr): Add missing mode for unspec_volatile operation.
1484         Likewise for subsequent split pattern.
1485         * doc/invoke.texi (Option Summary, Xtensa Options): Document new
1486         "-mconst16" and "-mno-const16" options.
1487
1488 2003-05-14  Richard Henderson  <rth@redhat.com>
1489
1490         * config/ia64/ia64.c (ia64_expand_load_address): Force destination
1491         to be DImode register.  Merge load_symptr.
1492         * config/ia64/ia64.md (load_symptr): Remove.
1493
1494 2003-05-14  Richard Henderson  <rth@redhat.com>
1495
1496         * rtl.h (TREE_CONSTANT_POOL_ADDRESS_P): Rename from
1497         DEFERRED_CONSTANT_P.
1498         * integrate.c (copy_rtx_and_substitute): Update use.
1499         * varasm.c (build_constant_desc): Set SYMBOL_REF_DECL
1500         to the copy generated.
1501         (maybe_output_constant_def_contents): Examine TREE_ASM_WRITTEN
1502         of the constant to see if we should emit.
1503         (mark_constant): Similarly.
1504         (output_constant_def_contents): Set TREE_ASM_WRITTEN.
1505
1506 2003-05-14  David Edelsohn  <edelsohn@gnu.org>
1507
1508         * config/rs6000/rs6000.md (movsi_internal2): Use compare for self
1509         move record condition.
1510         (movdi_internal2): Same.
1511
1512 2003-05-14  Nathan Sidwell  <nathan@codesourcery.com>
1513
1514         * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here.
1515         (GCOV_TAG_*) Force type to gcov_unsigned_t.
1516         (GCOV_CHECK, GCOV_CHECK_READING, GCOV_CHECK_WRITING): New.
1517         (struct gcov_var): Remove modified. Add start, length, offset,
1518         overread. Have buffer array for libgcov.
1519         (gcov_sync, gcov_seek): Definitions moved to gcov-io.c.
1520         (gcov_position, gcov_rewrite, gcov_is_eof): Adjust.
1521         * gcov-io.c (gcov_open): Set mode, do not read anything.
1522         (gcov_close): Write final block.
1523          (gcov_write_block, gcov_allocate): New.
1524         (gcov_write_bytes): Make static. Write or allocate buffer.
1525         (gcov_write_unsigned, gcov_write_counter): Buffer can never be
1526         null.
1527         (gcov_write_string): Adjust.
1528         (gcov_write_tag)
1529         (gcov_write_length): Adjust. Flush the block.
1530         (gcov_write_tag_length): Buffer can never be null.
1531         (gcov_read_bytes): Make static. Read in block.
1532         (gcov_sync): Moved here. Adjust.
1533         (gcov_seek): Moved here. Adjust.
1534         * coverage.c (read_counts_file): Adjust.
1535         * gcov-dump.c (print_prefix): Add position parameter.
1536         (flag_dump_positions): New flag.
1537         (options, main, print_usage): Add it.
1538         (dump_file, tag_blocks, tag_arcs, tag_lines, tag_counters,
1539         tag_summary): Adjust.
1540         * gcov.c (read_graph_file, read_count_file): Adjust.
1541         * libgcov.c (gcov_exit): Adjust.
1542
1543         * Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files
1544         (libgcov.a): Depend on libgcc.a.
1545         (gcov.o, gcov-dump.o): Add gcov-io.c.
1546         * mklibgcc.in (libgcov_c_dep): Use $(srcdir).
1547
1548         * loop.c (check_dbra_loop): Factor common test.
1549
1550 2003-05-14  Ben Elliston  <bje@wasabisystems.com>
1551
1552         * doc/md.texi (Automaton pipeline description): Grammar fixes.
1553
1554 2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
1555
1556         * target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
1557         (TARGET_INITIALIZER): Include it.
1558         * target.h (struct gcc_target): Add machine_dependent_reorg field.
1559         * toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.
1560         * system.h: Poison MACHINE_DEPENDENT_REORG.
1561
1562         * config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
1563         * config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
1564         * config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1565         (alpha_handle_trap_shadows): Remove "first insn" parameter.
1566         (alpha_align_insns): Likewise.
1567         (alpha_reorg): Likewise.  Make static.  Update calls to above
1568         functions.
1569
1570         * config/arm/arm-protos.h (arm_reorg): Remove declaration.
1571         * config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
1572         * config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1573         (arm_reorg): Remove parameter.  Make static.
1574
1575         * config/avr/avr-protos.h (machine_dependent_reorg): Remove.
1576         * config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
1577         * config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1578         (avr_reorg): Renamed from machine_dependent_reorg.  Make static.
1579         Remove parameter.
1580
1581         * config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
1582         * config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
1583         * config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1584         (c4x_reorg): Renamed from c4x_process_after_reload.  Make static.
1585         Remove parameter.
1586
1587         * config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
1588         * config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
1589         * config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.
1590
1591         * config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
1592         * config/frv/frv.c: Remove orphaned comment.
1593
1594         * config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
1595         * config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
1596         * config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1597         (ix86_reorg): Renamed from x86_machine_dependent_reorg.  Make static.
1598         Remove parameter.
1599
1600         * config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
1601         * config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
1602         * config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1603         (emit_insn_group_barriers): Remove "first insn" parameter.
1604         (emit_all_insn_group_barriers): Likewise.
1605         (ia64_reorg): Likewise.  Make static.  Update calls to above functions.
1606         (ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.
1607
1608         * config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
1609         * config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
1610         * config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1611         (ip2k_reorg): Renamed from machine_dependent_reorg.  Make static.
1612         Remove parameter.
1613
1614         * config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
1615         * config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
1616         * config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1617         (m68hc11_reorg): Make static.  Remove parameter.
1618
1619         * config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
1620         * config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
1621         * config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1622         (conditionalize_optimization): Remove parameter.
1623         (mcore_reorg): Renamed from mcore_dependent_reorg.  Remove parameter.
1624         Make static.  Update call to conditionalize_optimization.
1625
1626         * config/mips/mips-protos.h (machine_dependent_reorg): Remove.
1627         * config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
1628         * config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1629         (mips_reorg): Renamed from machine_dependent_reorg.  Remove parameter.
1630         Make static.
1631
1632         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
1633         * config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
1634         * config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1635         (mmix_reorg): Renamed from mmix_machine_dependent_reorg.  Make static.
1636         Remove parameter.
1637
1638         * config/pa/pa-protos.h (pa_reorg): Remove declaration.
1639         * config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
1640         * config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1641         (pa_combine_instructions): Remove "first insn" parameter.
1642         (remove_useless_addtr_insns): Likewise.
1643         (pa_reorg): Likewise.  Make static.  Update calls to above functions.
1644
1645         * config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
1646         commented-out definition.
1647
1648         * config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
1649         * config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
1650         * config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1651         (s390_reorg): Renamed from s390_machine_dependent_reorg.  Make static.
1652         Remove parameter.
1653
1654         * config/sh/sh-protos.h (machine_dependent_reorg): Remove.
1655         * config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
1656         * config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1657         (sh_reorg): Renamed from machine_dependent_reorg.  Make static.
1658         Remove parameter.
1659         (sh_output_mi_thunk): Call sh_reorg directly.
1660         * config/sh/sh.md: Update comment.
1661
1662         * config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
1663         commented-out definition.
1664
1665         * config/v850/v850-protos.h (v850_reorg): Remove declaration.
1666         * config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
1667         * config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1668         (v850_reorg): Make static.  Remove parameter.
1669
1670         * config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
1671         * config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
1672         * config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1673         (xtensa_reorg): Make static.  Remove parameter.
1674
1675         * doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
1676         (TARGET_MACHINE_DEPENDENT_REORG): Document.
1677
1678 2003-05-13  Richard Henderson  <rth@redhat.com>
1679
1680         * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if
1681         the old decl had instantiated DECL_RTL.
1682
1683 2003-05-13  Mike Stump  <mrs@apple.com>
1684
1685         * doc/invoke.texi (Option Summary): Kill off documentation for -$.
1686
1687 2003-05-13  Janis Johnson  <janis187@us.ibm.com>
1688
1689         * config/rs6000/sysv4.h (OUTPUT_ASM_ALIGNED_LOCAL): Expect
1690         HOST_WIDE_INT argument.
1691
1692 2003-05-13  Jason Merrill  <jason@redhat.com>
1693
1694         * tree.h (STRIP_MAIN_TYPE_NOPS): New macro.
1695
1696         * tree.c (iterative_hash_expr): New fn.
1697
1698         * c-semantics.c (emit_local_var): Don't mess with temp slots if
1699         there's no initializer.
1700
1701 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
1702
1703         * final.c (final_scan_insn): Apply the effects of frame-related
1704         delay slot insns before emitting a delayed branch.
1705
1706 2003-05-13  Nick Clifton  <nickc@redhat.com>
1707
1708         * config/mcore/mcore.md (jump): Use emit_jump_insn.
1709
1710 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
1711
1712         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Second
1713         parameter of ASM_OUTPUT_SKIP must have type unsigned HOST_WIDE_INT.
1714
1715 2003-05-12  DJ Delorie  <dj@redhat.com>
1716
1717         * expr.c (move_by_pieces): Honor the alignment of TO and FROM.
1718         (emit_push_insn): Don't use push when the source alignment is less
1719         than the stack's push rounding.
1720
1721 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
1722
1723         * diagnostic.c (output_format): Add support for %m.
1724         (output_printf, output_verbatim, diagnostic_set_info,
1725         verbatim): Set err_no field of the text_info structure being
1726         initialized.
1727         (fatal_io_error): Delete function.
1728         * diagnostic.h (text_info): Add err_no field.
1729         * toplev.h (fatal_io_error): Delete prototype.
1730
1731         * c-opts.c, c-pch.c, dwarfout.c, ggc-common.c, ggc-page.c, graph.c
1732         * toplev.c, config/mips/mips.c, config/rs6000/host-darwin.c
1733         * objc/objc-act.c: Replace all calls to fatal_io_error with
1734         calls to fatal_error; add ": %m" to the end of all the affected
1735         error messages.
1736
1737 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
1738
1739         * varasm.c (notice_rtl_inlining_of_deferred_constant): New function.
1740         * rtl.h: Prototype it.
1741         * integrate.c (copy_rtx_and_substitute <SYMBOL_REF>): Call it
1742         when appropriate.
1743
1744 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
1745
1746         * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.
1747         ("*iorsi3_oi"): Likewise.
1748
1749 2003-05-13  Richard Earnshaw  <rearnsha@arm.com>
1750
1751         * arm.md (compare_scc): Use shorter sequence for EQ case.
1752         (ior_scc_scc_cmp, and_scc_scc_cmp): New insn-and-split patterns.
1753         (and_scc_scc): Ensure split only applies when there is a dominance
1754         of the comparisons.
1755         (and_scc_scc_nodom): New insn-and-split pattern.
1756
1757 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
1758
1759         * unwind-dw2.c (uw_init_context_1): Don't pass &outer_cfa directly
1760         to _Unwind_SetGRPtr().
1761
1762 2003-05-13  Michael Eager <eager@mvista.com>
1763
1764         * Makefile.in: Initialize program_transform_cross_name from
1765         @program_transform_name@ instead of target_alias.
1766
1767 2003-05-12  Janis Johnson  <janis187@us.ibm.com>
1768             Alan Modra  <amodra@bigpond.net.au>
1769             Jakub Jelinek  <jakub@redhat.com>
1770
1771         * configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
1772         * configure: Rebuild.
1773         * config/rs6000/rs6000-protos.h: Update.
1774         * config/rs6000/rs6000.c (rs6000_tls_size): New.
1775         (rs6000_tls_size_string): New.
1776         (rs6000_parse_tls_size_option): New.
1777         (rs6000_legitimize_tls_address): New.
1778         (rs6000_tls_get_addr): New.
1779         (rs6000_got_sym): New.
1780         (rs6000_tls_symbol_ref): New.
1781         (rs6000_tls_symbol_ref_1): New.
1782         (rs6000_get_some_local_dynamic_name): New.
1783         (rs6000_get_some_local_dynamic_name_1): New.
1784         (TARGET_HAVE_TLS): New.
1785         (TARGET_CANNOT_FORCE_CONST_MEM): New.
1786         (rs6000_override_options): Handle -mtls-size option.
1787         (constant_pool_expr_1): Handle TLS symbols.
1788         (rs6000_legitimize_address): Handle TLS symbols.
1789         (rs6000_tls_referenced_p): New.
1790         (rs6000_legitimate_address): Handle TLS symbols.
1791         (rs6000_emit_move): Handle TLS symbols.
1792         (print_operand): Handle TLS symbols.
1793         (uses_TOC): Handle TLS symbols.
1794         (rs6000_emit_prologue): Use symbol for unspec constant.
1795         * config/rs6000/rs6000.h (HAVE_AS_TLS): New.
1796         (some_ld_name): New.
1797         (LEGITIMATE_CONSTANT_P): Handle TLS symbols.
1798         (PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols.
1799         (PREDICATE_CODES): Add rs6000_tls_symbol_ref.
1800         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
1801         Support TLS.
1802         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64, tls_dtprel_32,
1803         tls_dtprel_64, tls_dtprel_ha_32, tls_dtprel_ha_64, tls_dtprel_lo_32,
1804         tls_dtprel_lo_64, tls_got_dtprel_32, tls_got_dtprel_64, tls_tprel_32,
1805         tls_tprel_64, tls_tprel_ha_32, tls_tprel_ha_64, tls_tprel_lo_32,
1806         tls_tprel_lo_64, tls_got_tprel_32, tls_got_tprel_64, tls_tls_32,
1807         tls_tls_64): New.
1808         * config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size.
1809
1810 2003-05-12  Neil Booth  <neil@cat.daikokuya.co.uk>
1811
1812         * Makefile.in (stage2_build, stage3_build, stage4_build):
1813         Set BUILD_CC to the same as CC.
1814
1815 2003-05-12  Neil Booth  <neil@daikokuya.co.uk>
1816
1817         * alloc-pool.c (last_id): Put in ENABLE_CHECKING guards.
1818
1819 2003-05-12  Andreas Schwab  <schwab@suse.de>
1820
1821         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp'
1822         as unused.
1823         (bundling): Initialize 'pos'.
1824         (ia64_expand_builtin): Initialize 'rmode'.
1825
1826 2003-05-12  David Edelsohn  <edelsohn@gnu.org>
1827
1828         * config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT.
1829         (ASM_OUTPUT_ALIGNED_COMMON): Same.
1830         (ASM_OUTPUT_LOCAL): Same.
1831
1832 Mon May 12 21:53:29 CEST 2003  Jan Hubicka  <jh@suse.cz>
1833
1834         * varasm.c (output_constant):  Fix underflow.
1835
1836 2003-05-12  Mark Mitchell  <mark@codesourcery.com>
1837
1838         PR other/10745
1839         * configure.in: Correct detection of GNU ld version number.
1840         * configure: Regenerated.
1841
1842 2003-05-12  Zack Weinberg  <zack@codesourcery.com>
1843
1844         * diagnostic.c (diagnostic_for_decl): Take a
1845         diagnostic_context argument.  Restructure to be consistent
1846         with diagnostic_report_diagnostic.
1847         (diagnostic_count_diagnostic): Now static.  Take a
1848         diagnostic_info argument, not just a diagnostic_t.  Some code
1849         moved here from internal_error.  Move a case label for
1850         clarity.
1851         (diagnostic_action_after_output): New function.  Code moved
1852         here from internal_error and fatal_error.
1853         (bug_report_request): New #define so that this text appears in
1854         only one place.
1855         (diagnostic_report_diagnostic): Update to match changes to
1856         diagnostic_count_diagnostic.  Call diagnostic_action_after_output.
1857         (diagnostic_set_info): Call gettext here.
1858
1859         (pedwarn): Update comment.  Don't call gettext here.
1860         (sorry): Use report_diagnostic.  Don't call gettext here.
1861         (fatal_error): Remove final fnotice and exit, but call
1862         real_abort to prevent warnings about noreturn function returning.
1863         (internal_error): Likewise.  Don't do ICE suppression here nor
1864         call context->internal_error.
1865         (warning_with_decl): Suppress for decls in system headers.
1866         Adjust call to diagnostic_for_decl.
1867         (pedwarn_with_decl): Likewise.
1868         (error_with_decl): Adjust call to diagnostic_for_decl.
1869         (error_recursion): Use bug_report_request.
1870
1871         * diagnostic.h: Remove prototype of diagnostic_count_diagnostic.
1872         * objc/objc-act.c (error_with_ivar, warn_with_method): Don't call
1873         diagnostic_count_diagnostic.
1874
1875 2003-05-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1876
1877         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON): Correct last patch.
1878
1879 Mon May 12 15:57:54 CEST 2003  Jan Hubicka  <jh@suse.cz>
1880
1881         * rs6000/darwin.h (ASM_OUTPUT_COMMON): Accept HOST_WIDE_INT
1882         * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Fix warning.
1883         * mips/mips.h (ASM_OUTPUT_SKIP):  Fix typo in the previous patch.
1884
1885 2003-05-12  Roger Sayle  <roger@eyesopen.com>
1886
1887         * doc/rtl.texi: Document zero_extract as a valid destination
1888         of a set insn.
1889
1890 2003-05-12  Richard Earnshaw  <rearnsha@arm.com>
1891
1892         * arm/lib1funcs.asm (LSYM): Define -- on ELF prefix a local symbol with
1893         '.'.  Change all local symbol definitions and references to use LSYM.
1894
1895 Mon May 12 11:32:53 CEST 2003  Jan Hubicka  <jh@suse.cz>
1896
1897         * expr.h (assemble_static_space): Update prototype.
1898         * output.h (assemble_zeros, output_constant): Likewise.
1899         * elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
1900         * alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
1901         it 64bit clean.
1902         * elf.h (ASM_OTUPUT_SKIP): Likewise.
1903         * unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
1904         * arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
1905         Expect HOST_WIDE_INT operand.
1906         * aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
1907         Expect HOST_WIDE_INT operand.
1908         * unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
1909         Expect HOST_WIDE_INT operand.
1910         * avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
1911         HOST_WIDE_INT operand.
1912         * c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
1913         ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
1914         * aout.h (ASM_OTUPUT_SKIP): Likewise.
1915         * cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
1916         * darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
1917         * dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
1918         * frv.h (ASM_OTUPUT_SKIP): Likewise.
1919         * h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
1920         * 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
1921         Make it 64bit
1922         clean.
1923         * att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
1924         * bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
1925         Make it 64bit clean.
1926         * darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
1927         * sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
1928         HOST_WIDE_INT operand
1929         * svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
1930         Expect HOST_WIDE_INT operand
1931         * sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
1932         * i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
1933         ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
1934         * ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
1935         Likewise.
1936         * m32r.h (ASM_OUTPUT_COMMON): Likewise.
1937         * 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
1938         Likewise.
1939         * amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1940         * crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1941         * hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
1942         ASM_OUTPUT_SKIP): Likewise.
1943         * m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
1944         Likewise.
1945         * m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
1946         ASM_OUTPUT_SKIP): Likewise.
1947         * m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
1948         ASM_OUTPUT_SKIP): Likewise.
1949         * mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
1950         * netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
1951         ASM_OUTPUT_SKIP): Likewise.
1952         * sgs.h (ASM_OUTPUT_SKIP): Likewise.
1953         * tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
1954         ASM_OUTPUT_SKIP): Likewise.
1955         * m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
1956         Likewise.
1957         * mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
1958         * iris.h (ASM_OUTPUT_LOCAL): Likewise.
1959         * mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
1960         * ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
1961         ASM_OUTPUT_SKIP): Make it 64bit clean.
1962         * pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
1963         Make it 64bit clean.
1964         * pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
1965         ASM_OUTPUT_SKIP): Make it 64bit clean.
1966         * hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
1967         64bit clean.
1968         * romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
1969         HOST_WIDE_INT argument
1970         * s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
1971         * sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
1972         HOST_WIDE_INT argument
1973         * sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
1974         * sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
1975         * svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
1976         * vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
1977         HOST_WIDE_INT argument
1978         * vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
1979         * xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
1980         * varasm.c (asm_output_bss, asm_output_aligned_bss,
1981         asm_emit_uninitialized, assemble_zeros, assemble_static_space):
1982         HOST_WIDE_INT argument
1983
1984 2003-05-10  Steven Bosscher  <steven@gcc.gnu.org>
1985
1986         * cgraphunit.c (cgraph_create_edges): Drop walk_tree in
1987         favor of walk_tree_without_duplicates.  Add comments.
1988
1989 2003-05-12  Josef Zlomek  <zlomekj@suse.cz>
1990
1991         * alloc-pool.h (ALLOC_POOL_ID_TYPE): New type.
1992         (struct alloc_pool_def): New element 'id'.
1993         * alloc-pool.c (fancy_abort): Extern function prototype.
1994         (abort): Macro which uses fancy_abort.
1995         (struct allocation_object_def): New structure.
1996         (ALLOCATION_OBJECT_PTR_FROM_USER_PTR): New macro.
1997         (USER_PTR_FROM_ALLOCATION_OBJECT_PTR): New macro.
1998         (last_id): New variable.
1999         (create_alloc_pool): Add the offset of u.data to size of element,
2000         increase and use last_id.
2001         (free_alloc_pool): Do the checking only when ENABLE_CHECKING.
2002         (pool_alloc): Likewise. Set ID for elements.
2003         (pool_free): Check whether the PTR was allocated from POOL.
2004
2005 2003-05-11  Richard Henderson  <rth@redhat.com>
2006
2007         PR c/10675
2008         * c-decl.c: Include hashtab.h.
2009         (detect_field_duplicates): New.
2010         (finish_struct): Use it.
2011         * Makefile.in (c-decl.o): Update.
2012         * c-parse.in (structsp_attr): Nreverse component_decl_list results.
2013         (component_decl_list, component_decl_list2,
2014         components, components_notype): Build list in reverse order.
2015         (enumlist): Clarify docs.  Use TREE_CHAIN not chainon.
2016
2017         * tree.c (chainon): Special case op2 null as well.
2018         Reorg for clarity.
2019
2020 2003-05-11  Roger Sayle  <roger@eyesopen.com>
2021
2022         * config/i386/i386.md (logsf2, logdf2, logxf2, logdf2): New patterns
2023         to implement log, logf and logl built-ins as inline x87 intrinsics.
2024         (UNSPEC_FYL2X): New unspec to represent x87's "fyl2x" instruction.
2025         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): New insn
2026         patterns for x87's "fyl2x" instruction, used by log?f2 patterns.
2027
2028         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2X like
2029         UNSPEC_FPATAN, i.e. replaces two stack operands with single result.
2030
2031 2003-05-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2032
2033         * Makefile.in (out_object_file): Don't set -Wno-error for ${cpu}.o.
2034
2035         * sparc.c (print_operand): Fix uninitialized warning.
2036
2037 2003-05-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2038
2039         * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only
2040         real insns.
2041         * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous
2042         condition.
2043
2044 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
2045
2046         * doc/cpp.texi: Fix typos.
2047
2048 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
2049
2050         * config/s390/s390.c (s390_function_arg_float): New function.
2051         (s390_function_arg_pass_by_reference): Use it.
2052         (s390_function_arg_advance): Likewise.
2053         (s390_function_arg): Likewise.
2054         (s390_va_arg): Likewise
2055
2056 2003-05-11  Nathan Sidwell  <nathan@codesourcery.com>
2057
2058         * coverage.h (coverage_counter_alloc): New function.
2059         * function.h (struct function): Remove arc_profile flag.
2060         * coverage.c (fn_ident): Remove.
2061         (fn_b_ctrs, no_coverage): New.
2062         (get_coverage_counts): Use current_function_funcdef_no.
2063         (coverage_counter_alloc): New.
2064         (coverage_counter_ref): Adjust.
2065         (coverage_begin_output): Check no_coverage. Use
2066         current_function_funcdef_no.
2067         (coverage_end_function): Likewise.
2068         (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather
2069         than clearing flag_inline_functions. Do not clear arc_profile
2070         flag.
2071         * function.c (prepare_function_start): Do not set arc_profile
2072         flag.
2073         * profile.c (instrument_edges): Return number of instrumented
2074         edges. Use a for loop.
2075         (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX
2076         local to here and simplify. Use profile_arc_flag not arc_profile
2077         flag.
2078         (find_spanning_tree): Reformat.
2079         * toplev.c (rest_of_compilation): Use profile_arc_flags and
2080         flag_test_coverage rather than arc_profile flag.
2081
2082 2003-05-11  Gabriel Dos Reis <gdr@integrable-solutions.net>
2083
2084         * doc/invoke.texi (Wctor-dtor-privacy): Update documentation.
2085
2086 2003-05-11  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2087
2088         * varasm.c (copy_constant, case VIEW_CONVERT_EXPR): New case.
2089
2090 2003-05-11  Bruno Haible  <bruno@clisp.org>
2091
2092         * cppfiles.c (find_or_create_entry): Preserve errno.
2093
2094 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
2095
2096         * c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into
2097         cpplib as it's a Standard Predefined Macro.
2098         * c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins.
2099         * cppinit.c (_cpp_init_builtins): Take HOSTED.  Define
2100         __STDC_HOSTED__ appropriately.
2101         * cpplib.h (_cpp_init_builtins): Update.
2102         * fix-header.c (read_scan_file): Update.
2103         * doc/cpp.texi, doc/cppopts.texi: Update documentation.
2104
2105 2003-05-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2106
2107         PR C++/689
2108         PR C++/9257
2109         * c-opts.c (c_common_decode_option): Don't set
2110         warn_ctor_dtor_privacy wen -Wall.
2111         * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default.
2112
2113 2003-05-10  Alexandre Oliva  <aoliva@redhat.com>
2114
2115         * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's
2116         patch.
2117
2118 2003-05-10  Zack Weinberg  <zack@codesourcery.com>
2119
2120         * diagnostic.c: Reorder functions for clarity, putting all the
2121         functions in the "error" family next to each other, and
2122         likewise all the functions in the "error_with_decl" family.
2123         Some other routines were moved too.  Add comments.
2124         (vbuild_message_string): Fold into sole caller.
2125
2126
2127 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
2128
2129         * except.c (EH_RETURN_STACKADJ_RTX): Do not define.
2130         (EH_RETURN_HANDLER_RTX): Likewise.
2131         (expand_builtin_eh_return): Do not copy stack adjustment
2132         if EH_RETURN_STACKADJ_RTX is not defined.
2133         (expand_eh_return): Likewise.  Also, do not pass stack
2134         adjustment as argument to the eh_return pattern.
2135         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just
2136         because EH_RETURN_STACKADJ_RTX is not defined.
2137         * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX
2138         is not defined, treat stack pointer like a regular register.
2139         (uw_init_context_1): Set up fake initial stack pointer register.
2140         (uw_install_context_1): Do not compute stack adjustment if
2141         EH_RETURN_STACKADJ_RTX is not defined.
2142
2143         * config/i386/i386.md ("eh_return"): Remove first argument.
2144         * config/mips/mips.md ("eh_return"): Likewise.
2145         * config/rs6000/rs6000.md ("eh_return"): Likewise.
2146         * config/sh/sh.md ("eh_return"): Likewise.
2147
2148         * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove.
2149
2150 2003-05-10  Alexander Aganichev  <aaganichev@yandex.ru>
2151
2152         * config/i386/i386.h (MODES_TIEABLE_P): Fix typo.
2153
2154 2003-05-10  Nathan Sidwell  <nathan@codesourcery.com>
2155
2156         * defaults.h (GCOV_TYPE_SIZE): Remove.
2157         * gcov-io.h (gcov_type): Set to specific mode int on target.
2158         (gcov_unsigned_t, gcov_position_t): New.
2159         (GCOV_TYPE_NODE): New.
2160         (GCOV_TAG_SUMMARY_LENGTH): Adjust.
2161         (GCOV_COUNTERS_SUMMABLE): New.
2162         (gcov_ctr_summary, gcov_sumary, gcov_fn_info, gcov_merge_fn,
2163         gcov_ctr_info, gcov_info): Adjust types.
2164         (gcov_var): Adjust types.
2165         (gcov_write_unsigned, gcov_write_tag,
2166         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
2167         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
2168         (gcov_position, gcov_sync, gcov_seek): Adjust gcov types.
2169         * gcov-io.c (gcov_write_unsigned, gcov_write_tag,
2170         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
2171         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
2172         * libgcov.c (gcov_crc32, gcov_version_mismatch, gcov_exit,
2173         __gcov_init, __gcov_merge_add): Adjust gcov types.
2174         * coverage.c (ctr_merge_functions): Constify.
2175         (ctr_names): New.
2176         (read_counts_file): Adjust gcov types. Only summarize & merge
2177         summable counters.
2178         (coverage_counter_ref): Use GCOV_TYPE_NODE.
2179         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
2180         build_ctr_info_value, build_gcov_info): Adjust types.
2181         * profile.c (branch_prob): Adjust gcov types.
2182         * gcov_dump (dump_file): Adjust gcov types.
2183
2184 2003-05-10  Richard Earnshaw  <rearnsha@arm.com>
2185
2186         * arm.md (DOM_CC_X_AND_Y, DOM_CC_NX_OR_Y, DOM_CC_X_OR_Y): New
2187         constants.
2188         (ior_scc_scc, and_scc_scc): New insn_and_split patterns.
2189         * arm.c (arm_select_dominance_cc_mode): Renamed from
2190         select_dominance_cc_mode, no-longer static.  Use DOM_CC... constants.
2191         Callers updated.
2192         * arm-protos.h (arm_select_dominance_cc_mode): Add prototype.
2193
2194 2003-05-09  Roger Sayle  <roger@eyesopen.com>
2195
2196         * config/alpha/alpha.c (alpha_start_function): Declare frame_size
2197         as unsigned to avoid signed/unsigned comparison warnings.
2198
2199 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
2200
2201         * config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n"
2202         instruction if the Xtensa density option is enabled.
2203
2204 2003-05-09  Matt Kraai <kraai@alumni.cmu.edu>
2205
2206        * mklibgcc.in: Remove extra quotes.
2207
2208 2003-05-09  Mark Mitchell  <mark@codesourcery.com>
2209
2210         * config/rs6000/rs6000.c (spe_init_builtins): Fix typo in creation
2211         of int_ftype_void.
2212
2213 2003-05-09  Alexandre Oliva  <aoliva@redhat.com>
2214
2215         * reload1.c (reload_cse_move2add): Don't turn an implicit
2216         truncation into a self-set in the narrow mode.
2217
2218 2003-05-09  Richard Earnshaw  <rearnsha@arm.com>
2219
2220         * arm.md (clzsi2): The CLZ instruction is predicable.
2221
2222 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
2223
2224         * config/xtensa/xtensa.c: Formatting.
2225
2226 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
2227
2228         * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS,
2229         instead of TREE_OPERAND to access the operand of a
2230         CONSTRUCTOR node.
2231
2232 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
2233
2234         * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only
2235         one operand.
2236
2237 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
2238
2239         * toplev.h (warning_with_file_and_line): Don't declare.
2240         (error_with_file_and_line): Likewise.
2241         * diagnostic.c (error_with_file_and_line): Remove.
2242         (warning_with_file_and_line): Likewise.
2243
2244 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
2245
2246         * c-parse.in (if_stmt_locus): New object.
2247         (if_prefix rule): Use it.  Don't use warning_with_file_and_line.
2248         (select_or_iter_stmt rule): Likewise.
2249         (if_stmt_file): Remove.
2250         (if_stmt_line): Likewise.
2251         * jump.c: include "diagnostic.h"
2252         (never_reached_warning): Don't use warning_with_file_and_line.
2253         * Makefile.in (jump.o): Add dependce on diagnostic.h
2254
2255 2003-05-09  Alan Modra  <amodra@bigpond.net.au>
2256
2257         * expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
2258         Move code handling pieces not larger than a word to..
2259         * function.c (assign_parms): ..here, but use change_address instead
2260         of adjust_address and operand_subword, and expand_binop instead of
2261         expand_shift.  Adjust calls to move_block_from_reg.
2262         * expr.h (move_block_from_reg): Update declaration.
2263         (copy_blkmode_from_reg): Formatting.
2264         * Makefile.in (function.o): Add $(OPTABS_H) to deps.
2265         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
2266         move_block_from_reg calls.
2267         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
2268         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
2269         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
2270         * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
2271         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
2272         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
2273         * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
2274         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
2275         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
2276
2277 2003-05-08  DJ Delorie  <dj@redhat.com>
2278
2279         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix
2280         to handle arguments for which MUST_PASS_IN_STACK is true (e.g.,
2281         variable-sized types).
2282         (xstormy16_function_arg): New.  Pass them that way too.
2283         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New.
2284         * config/stormy16/stormy16.h (FUNCTION_ARG): Call it.
2285
2286 2003-05-08  Aldy Hernandez  <aldyh@redhat.com>
2287
2288         * mklibgcc.in: Use mkinstalldirs when installing multilib
2289         directories.
2290
2291 2003-05-08  J"orn Rennecke <joern.rennecke@superh.com>
2292
2293         * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact
2294         instead of CODE_FOR_jump
2295
2296 2003-05-08  Gabriel Dos Reis <gdr@integrable-solutions.net>
2297
2298         * objc/objc-act.c (error_with_ivar): Don't use
2299         error_with_file_and_line.
2300         (warn_with_method): Don't use warning_with_file_and_line.
2301
2302 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2303
2304         * stmt.c (emit_locus): New macro.
2305         (emit_filename): Remove.
2306         (emit_lineno): Likewise.
2307         (struct stmt_status): Replace members x_emit_filename and
2308         x_emit_lineno with x_emit_locus.
2309         (set_file_and_line_for_stmt): Adjust.
2310         (expand_expr_stmt_value): Don't use warning_with_file_and_line.
2311         (warn_if_unused_value): Likewise.
2312         (check_seenlabel): Likewise.
2313
2314 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2315
2316         * c-decl.c (define_label): Tidy.  Don't use any of
2317         error_with_file_and_line or warning_with_file_and_file.
2318         (pending_xref_error): Likewise.
2319         (store_parm_decls): Likewise.
2320         (current_function_prototype_locus): New object.  Package from
2321         current_function_prototype_file and current_function_prototype_line.
2322         (start_function): Use it.
2323         (current_function_prototype_file): Remove.
2324         (current_function_prototype_line): Remove;
2325
2326 2003-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2327
2328         * builtins.c (readonly_data_expr): New function.
2329         (expand_builtin_memmove): Optimize any rodata source, not just
2330         strings.
2331
2332 2003-05-07  David Mosberger <davidm@hpl.hp.com>
2333
2334         * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
2335
2336 2003-05-07  Richard Henderson  <rth@redhat.com>
2337
2338         * config/i386/i386.c (ix86_split_long_move): Fix base register
2339         mode for XFmode splits for TARGET_64BIT.
2340
2341 2003-05-07  Richard Henderson  <rth@redhat.com>
2342
2343         * sched-ebb.c (schedule_ebb): Supply the correct starting
2344         block number to save_line_notes.
2345
2346 2003-05-07  Richard Henderson  <rth@redhat.com>
2347
2348         * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro.
2349         (dump_file): Likewise.
2350
2351 2003-05-07  David Mosberger <davidm@hpl.hp.com>
2352
2353         * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't
2354         forget to preserve gp.
2355         * config/ia64/crtend.asm (__do_global_ctors_au): Ditto.
2356
2357         * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing
2358         .prologue directive.
2359         Use .skip instead of data8 for .bss section to make Intel
2360         Assembler (ias) happy.  Minor whitespace fixups.  Make "nop 0"
2361         explicit in the .mib bundles and remove the unnecessary stop
2362         bits.  Replace local labels with normal labels, to make ias
2363         happy.  Don't register __do_global_ctors_aux here, do it in
2364         crtend.asm instead.
2365
2366         * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register
2367         __do_global_ctors_aux in .init_array section instead of
2368         declaring it as a hidden global.  Replace local labels with
2369         ordinary labels to make ias happy.
2370
2371 2003-05-07  Richard Henderson  <rth@redhat.com>
2372
2373         PR c++/10570
2374         * except.c: Revert 04-01 and 04-02 forced-unwind changes.
2375         * flags.h, toplev.c, doc/invoke.texi: Likewise.
2376
2377         * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
2378         * unwind.inc (_Unwind_DeleteException): Check for null
2379         exception_cleanup.
2380
2381         * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
2382         * unwind.inc (_Unwind_Resume_or_Rethrow): New.
2383         * unwind.h: Declare them.
2384         * libgcc-std.ver (GCC_3.3): Export them.
2385
2386 2003-05-07  Richard Henderson  <rth@redhat.com>
2387
2388         * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
2389         not _Unwind_Word.
2390
2391 2003-05-07  Zack Weinberg  <zack@codesourcery.com>
2392
2393         * stmt.c (force_label_rtx): New function, based on logic
2394         formerly found in expand_expr.
2395         * expr.h: Prototype it.
2396         * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
2397         appropriate.
2398         * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
2399
2400         * print-tree.c (debug_tree): Free the table after we're done
2401         with it.  Use putc.
2402
2403 2003-05-07  Aldy Hernandez  <aldyh@redhat.com>
2404
2405         * config/rs6000/spe.h: Reverse arguments for __ev_subfw.
2406         Unreverse arguments for __ev_subw.
2407
2408         * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly.
2409
2410 2003-05-07  Nick Clifton  <nickc@redhat.com>
2411
2412         * config/stormy16/stormy-abi: Update to include
2413         R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and
2414         R_XSTORMY16_12 relocs.
2415
2416 2003-05-07  Alan Modra  <amodra@bigpond.net.au>
2417
2418         * function.c (assign_parms): Correct reversed reg_parm_stack_space
2419         test.  Add partial in-regs size to stack_args_size.
2420
2421 2003-05-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2422
2423         * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
2424         as a C only option.
2425
2426 2003-05-07  Nathan Sidwell  <nathan@codesourcery.com>
2427
2428         * gcov-io.h (GCOV_LOCKED): New #define.
2429         (GCOV_LINKAGE): Make sure it is #defined.
2430         (gcov_write_string, gcov_write_tag, gcov_write_length,
2431         gcov_read_string, gcov_time): Poison in libgcov.
2432         (gcov_seek_end): Remove.
2433         (gcov_write_tag_length, gcov_sync, gcov_rewrite): New.
2434         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
2435         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
2436         GCOV_TAG_SUMMARY_LENGTH): New #defines.
2437         (gcov_write_tag, gcov_write_length): Not in libgcov.
2438         * gcov-io.c (gcov_open): Use GCOV_LOCKED.
2439         (gcov_write_tag, gcov_write_length): Not in libgcov.
2440         (gcov_write_tag_length): New.
2441         (gcov_write_summary): Use gcov_write_tag_length.
2442         * libgcov.c: Always #include gcov-io.h.
2443         (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise.
2444         (GCOV_LINKAGE): Define to nothing for L_gcov.
2445         (gcov_exit): Replace gcov_write_tag, gcov_write_length with
2446         gcov_write_tag_length. Use gcov_rewrite & gcov_seek.
2447         * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync.
2448         (read_count_file): Likewise.
2449         * gcov-dump.c (dump_file): Likewise.
2450         * coverag.c (read_counts_file): Likewise.
2451
2452 2003-05-06  Mark Mitchell  <mark@codesourcery.com>
2453
2454         PR other/10658
2455         * gcc.c (process_command): Update copyright date.
2456
2457 2003-05-06  Phil Edwards  <pme@gcc.gnu.org>
2458
2459         * doc/install.texi (mips-*-*):  Add note about libstdc++.
2460
2461 2003-05-06  DJ Delorie  <dj@redhat.com>
2462
2463         * config/stormy16/stormy16.c (xstormy16_function_profiler): New.
2464         * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it.
2465         * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New.
2466
2467 2003-05-06    <neil@cat.daikokuya.co.uk>
2468
2469         * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes
2470         and -Wstrict-prototypes if C++.
2471
2472 2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
2473
2474         * config/rs6000/linuxspe.h: New file.
2475
2476         * config.gcc: Add powerpc-*-linux-gnuspe* target.
2477
2478 2003-05-06  Richard Henderson  <rth@redhat.com>
2479
2480         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if
2481         previous frame didn't save sp.  Clear sp for next frame.
2482         (uw_install_context_1): Honor saved sp from frame.
2483
2484 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
2485
2486         * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare.
2487         (mips_move_1word, mips_move_2words): Remove declaration.
2488         (mips_split_64bit_move_p, mips_split_64bit_move): Declare.
2489         (mips_restore_gp): Remove insn argument.
2490         * config/mips/mips.h (FP_REG_RTX_P): New macro.
2491         * config/mips/mips.c (volatile_buffer): Remove.
2492         (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New.
2493         (mips_move_1word, mips_move_2words): Remove, replacing with...
2494         (mips_output_move): ...this new function.
2495         (mips_restore_gp): Remove insn argument.  Adjust for above changes.
2496         (print_operand): Make '%h' print %hi(op) for HIGH operands.  Remove
2497         handling of floating-point constants.  Handle zero CONST_DOUBLE
2498         arguments.
2499         (mips_annotate_frame_insn): Replace with...
2500         (mips_set_frame_expr): ...this, which just takes one argument.
2501         (mips_frame_set): Change the register argument to an rtx.
2502         (mips_emit_frame_related_store): Use mips_split_64bit_move_p to
2503         check whether moves should be split.  Use mips_split_64bit_move
2504         to split them.  Use mips_subword to generate the high and low
2505         parts of a paired FPR.  Adjust calls to frame_set and
2506         mips_set_frame_expr.
2507         (mips_expand_prologue): Simplify due to above changes.
2508         * config/mips/mips.md:  Add splitters for 64-bit moves on 32-bit
2509         targets, replacing xisting register-only versions.
2510         (UNSPEC_STORE_DF_HIGH): New unspec.
2511         (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs.
2512         (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word.
2513         (*paradoxical_extendhidi2): Remove.
2514         (movdi_internal, movdi_internal2): Use mips_output_move.
2515         (*movdi_internal2_mips16, movsi_internal, movcc): Likewise.
2516         (movsf_internal1, movsf_internal2): Likewise.
2517         (movdf_internal1a): Likewise.  Fix length and type of f <- G case.
2518         (movdf_internal1b): Use mips_output_move.  Fix type of f <- G case.
2519         (movdf_internal2): Use mips_output_move.  Fix lengths of FPR moves.
2520         Add m <- G alternative.
2521         (load_df_low, load_df_high, store_df_low): New patterns.
2522         (movhi_internal): Use @ template instead of calling a function.
2523         Remove unnecessary 'z' alternatives.
2524         (movqi_internal): Likewise.
2525         (exception_receiver): Update call to mips_restore_gp.
2526
2527 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
2528
2529         * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove.
2530         (mips_delegitimize_address): Declare.
2531         * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine.
2532         (FIND_BASE_TERM): Define.
2533         * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
2534         (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr.
2535         Handle small-data addresses.
2536
2537 2003-05-05  Roger Sayle  <roger@eyesopen.com>
2538
2539         * real.c (real_powi): New function to calculate the value of
2540         a real raised to an integer power, i.e. pow(x,n) for int n.
2541         (real_sqrt): Convert to using the faster do_add, do_multiply
2542         and do_divide API for consistency with the rest of real.c.
2543         * real.h (real_powi): Prototype here.
2544         * builtins.c (fold_builtin):  Avoid local variable mode when
2545         evaluating sqrt at compile time.  Attempt to evaluate pow at
2546         compile-time, by checking for an integral exponent.
2547
2548 2003-05-05  Richard Henderson  <rth@redhat.com>
2549
2550         * doc/extend.texi (Variable Attributes): Re-sort table and tidy.
2551
2552 2003-05-05  David O'Brien  <obrien@FreeBSD.org>
2553
2554         * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
2555         other FreeBSD ports.
2556         (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
2557         (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead.
2558
2559 2003-05-05  Janis Johnson  <janis187@us.ibm.com>
2560
2561         * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around
2562         expanded variables.
2563         * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests.
2564
2565 2003-05-05  Zack Weinberg  <zack@codesourcery.com>
2566
2567         * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
2568         * varasm.c (struct varasm_status): Add deferred_constants field.
2569         (n_deferred_strings): Delete variable.
2570         (n_deferred_constants): New #define.
2571         (struct constant_descriptor_tree): Kill next and label fields.
2572         (const_hash_table, MAX_HASH_TABLE): Delete.
2573         (const_desc_htab): New static variable.
2574         (const_hash): Rename const_desc_hash, and make it fit the
2575         hashtab.h interface.
2576         (const_desc_eq): New.
2577         (const_hash_1, compare_constant): Const-ify arguments.
2578         (build_constant_desc): Set DEFERRED_CONSTANT_P on all new
2579         SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
2580         (output_constant_def): Do the lookup/insert using the
2581         hashtab.h interface.  Don't muck with n_deferred_constants or
2582         DEFERRED_CONSTANT_P here.
2583         Always call maybe_output_constant_def_contents.
2584         (maybe_output_constant_def_contents): Take a pointer to the
2585         descriptor, not the EXP and RTL separately.  Return
2586         immediately if this constant is not deferred.  Defer output of
2587         everything, except writable string constants.  Update
2588         n_deferred_constants here.
2589         (output_constant_def_contents): Now takes just one argument,
2590         an rtx.  Clear DEFERRED_CONSTANT_P here.
2591         (mark_constant_pool): Update for rename of n_deferred_strings.
2592         (mark_constant): Don't clear DEFERRED_CONSTANT_P here.
2593
2594         (init_varasm_status): Clear p->deferred_constants.
2595         (init_varasm_once): Call htab_create_ggc for const_desc_htab.
2596
2597 2003-05-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2598
2599         * builtins.c (expand_builtin_stpcpy): Only expand when the length
2600         of the source string can be evaluated at compile-time.
2601
2602 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
2603
2604         * testsuite/gcc.c-torture/compile/simd-6.c: New.
2605
2606         * c-typeck.c (digest_init): Handle arrays of vector constants.
2607
2608 2003-05-05  Jakub Jelinek  <jakub@redhat.com>
2609
2610         * builtins.c (expand_builtin_mempcpy): New function.
2611         (expand_builtin_stpcpy): Optimize stpcpy whose return value is
2612         ignored into strcpy no matter what arguments it has.
2613         (expand_builtin) <case BUILT_IN_MEMPCPY>: Call
2614         expand_builtin_mempcpy.
2615
2616 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
2617
2618         * testsuite/gcc.dg/20030505.c: New.
2619
2620         * c-typeck.c (convert_for_assignment): Opaque pointers can
2621         interconvert.
2622
2623         * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node.
2624         (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node.
2625         (spe_init_builtins): Rename all pv2si_type_node to
2626         opaque_p_V2SI_type_node.
2627         Remove declaration of pv2si_type_node.
2628         (is_ev64_opaque_type): Accept opaque pointers.
2629
2630 2003-05-05  Geoffrey Keating  <geoffk@apple.com>
2631
2632         * config/rs6000/rs6000.c (validate_condition_mode): Use
2633         flag_finite_math_only.
2634         (rs6000_reverse_condition): Never return UNKNOWN; use
2635         flag_finite_math_only.
2636         (rs6000_generate_compare): Use flag_finite_math_only.
2637         (rs6000_emit_cmove): Handle UNLE.  Support UNEQ under -ffast-math.
2638         Use HONOR_* rather than flag_unsafe_math_optimizations.  Correct
2639         UNGE and GT cases.  Handle UNEQ and LTGT when ! HONOR_NANS.
2640
2641         * toplev.c (check_global_declarations): Suppress not-used warning
2642         for volatile variables.
2643
2644 2003-05-05  Olivier Hainque  <hainque@act-europe.fr>
2645
2646         * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing
2647         usage of bitfield instructions for mode1 != BLKmode, only ignoring
2648         SLOW_UNALIGNED_ACCESS if the field is not byte aligned.
2649         (store_field): Likewise.
2650
2651 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
2652
2653         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
2654         evsubifw to builtins accepting 5-bit unsigned constants.
2655         (easy_vector_constant): Return if V1DImode.  Fix typo.
2656
2657 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
2658
2659         * config/rs6000/spe.h: Revert licensing change from last patch.
2660
2661 2003-05-05  DJ Delorie  <dj@redhat.com>
2662
2663         * config/stormy16/stormy16.md (negsi2): Allocate the pseudos
2664         before reload, but defer the split until after.
2665         * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify
2666         to match.
2667
2668 2003-05-05  David Edelsohn  <edelsohn@gnu.org>
2669
2670         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support.
2671         * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440.
2672
2673 2003-05-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2674
2675         * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc
2676         is defined.
2677
2678 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2679
2680         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1,
2681         ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from
2682         ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3.
2683
2684         (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4,
2685         ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1,
2686         ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1):
2687         New.
2688
2689         * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument.
2690         (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment
2691
2692         (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY,
2693         BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET,
2694         BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
2695         BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY,
2696         BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN,
2697         BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN,
2698         BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN,
2699         BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF,
2700         BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS,
2701         BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED,
2702         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED,
2703         BUILT_IN_STRDUP): Add "nonnull" attribute.
2704
2705 2003-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2706
2707         * expr.c (store_field): Don't clobber TEMP in shift: it might be
2708         a variable.
2709         (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR
2710         whose purpose is to step up the alignment.
2711         (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG.
2712
2713         * stor-layout.c (compute_record_mode): Relax restriction
2714         on fields crossing word boundaries forcing BLKmode.
2715
2716 2003-05-04  Neil Booth  <neil@daikokuya.co.uk>
2717
2718         * cppinit.c (cpp_create_reader, post_options): Warn about
2719         trigraphs unless explicity set or -trigraphs.
2720         * cpplex.c (warn_in_comment): New.
2721         (_cpp_process_line_notes): Better handling of -Wtrigraphs.
2722         (_cpp_skip_block_comment): Add call to _cpp_process_line_notes.
2723         * doc/cppopts.texi, doc/cpp.texi: Update.
2724
2725 2003-05-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2726
2727         * Makefile.in (LIBGCOV): Add _gcov_merge_add.
2728         * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting
2729         namespace clash.
2730         (GCOV_MERGE_FUNCTIONS): New.
2731         (gcov_merge_fn): Declare.
2732         (struct gcov_ctr_info): New field "merge".
2733         (__gcov_merge_add): Declare.
2734         * coverage.c (ctr_merge_functions): New.
2735         (build_ctr_info_type, build_ctr_info_value): Initialize merge field
2736         of gcov_ctr_info type.
2737         * libgcov.c (__gcov_merge_add): New.
2738         (gcov_exit): Call a hook to merge values of counters.
2739
2740 2003-05-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
2741
2742         * toplev.h (pedwarn_with_file_and_line): Don't declare.
2743         * diagnostic.c (pedwarn_with_file_and_line): Remove.
2744
2745 2003-05-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2746
2747         * varasm.c (assemble_variable): Don't use error_with_file_and_line.
2748
2749 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2750
2751         * builtins.c (expand_builtin_constant_p, expand_builtin_strlen,
2752         expand_builtin_frame_address): Update prototypes.
2753         (expand_builtin_constant_p, expand_builtin_strlen,
2754         expand_builtin_strcpy, expand_builtin_memset,
2755         expand_builtin_bzero, expand_builtin_args_info,
2756         expand_builtin_frame_address): Pass in just the argument(s)
2757         needed, not the entire expression `exp'.
2758         (expand_builtin): Update all calls to these functions.
2759
2760 2003-05-03  Richard Henderson  <rth@redhat.com>
2761
2762         * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
2763         <BUILT_IN_DWARF_SP_COLUMN>: New.
2764         * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
2765         (BUILT_IN_DWARF_SP_COLUMN): New.
2766         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
2767         (expand_builtin_dwarf_sp_column): New.
2768         * except.h: Update to match.
2769         * unwind-dw2.c (execute_stack_op): Correct stack push typo.
2770         (execute_cfa_program): Record location expression address
2771         before extracting length.
2772         (uw_update_context_1): Install old CFA into stack pointer column.
2773         (uw_init_context_1): Set cfa_reg to stack pointer column.
2774
2775 2003-05-03  Richard Henderson  <rth@redhat.com>
2776
2777         * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and
2778         return bool.
2779         (toc_relative_expr_p): Likewise.
2780         (SPE_CONST_OFFSET_OK): Move from rs6000.h.
2781         (legitimate_constant_pool_address_p): Move from rs6000.h, change
2782         into a function, downcase all users.
2783         (legitimate_small_data_p): Likewise.
2784         (legitimate_offset_address_p): Likewise.
2785         (legitimate_indexed_address_p): Likewise.
2786         (legitimate_indirect_address_p): Likewise.
2787         (legitimate_lo_sum_address_p): Likewise.
2788         (rs6000_mode_dependent_address): Likewise.
2789         * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove.
2790         (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
2791         LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P,
2792         LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P,
2793         LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c.
2794         (LEGITIMATE_ADDRESS_INTEGER_P): Remove.
2795         (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address.
2796         * config/rs6000/rs6000-protos.h: Update.
2797
2798 2003-05-03  Geoffrey Keating  <geoffk@apple.com>
2799
2800         * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define.
2801         (REVERSE_CONDITION): Define.
2802
2803         * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent
2804         to branch_positive_comparison_operator.
2805         (ccr_bit): Check that sCOND conditions are actually a positive bit.
2806         (print_operand): Remove %D substitution.
2807         (rs6000_emit_sCOND): Generate complement operation to ensure that
2808         sCOND input is a positive bit.
2809         * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the
2810         same order as bCOND, and add the missing ones.  Remove the %D
2811         substitutions from the scc patterns.
2812
2813         * simplify-rtx.c (simplify_relational_operation): Add case for
2814         ! (fabs(x) < 0.0).
2815
2816 2003-05-03  Bruce Korb  <bkorb@gnu.org>
2817
2818         * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts
2819         in fixincl.x
2820         * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement
2821
2822 2003-05-03  Aldy Hernandez  <aldyh@redhat.com>
2823
2824         * config/rs6000/spe.h: Remove unecessary casts.  Misc cleanups.
2825
2826 2003-05-03  Zack Weinberg  <zack@codesourcery.com>
2827
2828         PR c/10604
2829         * c-common.c (warn_sign_compare): Initialize to -1.
2830         * c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
2831         (c_common_decode_option <OPT_Wall>): Set warn_sign_compare
2832         for C++ only.
2833         (c_common_post_options): Set warn_sign_compare from extra_warnings
2834         if it's still -1 at this point.
2835
2836         * toplev.c (maybe_warn_unused_parameter): New static variable.
2837         (set_Wextra): New static function.
2838         (W_options): Remove "extra".
2839         (decode_W_option): Call set_Wextra.
2840         (independent_decode_option): Likewise.
2841         (set_Wunused): Cooperate with set_Wextra in setting
2842         warn_unused_parameter.
2843         (rest_of_compilation): No need to check extra_warnings as
2844         well as warn_uninitialized.
2845
2846         * c-typeck.c (build_binary_op, build_conditional_expr):
2847         No need to check extra_warnings as well as warn_sign_compare.
2848         (internal_build_compound_expr): No need to check extra_warnings
2849         as well as warn_unused_value.
2850         * function.c (expand_function_end): No need to check extra_warnings
2851         as well as warn_unused_parameter.
2852         * stmt.c (expand_expr_stmt_value): No need to check extra_warnings
2853         as well as warn_unused_value.
2854
2855         * doc/invoke.texi: Clarify documentation of -Wsign-compare.
2856
2857         * Makefile.in: Disable -Werror for gengtype-lex.o.
2858
2859 2003-05-03  Olivier Hainque  <hainque@act-europe.fr>
2860
2861         * emit-rtl.c (last_call_insn, add_function_usage_to): New functions.
2862         * rtl.h (last_call_insn, add_function_usage_to): New prototypes.
2863         * builtins.c (expand_builtin_apply): Use the new emit-rtl functions.
2864         * calls.c (emit_call_1): Likewise.
2865         (expand_call): For calls initializing constant memory, replace
2866         emission of standalone mem /u clobber with function usage entry.
2867         * expr.c (emit_block_move_via_libcall): Likewise.
2868         * cse.c (count_reg_usage, case EXPR_LIST): New case.
2869         * flow.c (propagate_one_insn): Pass entire operand of
2870         CALL_INSN_FUNCTION_USAGE to mark_used_regs.
2871         * integrate.c (try_constants): For CALL_INSNs, substitute constants
2872         within the FUNCTION_USAGE also.
2873         * loop.c (prescan_loop): Note clobbers of const mem mentioned in
2874         FUNCTION_USAGE lists.
2875         * reload1.c (replace_pseudos_in): Renamed.
2876         (reload): Use it for clobbers surviving until the end of the reload.
2877
2878 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2879
2880         * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use
2881         gen_lowpart on non-integer modes.
2882
2883         * stor-layout.c (place_field): When adjusting offset_align, use
2884         desired_align, not DECL_ALIGN.
2885
2886 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
2887
2888         * c-decl.c (pending_invalid_xref_file): Remove.
2889         (pending_invalid_xref_line): Remove.
2890         (pending_invalid_xref_location): New.
2891         (lookup_label): Use location_t and input_location directly.
2892         (lookup_tag): Likewise.
2893         (pending_xref_error): Likewise.
2894         (c_expand_body_1): Likewise.
2895         * c-common.c (x_expand_start_cond): Likewise.
2896         * c-semantics.c (genrtl_for_stmt): Likewise.
2897         (find_reachable_label): Likewise.
2898         * expr.c (expand_expr): Likewise.
2899         * integrate.c (output_inline_function): Likewise.
2900         * tree-inline.c (find_alloca_call): Likewise.
2901         (find_builtin_longjmp_call): Likewise.
2902         * gcc.c (input_filename): Make static.
2903
2904 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
2905
2906         * config/mips/mips.md: Fix comment typo.
2907
2908         * config/mips/mips.c (mips_integer_op): New structure.
2909         (MIPS_MAX_INTEGER_OPS): Define.
2910         (mips_const_insns): Use mips_build_integer to determine the number
2911         of instructions needed to load a CONST_INT.
2912         (move_operand): Reject compound CONST_INTs.
2913         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
2914         (mips_move_integer): New fn.
2915         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
2916         (mips_legitimize_move): Only legitimize constants when moving
2917         word or subword values.
2918
2919 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
2920
2921         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
2922
2923 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2924
2925         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
2926         modifying it.
2927
2928 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
2929             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2930
2931         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
2932         Hernandez, and Kazu Hirata.  Update Richard Henderson.
2933
2934 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
2935
2936         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
2937         to tentative declaration.
2938
2939         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
2940         (SYMBOL_FLAG_SMALL_V4): Delete.
2941         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
2942         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
2943         (rs6000_elf_in_small_data_p): Add extra section names.  Add
2944         comment about TREE_PUBLIC test.
2945
2946         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
2947         expand_stmt on result of expand_unreachable_stmt.
2948
2949 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2950
2951         * doc/contrib.texi (Contributors): Add Daniel Berlin.
2952
2953 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
2954
2955         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
2956         number of automata.
2957
2958         * config/rs6000/rs6000.c (symbol_ref_operand): Check
2959         SYMBOL_REF_FUNCTION_P on AIX.
2960         (current_file_function_operand): Same.
2961         * config/rs6000/rs6000.md (call,call_value): Force non-function
2962         symbol_ref into register on AIX.
2963
2964 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
2965
2966         * calls.c (struct arg_data): Move offset, slot_offset, size and
2967         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
2968         (initialize_argument_information): Adjust call to locate_and_pad_parm.
2969         Delete alignment_pad var.  Don't calculate slot_offset here.
2970         (emit_library_call_value_1): Delete alignment_pad, offset and size
2971         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
2972         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
2973         partial in-regs here.  Formatting fixes.
2974         * expr.h (struct locate_and_pad_arg_data): New struct.
2975         (locate_and_pad_parm): Adjust declaration.
2976         * function.c (assign_parms): Localize vars.  Use "locate" instead of
2977         other arg location vars.  Don't invoke FUNCTION_ARG or
2978         FUNCTION_INCOMING_ARG unless pretend_named is different from
2979         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
2980         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
2981         Use slot_offset for stack home of reg parms.  Correct test for
2982         parm passed in memory.  Formatting fixes.
2983         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
2984         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
2985         Correct initial_offset_ptr handling.  Localize vars.  Always pad
2986         locate->offset even when in_regs.
2987
2988 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2989
2990         * Makefile.in (TREE_H): Replace location.h with input.h.
2991         (GTFILES) Remove location.h
2992         (gt-lists.h): Replace gt-location.h with gt-input.h
2993         * input.h (input_filename, input_line): Remove variables.
2994         (location_s, location_t): Move from location.h.
2995         (input_location): New.
2996         (input_filename, input_line): New #defines.
2997         * location.h: Remove.
2998         * tree.h: Replace location.h with input.h.
2999         (input_filename, input_line): Remove.
3000         * diagnostic.h: Replace location.h with input.h.
3001         * gcc.h (input_filename, input_filename_length): Remove declarations.
3002         * toplev.c (input_filename, input_line): Remove.
3003         (input_location): Define.
3004         (push_srcloc, pop_srcloc): Adjust.
3005         * diagnostic.c (diagnostic_report_current_module): Adjust.
3006
3007 2003-05-02  Nick Clifton  <nickc@redhat.com>
3008
3009         * configure.in: Add xstormy16 to list of targets that has a nop
3010         instruction and hence which can be tested to see if the
3011         assembler supports the --gdwarf2 switch.
3012         * configure: Regenerate.
3013
3014 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
3015
3016         PR target/8257
3017         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
3018         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
3019         Avoid undefined shifts by making the shift operand unsigned.
3020
3021 2003-05-01  DJ Delorie  <dj@redhat.com>
3022
3023         * reload.c (find_reloads): Also check that all of a multi-reg
3024         value is in the class.
3025
3026 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3027
3028         * scan.h (lineno): Revert the rename here.
3029
3030 2003-05-01  Stan Shebs  <shebs@apple.com>
3031
3032         * config/darwin.c (darwin_encode_section_info): Call
3033         default_encode_section_info.
3034
3035 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
3036
3037         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
3038         (movsi_internal1): Use new mfjmpr attribute.
3039         (movhi_internal): Same.
3040         (movqi_internal): Same.
3041         (movcc_internal1): Same.
3042         (movdi_internal64): Same.
3043         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
3044         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
3045         * config/rs6000/40x.md: Add fpu_405.
3046         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
3047         into power4misc automata.  Remove extraneous parentheses.
3048         * config/rs6000/440.md: New file.
3049         * config/rs6000/rs6000.c (processor_target_table): Add 440,
3050         440fp.  Rename 405f to 405fp.
3051         (function_arg_padding): Correct formatting.
3052         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
3053
3054 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3055
3056         * input.h (lineno): Rename to ...
3057         (input_line): ... here.
3058         * tree.h (lineno): Rename to ...
3059         (input_line): ... here.
3060         * scan.h (lineno): Rename to ...
3061         (input_line): ... here.
3062         * toplev.c (lineno): Rename to ...
3063         (input_line): ... here.
3064         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
3065         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
3066         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
3067         store_parm_decls, c_expand_body_1): Likewise.
3068         * c-errors.c (pedwarn_c99): Likewise.
3069         * c-format.c (status_warning): Likewise.
3070         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
3071         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
3072         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
3073         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
3074         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
3075         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
3076         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
3077         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
3078         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
3079         * coverage.c (create_coverage): Likewise.
3080         * diagnostic.c (pedwarn, sorry, error, fatal_error,
3081         internal_error, warning, diagnostic_report_current_module,
3082         inform): Likewise.
3083         * expr.c (expand_expr): Likewise.
3084         * integrate.c (expand_inline_function,
3085         output_inline_function): Likewise.
3086         * rtl-error.c (file_and_line_for_asm): Likewise.
3087         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
3088         walk_tree): Likewise.
3089         * tree.c (make_node): Likewise.
3090         * ada, cp, f, java, objc, treelang: Likewise.
3091         * objc/objc-act.c (objc_init): Rename lineno to input_line.
3092         (build_module_descriptor, build_selector_translation_table,
3093         build_protocol_template, build_method_prototype_list_template,
3094         build_category_template, build_selector_table,
3095         build_class_template, build_super_template, build_ivar_template,
3096         build_ivar_list_template, build_method_list_template,
3097         build_method_template, add_instance_variable): Likewise.
3098
3099         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
3100         name from input_filename.
3101
3102 2003-04-30  Eric Christopher  <echristo@redhat.com>
3103             Richard Sandiford <rsandifo@redhat.com>
3104
3105         * configure: Regenerate from patches below.
3106         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
3107         for all symbolic operands.
3108         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
3109         to function.
3110         * config/mips/linux.h: Fix typo.
3111         * Merge from mips-3_4-rewrite branch:
3112
3113         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
3114
3115                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
3116                 handling local labels when TARGET_ABICALLS.
3117
3118         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
3119
3120                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
3121                 integer argument.
3122                 (mips_expand_call): Likewise.
3123                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
3124                 (FIXED_REGISTERS): Clear $31 entry.
3125                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
3126                 (EPILOGUE_USES): Define.
3127                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
3128                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
3129                 (override_options): Add a 'j' register class.
3130                 (mips_expand_call): Handle sibcalls
3131                 (mips_expand_epilogue): Handle epilogues for sibcalls.
3132                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
3133                 (sibcall_epilogue): New pattern.
3134                 (call, call_value): Adjust calls to mips_expand_call.
3135                 (sibcall, sibcall_value): New expanders.
3136                 (sibcall_internal, sibcall_value_internal): New patterns.
3137                 (sibcall_value_multiple_internal): New pattern.
3138
3139         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
3140
3141                 * config/mips/mips.md (extended_mips16): New attribute.
3142                 (define_attr length): Default to 8 if extended_mips16 == yes.
3143                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
3144                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
3145                 (call_internal): Set extended_mips16 to yes for direct jumps.
3146                 Remove redundant mode attribute.
3147                 (call_value_internal, call_value_multiple_internal): Likewise.
3148                 (call_split): Remove redundant mode attribute.
3149                 (call_value_split, call_value_multiple_split): Likewise.
3150
3151                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
3152                 of unaligned offsets.
3153
3154                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
3155                 of SYMBOL_GENERAL.
3156
3157         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
3158
3159                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
3160                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
3161                 for mips16 code.
3162
3163         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
3164
3165                 * config/mips/mips.h (ADDRESS_COST): Define.
3166
3167         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
3168
3169                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
3170                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
3171                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
3172
3173         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
3174
3175                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
3176                 of a two-instruction sequence.  Add register->memory alternative.
3177                 (truncdihi2, truncdiqi2): Likewise.
3178                 Rework shift/truncate instructions so that they only handle right
3179                 shifts of 32 (or more, in the case of arithmetic shifts).
3180                 Add patterns for truncate/sign-extend.
3181
3182         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
3183
3184                 * configure.in (mips*-*-*): Check for explicit relocation support.
3185                 * configure: Regenerate.
3186
3187         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
3188
3189                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
3190                 and -mno-explicit-relocs.
3191                 (MASK_EXPLICIT_RELOCS): Define.
3192                 (TARGET_EXPLICIT_RELOCS): Use it.
3193                 (mips_split_addresses): Remove declaration.
3194                 * config/mips/mips.c (override_options): Update comment for
3195                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
3196
3197         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
3198
3199                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
3200                 a CONST as identity.  Check the return value of gen_lowpart_common.
3201
3202         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
3203
3204                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
3205                 references for TARGET_EXPLICIT_RELOCS.
3206                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
3207                 !TARGET_MIPS16.
3208
3209         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
3210
3211                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
3212                 (addsi3): Remove redundant constraints.
3213                 (addsi3_internal): Use separate register & constant alternatives.
3214                 Use a 'Q' constraint and "addiu" insn for the latter.
3215                 (adddi3_internal_3, addsi3_internal_2): Likewise.
3216
3217         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
3218
3219                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
3220                 (mips_expand_unaligned_store): Declare.
3221                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
3222                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
3223                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
3224                 (UNSPEC_ULD, UNSPEC_USD): Remove.
3225                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
3226                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
3227                 (extv, extzv): Use mips_expand_unaligned_load.
3228                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
3229                 predicate for operand 3.
3230                 (movsi_ulw, movsi_usw): Replace with...
3231                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
3232                 (movdi_uld, movdi_usd): Likewise replace with...
3233                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
3234
3235         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
3236
3237                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
3238                 * config/mips/mips.h (LEA_REGS): New register class.
3239                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
3240                 (GR_REG_CLASS_P): Include LEA_REGS.
3241                 (DANGEROUS_FOR_LA25_P): New macro.
3242                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
3243                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
3244                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
3245                 entries to LEA_REGS.
3246                 (mips_global_pic_constant_p): New function.
3247                 (override_options): Add 'e' register constraint.
3248                 (mips_secondary_reload_class): Return LEA_REGS when reloading
3249                 a dangerous constant into a class containing $25.
3250                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
3251                 (movsi_internal): Likewise.
3252
3253         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
3254
3255                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
3256                 * config/mips/mips.md (call_split): New insn.
3257                 (call_value_split, call_value_multiple_split): New insns.
3258                 (call_internal): Turn into a define_insn_and_split.  Split the
3259                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
3260                 (call_value_internal, call_value_multiple_internal): Likewise.
3261
3262         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
3263
3264                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
3265                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
3266                 (mips_encode_section_info): Don't take symbol visibility into
3267                 account if TARGET_ABICALLS.  Add more commentary.
3268                 * config/mips/mips.md: Add commentary above reloc constants.
3269
3270         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
3271
3272                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
3273                 from mips_legitimize_move.  Legitimize constant pool references.
3274                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
3275                 a REG_EQUAL note to the last instruction.
3276
3277         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
3278
3279                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
3280                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
3281                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
3282                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
3283                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
3284                 (UNSPEC_RELOC_GPREL16): Rename to...
3285                 (RELOC_GPREL16): ...this.
3286                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
3287                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
3288                 (macro_calls): New attribute.
3289                 (length): Use it to set the default length of calls.  Don't allow
3290                 calls to have delay slots if macro_calls is "yes".
3291                 (luisi, luidi): New patterns.
3292                 (lowsi, lowdi): Use '%R' to print the relocation.
3293                 (lowdi_extend): Remove.
3294                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
3295                 (call_internal): Merge alternatives.  Always use "jal".
3296                 (call_value_internal, call_value_multiple_internal): Likewise.
3297                 (reloc_gprel16): Remove.
3298                 * config/mips/mips.c (mips_got_alias_set): New variable.
3299                 (mips_classify_constant): Handle the new relocation constants.
3300                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
3301                 (mips_symbolic_address_p): Return false if generating explicit relocs.
3302                 Otherwise allow local PIC symbols to have an offset.
3303                 (mips_splittable_symbol_p): New function.
3304                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
3305                 (mips_const_insns): Always accept HIGH.
3306                 (call_insn_operand): Don't accept global symbols if using explicit
3307                 relocs.
3308                 (move_operand): Don't accept HIGH when generating PIC.
3309                 (mips_reloc, mips_lui_reloc): New functions.
3310                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
3311                 be a valid right-hand-side for a SET pattern.
3312                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
3313                 (mips_emit_high): New function.
3314                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
3315                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
3316                 address should be used.  Use mips_emit_high to generate the
3317                 high part of such an address.  Adjust the global symbol + offset
3318                 case to match the change to mips_force_temprorary.
3319                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
3320                 If generating explicit-reloc PIC, load the address of global
3321                 symbols from the GOT.  Use mips_emit_high to emit the high part
3322                 of an address.
3323                 (mips_simplify_dwarf_addr): New function.
3324                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
3325                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
3326                 (mips_expand_call): Load the addresses of global functions using
3327                 %call* relocs if generating explicit-reloc PIC.  Don't generate
3328                 an exception_receiver pattern.
3329                 (override_options): Initialize mips_got_alias_set.
3330                 (print_relocation): Remove in favour of...
3331                 (mips_reloc_string): ...this new function.
3332                 (print_operand): Handle '%R'.  Use mips_reloc_string.
3333                 (print_operand_address): Use print_operand to print the symbolic
3334                 part of a LO_SUM address.
3335                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
3336                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
3337                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
3338                 for local symbols.
3339
3340         2003-02-02  Eric Christopher  <echristo@redhat.com>
3341
3342                 * config/mips/mips.c (mips_sign_extend): Remove.
3343                 * config/mips/mips-protos.h: Ditto.
3344                 * config/mips/mips.md (movdi_internal2_extend): Remove.
3345                 (extendsidi2): Fix mode of convert_memory_address.
3346
3347         2003-01-24  Eric Christopher  <echristo@redhat.com>
3348
3349                 * config/mips/mips.md: Rewrite zero_extend* and extend*
3350                 patterns. Use explicit instructions and split after reload
3351                 for register extensions.
3352                 (ashlsi3_internal1_extend): New combiner pattern for
3353                 shift and extend combinations.
3354                 * config/mips/mips.h: Change Pmode back to ptr_mode
3355                 for performance enhancement.
3356                 * combine.c (expand_compound_operation): Make sure
3357                 that zero_extend operation is profitable.
3358
3359         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
3360
3361                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
3362                 addresses depend on ptr_mode rather than Pmode.
3363                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
3364                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
3365                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
3366                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
3367                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
3368                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
3369                 (tablejump_internal1): Remove condition.
3370                 (tablejump_internal2): Change condition to TARGET_64BIT.
3371                 (cpaddsi): Rename to...
3372                 (cpadd): ...this.
3373                 (cpadddi): Remove.
3374
3375         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
3376
3377                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
3378                 mips_address_cost, mips_check_split, double_memory_operand,
3379                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
3380                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
3381                 (mips_legitimate_address_p): Return bool.
3382                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
3383                 mips_legitimize_address, mips_legitimize_move,
3384                 mips_expand_call): Declare.
3385                 (mips_return_addr): Move outside #ifdef RTX_CODE.
3386
3387                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
3388                 (PIC_FN_ADDR_REG): New reg_class