1 2000-10-06 David O'Brien <obrien@FreeBSD.org>
3 * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
6 2000-10-06 Richard Henderson <rth@cygnus.com>
8 * function.c (diddle_return_value): Examine
9 current_function_return_rtx instead of the DECL_RESULT.
10 (expand_function_end): Handle reloading DECL_RESULT from memory
11 into a hard register. Query promote_mode for sign of mismatched
14 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
16 * haifa-sched.c (schedule_insns): Fix typo in freeing
17 forward_dependency_cache.
19 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
21 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
22 `TARGET_SH2' as a condition.
24 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
26 * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
27 forward_dependency_cache): New variables.
28 (add_dependence, remove_dependence): Use anti_dependency_cache and
29 output_dependency_cache.
30 (compute_block_forward_dependences): Use forward_dependency_cache.
31 (schedule_insns): Allocate and free memory for anti/output/forward
34 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
36 * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
37 `! TARGET_SH1'. Reindent.
39 2000-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41 * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
42 Move functions from here ...
44 * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
46 (c_expand_builtin): New function.
47 (init_function_format_info): Don't set `check_function_format_ptr'.
48 (c_common_nodes_and_builtins): Set built_in_class type for
49 printf/__builtin_printf to BUILT_IN_FRONTEND.
50 (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
52 * c-common.h (build_function_call): Declare.
54 * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
55 to `lang_expand_expr' rather than `expand_builtin'.
57 * tree.c (check_function_format_ptr): Delete.
59 * tree.h (check_function_format_ptr): Likewise.
61 2000-10-06 Hans-Peter Nilsson <hp@bitrange.com>
63 * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
64 DW_OP_bregx when cfa->reg > 31.
66 * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
69 2000-10-05 Richard Henderson <rth@cygnus.com>
71 * c-decl.c (warn_missing_noreturn): Remove.
72 (c_expand_body): Don't set or check can_reach_end.
73 * c-tree.h (warn_missing_noreturn): Move ...
75 (can_reach_end): Remove.
76 * flow.c (check_function_return_warnings): New.
77 (make_edges): No edge to exit for noreturn sibcalls.
78 * function.c (expand_function_end): Save the return value
80 (mark_function_status): Mark it.
81 * function.h (struct function): Add x_clobber_return_insn.
82 * jump.c (can_reach_end): Remove.
83 (calculate_can_reach_end): Remove.
84 (jump_optimize_1): Don't call it.
85 * output.h (check_function_return_warnings): Declare.
86 * toplev.c (warn_missing_noreturn): Move from c-decl.c
87 (rest_of_compilation): Call check_function_return_warnings.
89 2000-10-05 Richard Henderson <rth@cygnus.com>
91 * Makefile.in (NM_FOR_TARGET): New.
92 (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
93 (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
94 * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map. Depend the
95 shared library build on that and EXTRA_MULTILIB_PARTS.
96 * mkmap-flat.awk: New file.
97 * mkmap-symver.awk: New file.
98 * libgcc-std.ver: New file.
99 * config/libgcc-glibc.ver: New file.
100 * config/ia64/libgcc-ia64.ver: New file.
101 * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
102 (SHLIB_LINK): Add --version-script.
103 * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
104 * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
105 * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
106 (SHLIB_LINK): Add -M.
108 2000-10-05 Richard Henderson <rth@cygnus.com>
110 * Makefile.in (LIB2FUNCS): Add _clz.
111 * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
112 (__clz_tab): Put in its own unit, non-static.
113 * libgcc2.h: Always include longlong.h.
115 * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
116 a zero instead of -1.
117 (count_trailing_zeros): Likewise.
119 2000-10-05 Richard Henderson <rth@cygnus.com>
121 * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
122 when second op1 is const0_rtx. Validate op0 as a register.
123 * config/alpha/alpha.md (setcc_internal): Don't allow constants
124 in the first argument of the compare.
125 (setcc_swapped_internal): Likewise.
126 (setne_internal): Likewise.
128 2000-10-05 Geoff Keating <geoffk@cygnus.com>
130 * tree.c (tree_size): New function split out of copy_node.
131 (make_node): Remove obstack handling. Use tree_size.
132 (copy_node): Use tree_size.
133 * tree.h: Prototype tree_size.
135 2000-10-05 Richard Henderson <rth@cygnus.com>
137 * diagnostic.c (output_format): Add missing break.
139 2000-10-05 Jim Wilson <wilson@cygnus.com>
141 * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
142 SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
143 sequence insn to INSN, and delete last sequence insn.
145 2000-10-05 Phil Edwards <pme@gcc.gnu.org>
147 * gcc.c (main): Include generated configargs.h header
148 and use arguments in '-v' output.
150 Thu Oct 5 16:16:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
152 * gcc.c: Move data on prefixes forward in file and reorganize.
153 (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
154 Always define, but make null if no value.
155 (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
156 and "md_startfile_prefix_1".
157 (main): Check whether md_exec_prefix and the others are the
158 null string rather than whether the macro is defined.
160 Thu Oct 5 19:04:18 2000 J"orn Rennecke <amylaar@redhat.co.uk>
162 * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
163 from PSImode to SImode.
165 2000-10-05 Jakub Jelinek <jakub@redhat.com>
167 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
168 from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
169 * dwarf2out.c (add_const_value_attribute): Divide by 4, not
172 Thu Oct 5 09:31:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
174 * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
175 negation in proper type.a
177 2000-10-04 Richard Henderson <rth@cygnus.com>
179 * configure.in (enable-shared): New.
180 * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
181 (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
182 * mklibgcc.in: Use them to link shared a libgcc.
183 * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
184 * config/alpha/t-ieee (SHLIB_MULTILIB): New.
185 * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
186 * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
188 * configure.in (alpha-osf*): Use t-osf and x-osf.
189 * config/alpha/t-osf: New file.
190 * config/alpha/t-osf4: New file.
191 * config/alpha/x-osf: New file.
192 * config/alpha/x-alpha: Remove file.
194 2000-10-04 Will Cohen <wcohen@redhat.com>
196 * c-typeck.c (process_init_element): Added warning for zero-length
199 * extend.texi (Zero Length): State that static initializers for
200 zero-length arrays are not allowed.
202 Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka <jh@suse.cz>
204 * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
207 2000-10-03 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
209 * config/float-c4x.h: New.
210 * configure.in (c4x-*): Set float_format to c4x.
211 * configure: Regenerate.
213 2000-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
215 * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
216 compilation for solaris versions 2.7 and greater.
218 2000-10-02 David O'Brien <obrien@dragon.nuxi.com>
220 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
222 2000-10-01 Mark Mitchell <mark@codesourcery.com>
224 * config/ns32k/genix.h: Remove.
225 * config/ns32k/x-genix: Likewise.
226 * config/ns32k/xm-genix.h: Likewise.
227 * config/fx80: Remove all filee in directory.
228 * config/pyr: Likewise.
229 * config/tahoe: Likewise.
230 * config/gmicro: Likewise.
231 * config/spur: Likewise.
232 * configure.in: Remove configury bits for above targets.
233 * configure: Regenerated.
235 * configure.in: Don't configure chill by default.
236 * configure: Regenerated.
238 * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
239 (lang_mark_false_label_stack): Remove.
240 * c-lex.c (init_c_lex): Add file_info_tree as GC root. Allocate
241 <top level> string in GC area.
242 (mark_splay_tree_node): New function.
243 (mark_splay_tree): Likewise.
244 * except.c (mark_eh_status): Only call lang_mark_false_label_stack
246 * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
247 * ggc-common.c (lang_mark_false_label_stack): Change type.
248 * ggc.h (ggc_alloc_string): Add comment.
249 (ggc_strdup): New function.
251 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru>
253 * config/avr/avr.h (BRANCH_COST): Define as 0.
255 * config/pdp11/pdp11.c: #include "tree.h" added.
257 2000-09-30 Marek Michalkiewicz <marekm@linux.org.pl>
259 * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
260 ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
261 with known shift count.
262 * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
263 New alternative for shift count 2 with no scratch register.
264 (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
265 "set_n" for shift counts 1 and 2.
267 2000-09-30 Geoff Keating <geoffk@cygnus.com>
269 * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE. Calculate
270 the mask value from the individual SET operations.
271 (return_internal_si): Move the USE after the RETURN.
272 (return_internal_di): Likewise.
273 (return_and_restore_fpregs_si): Likewise.
274 (return_and_restore_fpregs_di): Likewise.
275 (return_eh_si): Likewise.
276 (return_eh_di): Likewise.
277 * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
279 (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
280 Don't generate a PARALLEL around a single operation movsi_to_cr.
281 Generate the RETURN first in any PARALLELs.
283 * rtlanal.c (single_set_1): Use fatal_insn to display the
284 invalid insn. Check for more cases when a USE or CLOBBER occurs
286 * Makefile.in: Update dependencies for rtlanal.o.
288 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
290 * i386.c: Move include of "config.h" to before that of <setjmp.h>.
292 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
294 * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
295 Consistently use @email for formatting email addresses.
297 2000-09-29 Richard Henderson <rth@cygnus.com>
299 * cse.c (notreg_cost): New argument outer.
300 (COST): Pass in SET to notreg_cost
302 (fold_rtx): Use COST_IN. Prefer constants when costs
305 2000-09-29 David Edelsohn <edelsohn@gnu.org>
307 * fixinc/inclhack.def (broken_cabs): Generalize regex.
308 * fixinc/fixincl.x: Regenerate.
310 2000-09-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
312 * loop.c (check_final_value): A GIV is not replaceable if used
315 Fri Sep 29 10:04:12 2000 Jeffrey A Law (law@cygnus.com)
317 * version.c: Bump to gcc-2.97.
319 Frs Sep 29 13:37:59 MET DST 2000 Jan Hubicka <jh@suse.cz>
321 * final.c (final_scan_insn): Remove extra extract_insn call;
322 Use caching for constrain_operands.
323 (cleanup_subreg_operands): Use caching for extract_insn.
324 * recog.c (constrain_operands_cached): New.
325 * recog.h (constrain_operands_cached): Declare.
326 * i386.c (ix86_attr_length_immediate_default,
327 ix86_attr_length_address_default, ix86_agi_dependant): Cache
330 * recog.c (asm_noperands): Tweak.
331 (extract_insn): Do not call asm_noperads for non-asm instructions.
333 Fri Sep 29 13:20:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
335 * recog.c (recog_memoized): Rename to recog_memoized_1.
336 * recog.h (recog_memoized): Rename to recog_memoized_1.
337 (recog_memoized): New macro.
338 * rtl.h (single_set): Rename to single_set_1
339 (single_set): New macro.
340 * rtlanal.c (single_set): Rename to single_set_1; expect clobbers
343 * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
344 Do not use match_dup of input operands at outputs.
345 Use register_operand for memory expression.
346 (rep_movsi): Put use last, canonicalize.
347 Use register_operand for memory expression.
348 (rep_movqi): Put use last.
349 Use register_operand for memory expression.
350 (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
351 of input operands at outputs. Use register_operand for memory
353 (rep_stossi): Put use last; canonicalize; fix match_dup in
354 the address expression
355 (rep_stosqi): Likewise.
356 (memcmp expander): Update calls.
357 (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
360 * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
362 (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
364 2000-09-28 David O'Brien <obrien@FreeBSD.org>
366 * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
367 Contains the old contents of config/i386/freebsd.h
368 * config/i386/freebsd.h: Now the ELF rather than a.out config file.
369 Contains the old contents of config/i386/freebsd-elf.h
370 * config/i386/freebsd-elf.h: Retire this file -- contents moved to
371 config/i386/freebsd.h.
372 * configure.in: Adjust for above changes.
373 * po/POTFILES.in: Likewise.
374 * po/en_GB.po: Likewise.
375 * po/gcc.pot: Likewise.
376 * configure: Rebuilt.
378 2000-09-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
380 * doloop.c (doloop_modify): Prevent delete_insn() from
381 deleting too much. Prefer loop->top over loop->start as
382 target for the new JUMP insn.
383 (doloop_valid_p): Ignore loop with exit_count != 0.
385 2000-09-28 Philipp Thomas <pthomas@suse.de>
387 * invoke.texi (i386 Options): Add athlon to table of possible
390 2000-09-28 Gabriel Dos Reis <gdr@codesourcery.com>
392 * diagnostic.h (output_clear_message_text): New function.
393 (output_message_text): New macro.
395 * diagnostic.c (clear_text_info): Rename to
396 output_clear_message_text.
397 (output_clear): Adjust.
398 (output_finish): Rename to output_finalize_message. Tweek.
399 (output_to_stream): Adjust.
401 2000-09-28 Neil Booth <neilb@earthling.net>
403 * cpperror.c (_cpp_begin_message): Do the test for suppression
404 of warnings and pedantic warnings before the "is a warning an
406 * cppinit.c (cpp_handle_option): Remove surplus \n.
407 * cpplex.c (ON_REST_ARG): Delete.
408 (skip_block_comment): Initialise prevc.
409 (parse_args): Improve error messages.
410 (maybe_paste_with_next): Use CONTEXT_VARARGS rather
412 * cpplib.c (cpp_push_buffer): Fix grammar in message.
413 * cppmain.c (main): Set callbacks for #ident and #pragma
414 only if no_output option is false.
415 (do_pragma_implementation): Only call the #pragma handler
416 if it is set in the cpp_reader structure.
418 Wed Sep 27 14:00:07 2000 Donald Lindsay <dlindsay@cygnus.com>
420 * integrate.c (copy_insn_list): if an ignored return value
421 is being clobbered, skip cloning that into the inline copy.
423 2000-09-27 Joseph S. Myers <jsm28@cam.ac.uk>
425 * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
426 use @uref for formatting URLs.
428 2000-09-27 Mark Elbrecht <snowball3@bigfoot.com>
430 * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
433 Tue 26-Sep-2000 18:25:38 BST Neil Booth <neilb@earthling.net>
435 * gcc.c (cpp_options): Add spec for -ftabstop=.
436 (invoke_as): New spec that handles invoking as.
437 Update specs to handle -save-temps and -traditional.
438 * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
440 * cp/lang-specs.h, objc/lang-specs.h: Update to use
441 invoke_as, and handle -save-temps and -traditional (if
444 2000-09-26 Jakub Jelinek <jakub@redhat.com>
446 * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
448 (function_arg_slotno): Accept TImode/CTImode.
449 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
452 2000-09-26 Michael Hayes <mhayes@cygnus.com>
454 * flow.c (flow_loop_pre_header_scan): Punt if loop enters
457 2000-09-25 Jim Wilson <wilson@cygnus.com>
459 * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
460 (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
461 (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
462 (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
464 Tue 26-Sep-2000 00:16:22 BST Neil Booth <neilb@earthling.net>
466 * cpplex.c (parse_args): Don't set VOID_REST flag.
467 (CONTEXT_VARARGS): New flag.
468 (maybe_paste_with_next): Set context earlier in loop. Use
469 it. Do varargs test with CONTEXT_VARARGS flag.
470 (push_arg_context): Set CONTEXT_VARARGS flag if we're
471 pushing an argument context for a varargs argument.
472 * cpplib.h (VOID_REST): Delete.
473 * gcc.dg/cpp/vararg1.c: Add test case.
475 2000-09-25 Branko Cibej <branko.cibej@hermes.si>
477 * flags.h: Declare warning flag warn_system_headers.
478 * toplev.c: Define it.
479 (W_options): Add option -Wsystem-headers.
480 * diagnostic.c (count_error): Test warn_system_headers.
481 * invoke.texi: Add description for -Wsystem-headers.
482 * cpplib.h (cpp_options): New member warn_system_headers.
483 * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
484 CPP_IN_SYSTEM_HEADER.
485 * cpplib.c (do_import, do_pragma_once): Likewise.
486 * cpperror.c (_cpp_begin_message): Test warn_system_headers
487 and CPP_IN_SYSTEM_HEADER.
488 * cppinit.c (handle_option): Recognize -Wsystem_headers.
489 (print_help): Describe -Wsystem_headers.
490 * cpplex.c (lex_line): Reorganize condition so that warnings
491 about C++ comments in system headers can be enabled. Remove
492 label do_line_comment.
494 Mon 25-Sep-2000 23:38:27 BST Neil Booth <neilb@earthling.net>
496 * cpplex.c (save_comment): Only store the initial '/'
498 (lex_token): Combine handling of the two comment types.
499 Pass everything but the initial '/' to save_comment.
501 Mon 25-Sep-2000 23:31:45 BST Neil Booth <neilb@earthling.net>
503 * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
504 _cpp_can_paste): New library-internal prototypes.
505 * cpplex.c (dump_param_spelling, output_line_command,
506 output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
507 cpp_printf, cpp_output_list): Move to cppoutput.c.
508 (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
509 * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
511 * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
512 dump_param_spelling, output_line_command, cpp_scan_buffer,
513 cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
515 * Makefile.in: Add cppoutput.c.
516 * po/POTFILES.in: Add cppoutput.c.
518 2000-09-25 Richard Henderson <rth@cygnus.com>
520 * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
521 * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
522 split until after reload.
523 (rotlsi3, rotldi3): New.
525 2000-09-25 Gabriel Dos Reis <gdr@codesourcery.com>
527 * diagnostic.c (output_last_position): Define.
528 (set_real_maximum_length): Tweek.
529 * diagnostic.h (output_last_position): Declare.
531 2000-09-25 Kazu Hirata <kazu@hxi.com>
533 * config/i386/i386.c: Fix formatting.
535 2000-09-24 Alan Lehotsky <alehotsky@cygnus.com>
537 * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
538 UNITS_PER_WORD is small.
540 2000-09-25 Joseph S. Myers <jsm28@cam.ac.uk>
542 * c-common.c (format_char_info): Add flags2; update comments.
543 (print_char_table, scan_char_table, time_char_table): Split some
544 flags out into flags2.
545 (check_format_info): Use flags2 for those flags, for identifying
546 the initial character of a scanf scanset, and for identifying
547 printf formats where the '0' flag is ignored with precision.
549 2000-09-25 Hans-Peter Nilsson <hp@axis.com>
551 Changes below marked "here" add TABs on either or both sides,
552 covering start of line, up to any operand for all noted .*ASM.*_OP
553 definitions. All callers changed.
554 * tm.texi: Make documented *_ASM.*_OP:s include spacing
555 (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
556 BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
557 ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
558 ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
559 Fix typos in description for LONG_LONG_TYPE_SIZE and
561 * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
562 why these defaults don't have leading spacing.
563 * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
564 * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
565 UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
566 * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
567 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
568 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
569 * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
570 * varasm.c (ASM_STABS_OP): Here.
571 * xcoffout.h (ASM_STABS_OP): Here.
572 * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
573 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
574 INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
575 STRING_ASM_OP): Here.
576 * config/freebsd.h (IDENT_ASM_OP): Here.
577 * config/linux-aout.h (SET_ASM_OP): Here.
578 * config/linux.h (SET_ASM_OP): Here.
579 * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
581 * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
582 * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
583 * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
584 * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
586 * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
587 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
588 INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
589 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
590 FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
591 * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
592 CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
593 * config/a29k/udi.h (INT_ASM_OP): Here.
594 * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
595 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
597 * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
598 READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
599 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
600 UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
602 * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
603 COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
604 CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
605 BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
606 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
607 SIZE_ASM_OP, STRING_ASM_OP): Here.
608 * config/alpha/vms.h (LINK_SECTION_ASM_OP,
609 READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
610 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
611 * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
612 (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
613 * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
615 * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
616 BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
617 * config/arm/coff.h (INT_ASM_OP): Here.
618 * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
619 * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
620 * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
621 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
622 * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
623 * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
624 ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
625 STRING_ASM_OP): Here. Update documentation copy in comments.
626 * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
627 * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
628 DATA_SECTION_ASM_OP): Here.
629 * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
631 * config/convex/convex.h (TEXT_SECTION_ASM_OP,
632 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
633 * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
634 BSS_SECTION_ASM_OP): Here.
635 * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
636 BSS_SECTION_ASM_OP): Here.
637 * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
639 * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
640 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
641 * config/h8300/h8300.h (ASM_WORD_OP): Here.
642 * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
643 BSS_SECTION_ASM_OP): Here.
644 * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
645 * config/i386/bsd.h (ASM_BYTE_OP): Here.
646 * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
647 * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
648 * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
650 * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
651 * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
653 * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
654 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
655 * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
656 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
658 * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
659 * config/i386/netbsd.h (INT_ASM_OP): Here.
660 * config/i386/openbsd.h (INT_ASM_OP): Here.
661 * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
663 * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
664 ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
665 LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
666 SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
667 * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
668 SHARED_BSS_SECTION_ASM_OP): Here.
669 * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
670 * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
671 DATA_SECTION_ASM_OP): Here.
672 * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
673 CONST_SECTION_ASM_OP): Here.
674 * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
675 * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
676 BSS_SECTION_ASM_OP): Here.
677 * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
678 * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
679 * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
680 BSS_ASM_OP): Here, but use trailing spaces.
681 * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
682 DATA_SECTION_ASM_OP): Here.
683 * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
685 * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
686 DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
687 * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
688 TDESC_SECTION_ASM_OP): Here.
689 * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
690 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
691 * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
693 * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
694 BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
695 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
696 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
697 * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
698 COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
699 FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
700 SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
701 * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
702 * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
703 * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
704 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
706 * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
707 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
708 * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
709 * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
710 * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
711 * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
712 * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
713 * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
714 GLOBAL_ASM_OP): Here.
715 * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
716 BSS_SECTION_ASM_OP): Here.
717 * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
718 * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
719 ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
720 DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
722 * config/m68k/newsgas.h (SET_ASM_OP): Here.
723 * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
724 FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
725 * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
726 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
727 SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
728 but use trailing spaces.
729 * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
730 DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
731 FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
733 * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
734 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
735 * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
736 CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
737 DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
738 IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
739 GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
740 BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
741 CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
742 SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
743 VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
744 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
746 * config/m88k/openbsd.h (SET_ASM_OP): Here.
747 * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
748 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
749 * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
750 UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
751 DTORS_SECTION_ASM_OP): Here.
752 * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
753 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
754 * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
755 BSS_SECTION_ASM_OP): Here.
756 * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
757 * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
758 * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
759 POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
760 CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
761 DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
762 * config/mips/mips.c (ABICALLS_ASM_OP): Here.
763 * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
765 * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
767 * config/mips/osfrose.h (SET_ASM_OP): Here.
768 * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
769 * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
770 * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
771 * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
773 * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
774 * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
775 * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
776 * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
777 * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
778 * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
780 * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
782 * config/rs6000/rs6000.h (SET_ASM_OP): Here.
783 * config/rs6000/sol2.h (ASM_STABN_OP): Here.
784 * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
786 * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
787 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
788 * config/sparc/linux.h (COMMON_ASM_OP): Here.
789 * config/sparc/linux64.h (COMMON_ASM_OP,
790 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
791 * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
792 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
793 * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
794 * config/sparc/pbd.h (ASM_INT_OP): Here.
795 * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
796 * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
797 DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
798 * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
799 UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
800 * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
801 UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
802 UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
803 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
804 CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
805 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
806 EH_FRAME_SECTION_ASM_OP): Here.
807 * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
808 * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
810 * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
812 * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
813 TCOMMON_ASM_OP): Here.
814 * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
816 * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
819 2000-09-25 Richard Henderson <rth@cygnus.com>
821 * expmed.c (store_bit_field): Adjust last change to not consider
822 any word-sized field naturally aligned.
824 2000-09-24 Richard Henderson <rth@cygnus.com>
826 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
827 TFmode unordered compares properly. Revalidate integer compare
829 (alpha_emit_setcc): New.
830 (alpha_emit_conditional_move): Revalidate integer compare operands.
831 * config/alpha/alpha-protos.h: Update.
832 * config/alpha/alpha.md (cmpdi): Allow general operands.
833 (sne): Use alpha_emit_setcc.
834 (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
835 (sunordered, sordered): New.
837 2000-09-24 Richard Henderson <rth@cygnus.com>
839 * config/ia64/ia64-protos.h: Update.
840 * config/ia64/ia64.c (call_multiple_values_operation): Remove.
841 (ia64_expand_call): New.
842 (ia64_expand_prologue): Emit an alloc if we need extra input
844 (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
846 (struct reg_flags): Add is_sibcall.
847 (rtx_needs_barrier): A sibcall does not use CFM et al. Ignore USEs.
848 (emit_insn_group_barriers): Set flags.is_sibcall. Remove hacks
849 for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
850 * config/ia64/ia64.h (PREDICATE_CODES): Update.
851 * config/ia64/ia64.md (call): Use ia64_expand_call.
852 (call_value): Likewise.
853 (sibcall, sibcall_value): New.
854 (call patterns): Remove extra expanders; tidy.
855 (sibcall_epilogue): New.
856 (set_bsp): Remove the extra USE. Put the operand inside the UNSPEC.
858 2000-09-24 Richard Henderson <rth@cygnus.com>
860 * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
862 * sibcall.c (skip_pic_restore): New.
863 (identify_call_return_value): Use it.
865 2000-09-24 Mark Mitchell <mark@codesourcery.com>
867 * c-tree.texi: Moved here from cp/ir.texi. Documented nested
868 functions. Generalize to handle both C and C++.
869 * Makefile.in (c-tree.info): New target.
870 (info): Add c-tree.info.
872 Sun Sep 24 09:15:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
874 * expr.c (store_field): If BITSIZE is negative, use size of type.
875 (expand_expr, case COMPONENT_EXPR): Likewise.
877 Sun 24-Sep-2000 11:40:23 BST Neil Booth <NeilB@earthling.net>
879 * cpplex.c: Update TODO comment.
880 * cpplib.c (do_error, do_warning): Merge common code of
881 do_error and do_warning into do_diagnostic. Use it.
882 (do_diagnostic): New function.
883 * cpplib.h: Fix comment typo.
885 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
887 * c-common.c (check_format_info): Warn for a wide character string
888 used as a non-wide format argument.
890 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
892 * builtins.def (BUILT_IN_LLABS): Add.
893 * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
894 * c-common.c (c_common_nodes_builtins): Create builtin functions
895 __builtin_llabs, and plain llabs unless no_nonansi_builtins
897 (expand_tree_builtin): Handle BUILT_IN_LLABS.
899 Sat 23-Sep-2000 22:39:18 BST Neil Booth <NeilB@earthling.net>
901 * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
902 CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
903 * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
904 _cpp_free_toklist): No need to worry about extra dummy token
905 at the start of token lists any more.
906 (trigraph_ok): Only warn outside comments.
907 (skip_block_comment): Set and clear lexing_comment.
908 (skip_line_comment): Take a cpp_reader not cpp_buffer.
909 Set and clear lexing_comment.
910 (parse_number): Handle leading '.' indicated by pfile->seen_dot.
911 (check_long_token): Delete.
912 (lex_percent, lex_dot): New subroutines of lex_token to
913 handle lexing of '.' and '%' without lookback.
914 (lex_token): Use lex_dot and lex_percent.
915 (lex_line): Don't check for LIST_OFFSET.
916 (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
917 * cpplib.c (_cpp_parse_assertion): Similarly.
918 (cpp_push_buffer): Initialize extra_char.
919 * cpplib.h (LIST_OFFSET): Delete.
920 (struct cpp_buffer): New member extra_char.
921 (struct lexer_state): New members lexing_comment and seen_dot.
923 2000-09-23 Jason Merrill <jason@redhat.com>
925 * config/rs6000/x-aix41 (CLIB): Define here.
926 * config/rs6000/t-aix43: Not here.
927 * config/rs6000/t-aix41: Or here. Remove.
928 * configure.in: Don't use it.
930 2000-09-22 Jason Merrill <jason@redhat.com>
932 * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
933 * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
934 * config.in: Regenerate.
936 * configure.in: Fix checks for assembler features when using a
937 one-tree assembler that has not yet been built.
938 Fix --disable-threads.
940 2000-09-19 Geoff Keating <geoffk@cygnus.com>
942 * stmt.c (expand_asm_operands): Allow # in constraints.
944 2000-09-22 Jason Merrill <jason@redhat.com>
946 * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
948 * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
949 function-local names.
951 2000-09-22 Brad Lucier <lucier@math.purdue.edu>
952 Mark Mitchell <mark@codesourcery.com>
954 * toplev.c (warn_disabled_optimization): Declare new warning flag.
955 * flags.h (warn_disabled_optimization): Add it here.
956 * gcse.c (gcse_main): Add warning when disabled.
957 * invoke.texi: Document -Wdisabled-optimization.
959 2000-09-21 Jason Merrill <jason@redhat.com>
961 * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
963 * dwarf2out.c (tree_add_const_value_attribute): New fn.
964 (gen_variable_die): Call it for non-definitions.
966 * dwarf2out.c (die_struct): Add die_mark field.
967 (mark_dies, unmark_dies): New fns.
968 (clear_die_sizes): Remove.
969 (print_die): Check die_symbol rather than die_offset.
970 (build_abbrev_table, output_pubnames, output_aranges): Check
971 die_mark rather than die_offset.
972 (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
975 Thu 21-Sep-2000 18:19:05 BST Neil Booth <NeilB@earthling.net>
977 * cppfiles.c (lookup_include_file): Rename to open_file.
978 Always create a splay tree value, even on syscall failures.
979 Negative entries indicated by fd == -2.
980 Re-open files closed in the meantime.
981 (_cpp_fake_include): Create a negative splay tree entry.
982 (find_include_file, cpp_read_file): Update for function name
984 * gcc.gd/cpp/mi4.c: Testcase.
986 2000-09-21 Nick Clifton <nickc@redhat.com>
988 * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
991 * config/mcore/mcore.c: Fix compile time warnings.
992 * config/mcore/mcore-protos.h: Fix compile time warnings.
994 2000-09-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
996 * configure.in: Correct test of gcc_cv_glibc.
997 * configure: Rebuilt.
998 * config.in: Rebuilt.
1000 2000-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1002 * builtins.c (expand_builtin_fputs): Also expand when length!=1.
1003 (expand_builtin): Handle BUILT_IN_FWRITE.
1005 * builtins.def (BUILT_IN_FWRITE): New entry.
1007 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
1009 Wed Sep 20 15:39:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1011 * gcc.c (modify_target): New variable and struct.
1012 (process_command): Handle MODIFY_TARGET_NAME.
1013 * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
1014 * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
1016 * c-decl.c (finish_decl): Add else's to avoid referencing
1017 TYPE_DOMAIN of an ERROR_MARK.
1019 Wed Sep 20 21:44:31 2000 Denis Chertykov <denisc@overta.ru>
1021 * config/avr/avr.c (adjust_insn_length): Adjust lengths of
1024 2000-09-19 Marek Michalkiewicz <marekm@linux.org.pl>
1026 * config/avr/avr.md (neghi2): Add alternative for input and output
1027 operands in different registers, as in negsi2.
1028 (*negsi2): Remove '*' from the name. Use "movw" if available.
1030 2000-09-19 Jim Wilson <wilson@cygnus.com>
1032 * config/ia64/crtbegin.asm (__dso_handle): Delete use of
1033 HAVE_GAS_HIDDEN macro.
1035 Tue 19-Sep-2000 22:38:57 BST Neil Booth <NeilB@earthling.net>
1037 * cpplex.c (lex_line): Drop the EOF token for unknown
1038 directives in assembler.
1040 2000-09-19 David Edelsohn <edelsohn@gnu.org>
1042 * configure.in: Allow enable_threads_flag value of "aix". Define
1043 thread_file as "aix" for AIX 4.3 and above.
1044 * configure: Regenerated.
1046 * gthr-aix.h: New file.
1048 * rs6000/t-aix43: Replace soft-float multilib with pthread.
1049 Remove 403 processor multilib match. Fix rios2 processor multilib
1052 * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
1053 to return to appropriate csect.
1055 2000-09-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1057 * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
1059 (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
1060 (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
1063 * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
1066 * c-common.c (init_function_format_info): Handle __builtin_printf.
1067 Set `check_function_format_ptr'.
1068 (c_common_nodes_and_builtins): Set `puts_ftype' and
1069 `printf_ftype'. Declare __builtin_putchar, __builtin_puts,
1070 __builtin_printf and printf.
1072 * tree.c, tree.h (check_function_format_ptr): Declare.
1074 Tue 19-Sep-2000 18:26:57 BST Neil Booth <NeilB@earthling.net>
1076 * cppfiles.c (read_include_file): Take no special action for
1079 2000-09-19 Bernd Schmidt <bernds@redhat.co.uk>
1081 * final.c (insn_current_reference_address): Use INSN_SHUID of seq
1082 rather than that of branch.
1083 (shorten_branches): Don't increment insn_current_address twice.
1085 Undo most of the Wed Jan 27 23:39:53 1999 patch:
1086 * loop.h (struct induction): Delete members derived, ix and last_use.
1087 (struct loop_ivs): Delete members first_increment_giv and
1089 * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
1090 recombine_givs): Delete functions.
1091 (find_and_verify_loops): Don't initialize cont_dominator.
1092 (strength_reduce): Lose code to try to find bivs that can be
1093 expressed as givs of another biv, and to convert biv increments
1095 Lose loop_scan_start variable, always use loop->scan_start.
1096 Don't call recombine_givs. Don't handle derived givs.
1097 (record_giv): Don't initialize derived and last_use fields.
1098 (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
1100 * unroll.c (derived_regs): Delete static variable.
1101 (unroll_loop): Don't initialize it.
1102 (copy_loop_body): Lose code to handle derived givs.
1103 (find_splittable_givs): Don't check for givs made from biv
1105 Don't set derived_regs.
1107 Fix misapplied earlier patch:
1108 * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference
1110 (floatsisf2): Generate floatsisf_ie by default.
1111 (floatsisf_i4): Conditional on TARGET_SH4.
1113 (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
1114 predicate for the expanders.
1116 2000-09-19 Richard Henderson <rth@cygnus.com>
1118 * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
1119 in addition to pentium and pentiumpro symbols.
1120 (CPP_CPU_DEFAULT_SPEC): Likewise.
1122 * c-typeck.c (c_expand_asm_operands): Restore the output tree
1125 * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
1126 if the tree has side effects.
1127 (warn_if_unused_value): Do not warn about void constructs.
1129 * c-decl.c (poplevel): Invoke warn_about_unused_variables.
1131 * unroll.c (copy_loop_body): Update LABEL_NUSES before
1132 calling invert_jump.
1134 2000-09-18 Geoff Keating <geoffk@cygnus.com>
1136 * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
1139 2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1141 * Makefile.in (c-common.o): Depend on diagnostic.h.
1143 * c-common.c: Include diagnostic.h.
1145 (status_warning): New function.
1146 (check_format_info, maybe_read_dollar_number, check_format_types,
1147 finish_dollar_format_checking, check_function_format): Accept a
1148 `status' parameter. All callers changed.
1150 * c-common.h (check_function_format): Accept a `status' parameter.
1152 * c-typeck.c: Update call to `check_function_format'.
1154 2000-09-18 Richard Henderson <rth@cygnus.com>
1156 * c-decl.c (c_expand_body): Call mark_varargs before
1157 expand_function_start.
1159 2000-09-18 Geoff Keating <geoffk@cygnus.com>
1161 * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
1162 * config/rs6000/eabi-ci.asm: Likewise.
1164 2000-09-18 Richard Henderson <rth@cygnus.com>
1166 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
1169 2000-09-18 Jim Wilson <wilson@cygnus.com>
1171 * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
1172 before passing it to fold_rtx_mult_add.
1174 * unroll.c (final_giv_value): Pass increment through
1175 extend_value_for_giv before passing it to emit_iv_add_mult.
1177 * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
1178 paradoxical subreg, then directly substitute the replacement and
1181 Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
1183 * cpp.texi: Update documentation, including some clarifications,
1184 the treatment of various newline combinations, and space between
1185 backslash and newline.
1187 Mon Sep 18 21:00:47 2000 J"orn Rennecke <amylaar@redhat.co.uk>
1189 * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
1190 Replace ASM_OUTPUT_LABELREF with assemble_name.
1192 Mon Sep 18 20:26:50 2000 J"orn Rennecke <amylaar@redhat.co.uk>
1194 * sh.c (addsubcosts): CONST is not cheap.
1195 (find_barrier): For Sh1, take alignment after jumps into account.
1197 2000-09-15 Andrew Haley <aph@redhat.com>
1199 * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
1200 remove all SETs of SUBREGs of hard registers.
1201 * function.c (purge_hard_subreg_sets): New function.
1202 (purge_single_hard_subreg_set): New function.
1203 * rtl.h: (purge_hard_subreg_sets): New function.
1205 2000-09-18 Richard Henderson <rth@cygnus.com>
1207 * config/ia64/ia64-protos.h: Update.
1208 * config/ia64/ia64.c (signed_inequality_operator): New.
1209 (ia64_expand_compare): New.
1210 (ia64_register_move_cost): Handle PR_REGS moves.
1211 (ia64_secondary_reload_class): Require a GR when moving to a PR.
1212 (struct reg_write_state): Add written_by_and/or.
1213 (struct reg_flags): Add is_and/or.
1214 (rws_update): Set them.
1215 (rws_access_regno): Test them to allow parallel comparisons.
1216 (rtx_needs_barrier): Recognize parallel comparisons.
1217 (emit_insn_group_barriers): Set prev_insn after a call stop bit.
1218 Call recog_memoized; ignore pred_rel_mutex.
1219 (emit_predicate_relation_info): Don't call find_basic_blocks here.
1220 (ia64_reorg): Do it here instead.
1221 * config/ia64/ia64.h: s/CCmode/BImode/g
1222 (MODES_TIEABLE_P): Don't tie BImode.
1223 (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
1224 (CONST_COSTS): Pick sensible values for CONST_INT based on context.
1225 (RTX_COSTS): Make multiply 4 insns.
1226 (MEMORY_MOVE_COST): New.
1227 (PREDICATE_CODES): Update.
1228 * config/ia64/ia64.md: s/CCmode/BImode/g
1229 (movcci, movbi): New.
1230 (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
1231 (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
1232 (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
1233 (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
1234 (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
1235 (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
1236 (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
1237 (mulsi, muldi): Use xmpy not xma.
1239 (movcc, movcc_internal): Remove.
1240 (branch expanders): Use ia64_expand_compare.
1241 (setcc expanders): Likewise.
1242 (cmov insns): Use move_operand and ia64_move_ok.
1243 (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the
1244 scheduler from moving it past a use.
1245 * config/ia64/build.hacks: Remove.
1247 Mon 18-Sep-2000 19:21:35 BST Neil Booth <NeilB@earthling.net>
1249 * cpphash.h (HASHSTEP): Take character rather than pointer
1251 (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
1253 * cpphash.c (cpp_loookup): Update for new HASHSTEP.
1255 * cpplex.c (auto_expand_name_space, trigraph_replace,
1256 backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
1257 IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
1258 BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
1259 KNOWN_DIRECTIVE): Delete.
1261 (handle_newline, check_long_token, skip_escaped_newlines,
1262 unterminated): New functions.
1263 (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
1265 (parse_identifier): Was parse_name, new implementation.
1266 (skip_line_comment, skip_block_comment, skip_whitespace,
1267 parse_number, parse_string, trigraph_ok, save_comment,
1268 adjust_column, _cpp_get_line): New implementations.
1270 (lex_token): New function. Lexes a token at a time, looking
1271 forwards. Contains most of the guts of the old lex_line.
1272 (lex_line): New implementation, using lex_token to obtain
1274 (cpp_scan_buffer): Use the token's line, not the list's line.
1276 * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
1277 New implementations.
1278 (do_assert): Don't bother setting the answer's list's line.
1279 (cpp_push_buffer): Initialise new pfile and read_ahead members
1280 of struct cpp_buffer.
1282 * cpplib.h (cppchar_t): New typedef.
1283 (struct cpp_buffer): read_ahead, pfile and col_adjust are
1285 (struct lexer_state): New structure that determines the state
1286 and behaviour of the lexer.
1287 (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
1288 (struct cpp_reader): New member "state". Rename
1289 multiline_string_line and multiline_string_column. Delete
1290 col_adjust, in_lex_line members.
1291 (CPP_BUF_COLUMN): Update.
1293 2000-09-18 Richard Henderson <rth@cygnus.com>
1295 * combine.c (simplify_comparison): Shift a NOT out of a single
1298 * combine.c (if_then_else_cond): Canonicalize BImode true to
1300 * explow.c (trunc_int_for_mode): Likewise.
1302 * combine.c (combine_simplify_rtx): Use gen_unary to distribute
1303 the NOT for De Morgan's rule.
1304 * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
1305 of a comparison to the reverse comparison.
1307 * combine.c (try_combine): Allow split to create a single insn.
1309 * machmode.def: Add BImode. Add a column for bitsize.
1310 * machmode.h (DEF_MACHMODE): Adjust for extra column.
1311 (GET_MODE_BITSIZE): Use it.
1312 * rtl.c (DEF_MACHMODE): Adjust for extra column.
1313 (mode_bitsize): New.
1314 (mode_mask_array): Use bitsize.
1315 * combine.c (combine_simplify_rtx): Require inner and outer
1316 modes to match on nonzero_bits optimizations.
1318 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
1320 * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
1321 its entry in spill_reg_store.
1322 * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
1323 * sh.c (reg_no_subreg_operand): New function.
1324 * sh-protos.h (reg_no_subreg_operand): Declare it.
1325 * sh.h (PREDICATE_CODES): Add it.
1326 * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
1327 input operand that needs to be in fpul.
1328 (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
1329 * sh.c (find_barrier): Take into account that machine_dependent_reorg
1330 might add new insns.
1332 2000-09-18 Alexandre Oliva <aoliva@redhat.com>
1334 * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
1336 (sh_expand_epilogue): Take the PIC register into account when
1337 computing the frame size.
1339 * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
1340 * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
1341 LABEL_REFs with a PIC-safe unspec.
1343 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
1345 * c-common.c (check_format_info): Properly save the argument
1346 number and parameter for $ operand number formats in case width
1347 and precision arguments are also used. Allow printf width and
1348 precision arguments to have operand numbers even if none was
1349 specified for the main format, since this is OK for %*.*m. Only
1350 object to missing $ operand number if the format used requires an
1353 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
1355 * c-common.c (format_char_info): Add 'W' flag to comment.
1356 (print_char_table, scan_char_table): Use it.
1357 (check_format_info): Use the 'W' flag to determine whether a
1358 format argument is written into.
1360 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
1362 * c-common.c (check_format_types): Reorganise and clean up,
1363 checking earlier for ERROR_MARKs and making cur_type into its
1364 TYPE_MAIN_VARIANT where convenient.
1366 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
1368 * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
1370 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
1372 * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
1374 * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
1375 * i386.c (struct builtin_description): New.
1376 (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
1377 (mmx_reg_operand): Declare MODE arg as unused.
1378 (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
1379 ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
1380 ix86_expand_binop_builtin, ix86_expand_store_builtin,
1381 ix86_init_builtins, ix86_expand_builtin): New functions.
1382 * i386.h (ix86_builtins): New enumeration.
1383 (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
1384 * i386.md (attr length_immediate): 0 for mmx/sse types.
1385 (attr prefix_0f): 1 for mmx/sse types.
1386 (setcc_2): Remove "*" so we get gen_setcc_2.
1387 (emms): Account for changed register numbering. Set "memory" attr
1389 (sfence): Set "memory" attr to unknown.
1391 2000-09-18 Andreas Jaeger <aj@suse.de>
1393 * configure.in: Define _GNU_SOURCE only when using the GNU C
1395 * configure: Regenerated.
1396 * config.in: Regenerated.
1398 2000-09-17 Mark Mitchell <mark@codesourcery.com>
1400 * cppinit.c (cpp_init): Don't use ANSI prototypes.
1401 * flow.c (flow_dump_loop): Likewise.
1402 (flow_loops_dump): Likewise.
1404 * c-typeck.c (c_start_case): Fix typo.
1406 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
1408 * c-decl.c (grokdeclarator): Don't give a warning about defaulting
1409 to int for plain complex which defaults to complex double. Do
1410 warn about defaulting to complex double if pedantic. Warn about
1411 complex integer types if pedantic. Warn about complex types if
1412 pedantic and not in C99 mode.
1413 * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
1414 for complex conjugation.
1416 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
1418 * contrib.texi: Update my entry.
1420 Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru>
1422 * config/avr/avr.md (mcu_enhanced): New attribute.
1423 (mcu_mega): Likewise.
1424 (extendhisi2): Use mcu_enhanced.
1425 (zero_extendhisi2): Likewise.
1426 (call_insn): Use mcu_enhanced and mcu_mega.
1427 (call_value_insn): Likewise.
1428 (*sbrx_branch): Use mcu_mega.
1429 (*sbrx_and_branchsi): Likewise.
1430 (*sbrx_and_branchhi): Likewise.
1431 (*tablejump_lib): Likewise.
1433 Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1435 * alias.c (true_dependence): Allow non-unchanging read to conflict
1436 with unchanging write.
1438 * expr.c (store_constructor_field): Accept ALIAS_SET arg.
1439 (store_constructor): Pass alias_set to it.
1441 * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
1442 TYPE_MAIN_VARIANT of ERROR_MARK.
1443 * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
1445 * simplify-rtx.c (simplify_unary_operation): Add cases
1446 FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
1448 2000-09-17 Bernd Schmidt <bernds@redhat.co.uk>
1450 * expr.h (emit_library_call, emit_library_call_value): Delete
1452 * rtl.h (enum libcall_type): New.
1453 (emit_library_call, emit_library_call_value): Change fn_type arg to
1454 be of type enum libcall_type.
1455 * calls.c: Likewise for the function definitions. Several callers
1456 throughout changed to use the new enumeration appropriately.
1457 (emit_library_call_value_1): Likewise. Put back code to make libcall
1458 blocks of equal form, but only use it for the two new higher
1461 2000-09-16 Mark Mitchell <mark@codesourcery.com>
1463 Convert the C front-end to use function-at-a-time mode.
1464 * c-common.h: Include splay-tree.h.
1465 (C_DECLARED_LABEL_FLAG): New macro.
1466 (struct language_function): Add x_scope_stmt_stack and
1467 x_function_name_declared_p.
1468 (RECHAIN_STMTS): Move definition.
1469 (lang_statment_code_p): Likewise.
1470 (lang_expand_stmt): Likewise.
1471 (lang_expand_decl_stmt): New variable.
1472 (lang_expand_function_end): Likewise.
1473 (current_scope_stmt_stack): New function.
1474 (add_decl_stmt): Likewise.
1475 (add_scope_stmt): Likewise.
1476 (mark_stmt_tree): Likewise.
1477 (struct c_lang_decl): New structure.
1478 (DECL_SAVED_TREE): Define.
1479 (c_mark_lang_decl): New function.
1480 (c_expand_start_cond): Change prototype.
1481 (c_finish_then): New function.
1482 (c_finish_else): Likewise.
1483 (current_function_name_declared): Remove.
1484 (set_current_function_name_declared): Likewise.
1485 (mark_c_language_function): Declare.
1486 (case_compare): Likewise.
1487 (c_add_case_label): Likewise.
1488 (c_expand_expr): Likewise.
1489 (c_safe_from_p): Likewise.
1490 * c-common.c (lang_expand_function_end): New variable.
1491 (struct if_elt): Add if_stmt.
1492 (c_expand_start_cond): Add the if-statement to the statement-tree,
1493 rather than generating RTL.
1494 (c_finish_then): New function.
1495 (c_expand_start_else): Don't generate RTL.
1496 (c_finish_else): New function.
1497 (c_expand_expr_stmt): Don't generate RTL.
1498 (statement_code_p): Add SCOPE_STMT.
1499 (case_compare): New function.
1500 (c_add_case_label): Likewise.
1501 (mark_stmt_tree): Likewise.
1502 (c_mark_lang_decl): Likewise.
1503 (mark_c_language_function): Likewise.
1504 (c_expand_expr): Likewise.
1505 (c_safe_from_p): Likewise.
1506 * c-decl.c (c_stmt_tree): New variable
1507 (c_scope_stmt_stack): Likewise.
1508 (c_function_name_declared_p): Likewise.
1509 (lang_expand_expr_stmt): Remove.
1510 (poplevel): Don't call output_inline_function for nested
1512 (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
1514 (redeclaration_error_message): Change means of computing whether
1515 or not a function is nested.
1516 (lookup_label): Don't call label_rtx.
1517 (init_decl_processing): Add more GC roots.
1518 (start_decl): Add DECL_STMTs to the statement-tree, rather than
1519 calling rest_of_decl_compilation.
1520 (finish_decl): Don't call expand_decl.
1521 (store_parm_decls): Begin the statement-tree, but don't generate
1523 (finish_function): Tie off the statement-tree. Call c_expand_body
1525 (c_expand_body): New function.
1526 (push_c_function_context): Save more information.
1527 (pop_c_function_contxt): Likewise.
1528 (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
1529 (lang_mark_tree): Mark it.
1530 (current_stmt_tree): Adjust.
1531 (current_scope_stmt_stack): New function.
1533 (set_current_name_declared): Likewise.
1534 (c_begin_compound_stmt): Define.
1535 (c_expand_decl_stmt): Likewise.
1536 * c-lang.c: Include rtl.h and expr.h.
1537 (lang_init): Set more language-specific hooks.
1538 * c-lex.c: Include expr.h.
1539 * c-parse.in: Changes throughout to add statements to the
1540 statement-tree, rather than generating RTL after every statement.
1541 * c-semantics.c (lang_expand_decl_stmt): Define.
1542 (add_decl_stmt): New function.
1543 (add_scope_stmt): Likewise.
1544 (finish_stmt_tree): Tweak.
1545 (genrtl_expr_stmt): Likewise.
1546 (genrtl_decl_stmt): Handle local labels, and call
1547 lang_expand_decl_stmt if required.
1548 (genrtl_for_stmt): Fix line-number handling.
1549 (genrtl_case_label): Handle cleanups.
1550 (genrtl_asm_stmt): Don't call combine_strings.
1551 (genrtl_compound_stmt): Simplify.
1552 (expand_stmt): Handle SCOPE_STMTs.
1553 * c-tree.h (struct lang_decl): New structure.
1554 (C_DECLARED_LABEL_FLAG): Remove.
1555 (c_begin_compound_stmt): Declare.
1556 (c_expand_decl_stmt): Likewise.
1557 (c_expand_start_case): Rename to c_start_case.
1558 (c_finish_case): New function.
1559 * c-typeck.c (start_init): Tweak setting of
1560 constructor_incremental.
1561 (c_expand_asm_operands): Tweak error-handling. Add to the
1563 (c_expand_return): Add to the statement-tree.
1564 (c_expand_start_case): Rename to ...
1565 (c_start_case): ... this.
1566 (struct c_switch): New type.
1567 (switch_stack): New variable.
1568 (do_case): Simplify.
1569 (c_finish_case): New function.
1570 * dependence.c: Include expr.h.
1571 (enum dependence_type): Change spelling of enumerals.
1572 (check_node_dependence): Adjust.
1573 * expr.h (lang_safe_from_p): Declare.
1574 (safe_from_p): Likewise.
1575 * expr.c (lang_safe_from_p): New variable.
1576 (safe_from_p): Give it external linkage. Use lang_safe_from_p.
1577 * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
1578 * toplev.c (rest_of_decl_compilation): Robustify.
1579 * tree.c (contains_placeholder_p): Likewise.
1580 * Makefile.in: Update dependencies.
1581 * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
1582 * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
1583 (objc_expand_function_end): New function.
1584 (finish_method_def): Use it.
1585 (init_objc): Initialize more language-specific hooks.
1586 * objc/Make-lang.in: Update dependencies.
1588 2000-09-16 Geoffrey Keating <geoffk@cygnus.com>
1590 * configure.in: Define macros that affect features before
1591 testing for features. Don't define _XOPEN_SOURCE.
1592 * configure: Regenerated.
1593 * config.in: Regenerated.
1595 Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com)
1597 * rtlanal.c (rtx_varies_p): Volatile asms vary.
1598 (rtx_unstable_p): Restructure code. Volatile asms
1601 Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1603 * function.h (no_debugging_symbols): New field.
1604 * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
1605 Initialize no_debugging_symbols.
1606 (output_inline_function): Save and restore write_symbols and set from
1607 no_debugging_symbols.
1608 * toplev.c (rest_of_compilation): Call save_for_inline.
1609 * tree.h: Update comment.
1611 * stor-layout.c (place_field): Don't do anything if field or
1612 its type are ERROR_MARK.
1614 Sat Sep 16 19:14:00 2000 Laurynas Biveinis <lauras@softhome.net>
1616 * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
1617 (read_include_file): Ensure inc->mmaped is initialized.
1619 2000-09-16 Richard Henderson <rth@cygnus.com>
1621 * cppiles.c (purge_cache): Use PTR not caddr_t.
1623 2000-09-16 Hans-Peter Nilsson <hp@axis.com>
1625 * gcc.c: In description for %{<S}, say the option removed is -S.
1626 * invoke.texi (Spec Files): Ditto.
1628 2000-09-16 Andreas Jaeger <aj@suse.de>
1630 * configure.in: Always define _GNU_SOURCE to make interfaces
1631 visible that were hidden by only defining _GNU_SOURCE.
1632 * configure: Regenerated.
1634 Sat 16-Sep-2000 08:13:45 BST Neil Booth <NeilB@earthling.net>
1636 * cpplex.c (push_macro_context): Set an argument's level after
1637 calling parse_args. We could loop infinitely otherwise.
1639 2000-09-15 Tom Tromey <tromey@cygnus.com>
1641 * configure, config.in: Rebuilt.
1642 * configure.in: Check for iconv.h. Define _XOPEN_SOURCE.
1644 2000-09-15 Greg McGary <greg@mcgary.org>
1646 * cppmacro.c (check_trad_stringification): Check token
1647 text pointers against limit before dereferencing.
1649 2000-09-15 Joseph S. Myers <jsm28@cam.ac.uk>
1651 * c-common.c (format_wanted_type): New structure.
1652 (check_format_types): New function.
1653 (check_format_info): Pass all checking of types of format
1654 arguments, including width and precision arguments, to this new
1657 2000-09-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1659 * BUGS: Remove file.
1661 2000-09-15 Jakub Jelinek <jakub@redhat.com>
1663 * config/alpha/alpha.c (override_options): ev6 cache latencies
1664 from Richard Henderson. Don't allow -mmemory-latency=L0.
1666 * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
1667 (TARGET_OPTIONS): Add tune=.
1668 (alpha_tune_string): Declare.
1669 * config/alpha/alpha.c (override_options): Add cpu_table.
1670 Use alpha_cpu_string first to set both alpha_cpu and target_flags
1671 and then alpha_tune_string to set alpha_cpu only.
1672 Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
1673 * config/alpha/elf.h (ASM_FILE_START): Likewise.
1674 * config/alpha/osf.h (ASM_FILE_START): Likewise.
1675 * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
1677 Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
1679 * i386-protos.h (no_comparison_operator, uno_comparison_operator):
1681 (ix86_comparison_operator, ix86_cc_mode): Declare
1682 * i386.h (CCGC, CCGCO): New modes.
1683 (SELECT_CC_MODE): Move offline to ....
1684 * i386.c (ix86_cc_mode): .... here; use new modes.
1685 (ix86_comparison_operator): New.
1686 (fcmov_comparison_operator): Ensure proper mode.
1687 (put_condition_mode): More sanity checking.
1688 (ix86_match_ccmode): Handle new modes.
1689 (ix86_expand_fp_compare): GEU requires CCmode.
1690 (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
1692 * i386.md (cmp?i_ccz_1): Remove
1693 (cmp?i_ccno_1): Use ix86_match_ccmode.
1694 (cmp?i_minus_1): New.
1695 (cmpsi_1): New expander.
1696 (cmpqi_ext_1): Use match_ccmode
1697 (cmpqi_ext_3): New expander.
1698 (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
1699 (cmpqi_ext_4): Use match_ccmode.
1700 (add?i_?): Use match_ccmode.
1702 (test?i_ccz_1): Remove
1704 (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
1705 (testqi_ext_0): Use ix86_match_ccmode.
1706 (*xorqi_cc_ext_1): Use ix86_match_ccmode.
1707 (xorqi_cc_ext_1): New expander.
1708 (shift patterns): Use CCGOCmode for all shifts except for sar.
1709 (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
1710 (setcc_3, jcc_3, miv?icc_c): Remove.
1712 2000-09-15 Will Cohen <wcohen@redhat.com>
1714 * dwarf2out.c (add_const_value_attribute): Changed array into a
1715 xmalloced object, so it exists after function exit.
1716 (free_AT): Added case for dw_val_class_float to free allocated
1719 2000-09-15 Kazu Hirata <kazu@hxi.com>
1721 * config/i386/i386.md: Fix a comment typo.
1722 * gcc.c: Fix formatting.
1724 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
1726 * optabs.c (emit_libcall_block): If target is a user variable,
1727 copy to a temporary first.
1728 * expr.c (convert_move): When generating a libcall, make a libcall
1730 * calls.c (emit_library_call_value_1): Don't create a libcall
1731 sequence here; our caller will in most cases do it.
1733 * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
1735 (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
1736 * sh.md (reload_outsf): Generate recognizable patterns for
1738 (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
1739 fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
1740 fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
1741 truncdfsf2_i4): Change not to use explicit references to fpul.
1742 (floatsisf2_ie): Remove USE of fpscr.
1743 (floatsisf2): Change default expansion to match this.
1744 (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
1747 2000-09-15 Richard Henderson <rth@cygnus.com>
1749 * expmed.c (store_bit_field): Consider naturally aligned
1750 memory for direct reference.
1752 2000-09-15 Richard Henderson <rth@cygnus.com>
1754 * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
1755 AND addresses into alias set 0.
1756 (alpha_expand_unaligned_store): Likewise.
1757 (alpha_expand_unaligned_load_words): Likewise.
1758 (alpha_expand_unaligned_store_words): Likewise.
1760 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
1762 * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
1763 * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
1765 * config/mips/mips.c (mips_va_arg): Args passed by reference have a
1766 rsize of UNITS_PER_WORD.
1768 Fri 15-Sep-2000 06:49:07 BST Neil Booth <NeilB@earthling.net>
1770 * cpplex.c (ON_REST_ARG): Correct the test.
1771 (maybe_paste_with_next): Duplicate a token that fail pasting,
1772 and clear its PASTE_LEFT flag, so that nested pasting attempts
1775 2000-09-14 Richard Henderson <rth@cygnus.com>
1777 * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
1778 * cse.c (rtx_cost): Likewise.
1779 * optabls.c (expand_binop): Likewise.
1780 (expand_twoval_binop, prepare_cmp_insn): Likewise.
1781 * regclass.c (copy_cost): Likewise.
1782 * reload1.c (reload_cse_move2add): Likewise.
1784 2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
1786 * c-parse.in (reswords): Add _Complex.
1788 2000-09-14 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1790 * gcc.1: Delete documentation for -undef preprocessor option.
1792 2000-09-14 Alexandre Oliva <aoliva@redhat.com>
1794 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1795 STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
1796 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
1797 Remove undefine before config/elfos.h.
1798 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
1800 2000-09-14 Kazu Hirata <kazu@hxi.com>
1802 * invoke.texi (H8/300 Options): Add -ms2600.
1803 * config/h8300.c (h8300_init_once): Output an error when -ms2600
1804 is used without -ms.
1805 * config/h8300.h (TARGET_MAC): New.
1806 (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
1807 (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
1808 machine other than H8/S2600.
1809 * config/h8300.md: Accept mac instructions on the H8/S2600 instead
1812 2000-09-14 Alexandre Oliva <aoliva@redhat.com>, Bernd Schmidt <bernds@redhat.co.uk>
1814 * reload.c (find_reloads_address_1): Generate reloads for auto_inc
1815 pseudos that refer to the original pseudos, not only to their
1816 equivalent memory locations.
1818 Thu Sep 14 12:10:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1820 * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
1821 when making new MEM.
1823 * Makefile.in (LN): Remove duplicate definition.
1825 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
1827 From Joern Rennecke:
1828 * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
1829 on an insn and function_invariant_p returns nonzero for the source,
1830 add a REG_EQUAL note.
1832 Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com)
1834 * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
1835 conflict with frame_pointer_rtx.
1837 2000-09-13 Kazu Hirata <kazu@hxi.com>
1839 * loop.c: Fix formatting.
1842 2000-09-13 Richard Henderson <rth@cygnus.com>
1844 * config/ia64/ia64.md (divsf3): New.
1845 (divsf3_internal_lat, divsf3_internal_thr): New.
1846 (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
1847 (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
1848 (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
1849 (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
1850 (nmadddf4_alts, nmadddf4_trunc): New.
1851 (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
1852 (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
1853 (multf3_truncsf_alts, multf3_truncdf_alts): New.
1854 (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
1855 (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
1856 (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
1857 (nmaddtf4_truncdf_alts): New.
1858 (recip_approx): Don't predicate.
1860 2000-09-13 Richard Henderson <rth@cygnus.com>
1862 * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
1864 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1866 * flags.h (flag_dump_rtl_in_asm): Declare.
1867 * toplev.c (flag_dump_rtl_in_asm): Define.
1868 (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
1869 if -dP is specified.
1870 * rtl.h (print_rtx_head): Declare.
1871 * print-rtl.c (print_rtx_head): Define.
1872 (print_rtx): Print the string pointed to by print_rtx_head
1873 at beginning of each dump line.
1874 (print_rtl): Likewise.
1875 (print_rtl_single): Likewise.
1876 * final.c (final_scan_insn): Dump the insn in the assembly
1878 * gcc.1: Document -dP option.
1879 * invoke.texi (Debugging Options): Likewise.
1881 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1883 * md.texi (Machine Constraints): Document the 68HC11 constraints.
1884 * install.texi (Configurations): Document the 68HC11&68HC12 port.
1885 * invoke.texi (Option Summary, M68hc1x Options): Document the options.
1887 Tue Sep 12 13:51:13 2000 Denis Chertykov <denisc@overta.ru>
1889 * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
1890 * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
1891 (*clrstrqi): Likewise.
1892 (xorhi3,xorsi3,absqi2): Likewise.
1893 (one_cmplhi2,one_cmplsi2): Likewise.
1894 (addsi3): Two stupid constraint alternatives removed.
1895 (extendhisi2): Use `movw' for enhanced avr cores.
1896 (zero_extendhisi2): Likewise.
1898 Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com)
1900 * alias.c (find_base_term): Use frame_pointer_rtx
1901 when handling an ADDRESSOF.
1903 * cse.c (canon_hash): Handle USE of BLKmode memory.
1904 (cse_insn): Outgoing arguments for a libcall don't
1905 affect any recorded expressions.
1907 2000-09-12 Tom Tromey <tromey@cygnus.com>
1909 * configure, config.in: Rebuilt.
1910 * configure.in: Check for iconv, nl_langinfo, langinfo.h.
1912 2000-09-12 Jakub Jelinek <jakub@redhat.com>
1914 * c-lex.c (lex_string): Use charwidth to compute bytemask.
1915 * expr.c (expand_expr): Don't optimize constant array references
1916 initialized with wide string constants.
1918 2000-09-13 Michael Hayes <mhayes@cygnus.com>
1920 * loop.c (note_set_pseudo_multiple_uses): Correct.
1922 2000-09-12 Jim Wilson <wilson@cygnus.com>
1924 * ifcvt.c (noce_process_if_block): If A and B are the same, and no
1925 else block, and X has side-effects, then fail.
1927 2000-09-12 Greg McGary <greg@mcgary.org>
1929 * config/mips/mips-protos.h
1930 (trap_cmp_op, mips_gen_conditional_trap): New func decls.
1931 * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
1932 (PREDICATE_CODES): Add "trap_cmp_op".
1933 * config/mips/mips.c
1934 (trap_cmp_op, mips_gen_conditional_trap): New functions.
1935 * config/mips/mips.md (trap, conditional_trap): New patterns.
1937 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
1939 * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
1942 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1944 * builtins.c (built_in_decls): New array.
1945 (expand_builtin_fputs): New function.
1946 (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
1948 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
1950 * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
1952 * tree.h (built_in_decls): New array.
1954 Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com)
1956 * convex.md: Use "+" instead of "=" for outputs wrapped in a
1958 * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
1960 2000-09-12 Kazu Hirata <kazu@hxi.com>
1962 * haifa-sched.c: Fix formatting.
1964 * genattrtab.c: Fix formatting.
1966 * unroll.c: Fix formatting.
1968 2000-09-12 Bruce Korb <bkorb@gnu.org>
1970 * fixinc/fixfixes.c: make a type for the fix procedure & use it,
1971 remove obsolete code
1972 * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch.
1973 * fixinc/fixincl.tpl: make non-exported arrays static scope
1974 * fixinc/fixincl.x: regenerate
1975 * fixinc/fixlib.h: Use PARAMS, not _P_
1976 * fixinc/fixtests.c: make a type for the test proc & use it
1977 * fixinc/server.h: Use PARAMS, not _P_
1979 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1981 * c-typeck.c (process_init_element): Avoid union init warnings on
1982 floating point zero. Don't crash on unions containing structs.
1984 2000-09-12 Alexandre Oliva <aoliva@redhat.com>
1986 * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
1987 general_movsrc_operand, and remove CONST_INT from
1988 general_movdst_operand.
1990 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
1992 * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
1993 if a reference to non-fixed hardreg is seen. Otherwise, count hard
1994 regs with a higher cost.
1995 (preferrable): Deal with cases where either cost or regcost is
1997 (cse_insn): Use MAX_COST rather than 10000. Always initialize
1999 (COSTS_N_INSNS): Move definition...
2001 (MAX_COST): New macro.
2002 * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
2005 2000-09-11 Mark Mitchell <mark@codesourcery.com>
2007 * c-common.h (genrtl_clear_out_block): Remove.
2008 * c-semantics.c (genrtl_clear_out_block): Remove.
2009 (genrtl_while_stmt): Don't call it.
2010 (genrtl_for_stmt): Likewise.
2012 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
2014 * cppfiles.c: Move all default-#defines to top of file.
2015 (open_include_file): Replace by lookup_include_file.
2016 (read_with_read, read_file): Merged into read_include_file.
2017 (stack_include_file, purge_cache): New functions.
2018 (close_cached_fd): Delete.
2019 (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
2020 Cache the in-memory buffer, not the file descriptor.
2022 * cpphash.h (struct include_file): Add buffer, st, refcnt,
2024 (xcnew): New utility macro.
2025 (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
2026 * cpplib.h (struct cpp_buffer): Remove mapped field.
2028 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
2030 * cpplex.c (parse_string): Accept backslash space newline as a
2032 (lex_line): Likewise.
2033 (_cpp_get_token): Remove hard limit on macro nesting.
2035 2000-09-12 Philipp Thomas <pthomas@suse.de>
2037 * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
2038 * configure: Rebuilt.
2040 2000-09-13 Michael Hayes <mhayes@cygnus.com>
2042 * flow.c (split_block): Fix update of registers live at
2045 Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
2047 * i386.md (add?i_3, add?i_5): New.
2048 (add?i_4): Rename from add?i_3; Fix compare pattern.
2049 (sub?i_3, xor?i_3, ior?i_3): New.
2051 * genrecog.c (write_tree): Output code to clear insn_extract cache.
2052 * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
2053 instead of extract_insn and extract_constrain_insn_cache instead of
2054 extract_insn and constrain_operands.
2055 * recog.c (extract_insn_cached, extract_constrain_insn_cached):
2057 (extract_insn): Clear which_alternative.
2058 (constrain_operands): Set which_alternative to -1 when failed.
2059 * recog.h (extract_constrain_insn_cached, extract_insn_cached):
2062 2000-09-11 Matthew Hiller <hiller@redhat.com>
2064 * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
2065 on operand 0 to '+'.
2066 (movstricthi): Likewise.
2068 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2070 * loop.h (LOOP_IVS): New macro.
2071 (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
2072 (struct loop_ivs): New.
2073 (struct loop_info): Add ivs field.
2074 (reg_iv_type, reg_iv_info): Delete prototype.
2075 (reg_biv_class, loop_iv_list): Likewise.
2076 * loop.c (record_biv, find_life_end): Pass loop argument.
2077 (reg_iv_type): Remove global array and use
2078 field in loop_regs structure within loop_ivs structure.
2079 (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
2080 (first_increment_giv, last_increment_giv): Use entry in
2082 (record_initial): Pass ivs pointer.
2083 * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
2085 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2087 * loop.h (LOOP_REGS): New macro.
2088 (struct loop_regs): New.
2089 (struct loop_info): Add regs field.
2090 * loop.c (set_in_loop): Remove global array and store
2091 in loop_regs structure as part of loop_info structure.
2092 (n_times_set, may_not_optimize): Likewise.
2093 (reg_single_usage, moved_once): Likewise.
2094 (count_one_set): Add regs argument.
2095 (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
2096 (set_pseudo_multiple_uses): Pass regs pointer.
2098 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2100 * unroll.c (iteration_info): Subsume into loop_iterations.
2101 * loop.h (loop_info): New field iv.
2103 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2105 * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
2106 (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
2107 (flow_loops_update): New prototype.
2108 (flow_loops_find): Add flags to prototype.
2109 (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
2110 * flow.c (flow_loop_pre_header_scan): New.
2111 (flow_loop_dump): Dump pre-header root and trace and exit dominators.
2112 (flow_loop_free): Free pre-header root and trace and exit dominators.
2113 (flow_loops_find): New argument flags.
2114 (flow_loops_update): New function.
2115 * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
2117 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2119 * basic-block.h (split_block, update_bb_for_insn): New prototypes.
2120 * flow.c (split_block, update_bb_for_insn): New functions.
2122 2000-09-11 Richard Henderson <rth@cygnus.com>
2124 * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
2126 2000-09-11 Richard Henderson <rth@cygnus.com>
2128 * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
2129 * config/ia64/ia64.c (fr_nonimmediate_operand): New.
2130 (ia64_override_options): Prevent optimizing division for both
2131 latency and throughput.
2132 (rtx_needs_barrier): Handle frcpa.
2133 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
2134 (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
2135 (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
2136 (TARGET_SWITCHES): Add -minline-divide-min-latency and
2137 -minline-divide-max-throughput.
2138 (PREDICATE_CODES): Update.
2139 * config/ia64/ia64.md (extendsidi2): Remove * from f case.
2140 (zero_extendsidi2): Likewise. Fix typo in f case insn.
2141 (extendsfdf2): Add cases for gr<->fr and fr<->mem.
2142 (extendsftf2): Likewise.
2143 (extenddftf2): Likewise.
2144 (fix_trunctfdi2_alts): New.
2145 (fixuns_trunctfdi2_alts): New.
2146 (madd*4): Rename from madd*3.
2147 (divsi3, modsi3, udivsi3, umodsi3): New.
2148 (divsi3_internal): New.
2149 (divdi3, moddi3, udivdi3, umoddi3): New.
2150 (divdi3_internal_lat, divdi3_internal_thr): New.
2151 (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
2152 (recip_approx): New.
2154 2000-09-11 Alexandre Oliva <aoliva@redhat.com>
2156 * print-rtl.c (debug_call_placeholder_verbose): New variable.
2157 (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
2159 * integrate.c (copy_rtx_and_substitute): Don't share
2160 LEAF_REG_REMAPpable registers with the inlined function. Don't
2161 share the function value with calling sequences.
2163 2000-09-11 Jakub Jelinek <jakub@redhat.com>
2165 * c-decl.c (do_case): Fix a typo.
2167 * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
2168 to a if the comparison is floating mode and not -ffast-math.
2169 * simplify-rtx.c (simplify_ternary_operation): Likewise.
2171 Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
2173 * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
2174 gen_ic_invalidate_line.
2176 2000-09-11 Philip Blundell <pb@futuretv.com>
2178 * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
2180 Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
2182 * install.texi (LANGUAGES): Update to include new languages.
2185 2000-09-11 DJ Delorie <dj@redhat.com>
2187 * gcc.c (main): Don't warn about unused -B prefixes
2188 (unused_prefix_warnings): remove
2190 2000-09-11 Kazu Hirata <kazu@hxi.com>
2192 * final.c: Fix formatting.
2194 * integrate.c: Fix formatting.
2196 2000-09-11 Geoff Keating <geoffk@cygnus.com>
2198 * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
2200 2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
2202 * reload.c (regno_clobbered_p): Fix thinko in previous change.
2204 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2206 * gcc.1: Document 68hc11 specific options.
2208 2000-09-10 Geoff Keating <geoffk@cygnus.com>
2210 * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
2211 (TARGET_LONG_DOUBLE_128): Define.
2212 (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
2213 (LONG_DOUBLE_TYPE_SIZE): Redefine.
2214 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
2215 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
2216 of __LONG_DOUBLE_128__.
2217 (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
2219 (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
2220 (CPP_SYSV_DEFAULT_SPEC): Define.
2221 (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
2222 (INIT_TARGET_OPTABS): Define.
2224 * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
2225 (RS6000_UITRUNC): Likewise.
2226 (INIT_TARGET_OPTABS): New macro.
2227 * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
2228 (trunc_defined): Delete.
2229 (output_prolog): Don't output .extern definitions for fp->int
2230 conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
2231 * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
2232 (trunc_defined): Delete.
2233 (RS6000_ITRUNC): Moved to aix.h.
2234 (RS6000_UITRUNC): Likewise.
2235 * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
2236 only emit a libcall.
2237 (fixuns_truncdfsi2): Delete.
2238 (trunc_call): Delete.
2239 (trunc_call_rtl): Delete.
2241 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
2243 * varasm.c (make_decl_rtl): Restore leading star on
2244 DECL_ASSEMBLER_NAME set for decls with an asmspec.
2246 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
2248 * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
2249 won't give a spurious error for '#pragma pack()'. Simplify
2250 control flow for readability. 'reset' action is not necessary.
2252 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
2254 * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
2255 SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
2256 LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
2257 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
2259 * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
2260 profile.c, sdbout.c, tradcif.y, tree.c:
2261 Include defaults.h if not already included.
2262 Don't define the above macros.
2264 * Makefile.in: Update dependencies.
2266 2000-09-10 Mark Mitchell <mark@codesourcery.com>
2268 * c-common.h (add_stmt): Change prototype.
2269 (RECHAIN_STMTS): New macro.
2270 (CASE_LABEL_DECL): Likewise.
2271 (genrtl_case_label): Change prototype.
2272 (c_expand_start_case): Remove prototype.
2273 (build_case_label): Change prototype.
2274 (decl_constant_value): Declare.
2275 * c-common.c (check_case_value): Handle C++'s extensions to C
2277 * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
2279 * c-parse.in (stmt): Adjust handling of return statements and case
2281 * c-semantics.c (add_stmt): Return the new statement.
2282 (genrtl_return_stmt): Take the RETURN_STMT as input, not the
2283 returned expression. Directly generate RTL, rather than calling
2285 (genrtl_switch_stmt): Don't call c_expand_start_case.
2286 (build_case_label): Take the LABEL_DECL as input, too.
2287 (genrtl_case_label): Just call add_case_node.
2288 (expand_stmt): Adjust calls to genrtl_return_stmt and
2290 * c-tree.h (c_expand_start_case): Declare.
2291 * c-typeck.c (decl_constant_value): Give it external linkage.
2292 (c_expand_return): Don't call expand_return or expand_null_return;
2293 use genrtl_return_stmt instead.
2294 * stmt.c (struct nesting): Remove num_ranges field.
2295 (add_case_node): Give it external linkage.
2296 (expand_start_case): Don't set num_ranges.
2297 (expand_start_case_dummy): Don't clear it.
2298 (pushcase): Rely on add_case_node to handle `default' labels.
2299 (add_case_node): Handle `default' labels.
2300 * tree.c (tree_int_cst_compare): New function.
2301 * tree.h (tree_int_cst_compare): Declare.
2302 (add_case_node): Likewise.
2304 2000-09-10 Richard Henderson <rth@cygnus.com>
2306 * c-parse.in: Revert last change.
2307 (init_reswords): Do not enter disabled keywords into the ridpointers
2308 table, modulo objc weirdness.
2309 (_yylex): Return the canonical spelling for a keyword.
2311 2000-09-10 Philip Blundell <philb@gnu.org>
2313 * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
2314 * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
2316 Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
2318 * alias.c (find_base_term): Handle ADDRESSOF.
2319 (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
2321 2000-09-10 Denis Chertykov <denisc@overta.ru>
2323 * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
2324 outputting templates with many lines.
2326 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2328 * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
2329 to decide whether 64-bit support must be generated.
2331 2000-09-10 Richard Henderson <rth@cygnus.com>
2333 * c-parse.in (asm patterns): Fix volatile check.
2335 2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2337 * cppmacro.c (check_trad_stringification): New function.
2338 (save_expansion): If -Wtraditional, warn about stringification of
2341 2000-09-11 Michael Hayes <mhayes@cygnus.com>
2343 * loop.h (struct loop_mem_info): Move from loop.c
2344 (struct loop_info): Add fields store_mems, mems, mems_idx,
2345 mems_allocated, unknown_address_altered,
2346 unknown_constant_address_altered, num_mem_sets, and
2347 first_loop_store_insn.
2349 * loop.c (loop_store_mems): Replace with field in loop_info struct.
2350 (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
2351 (unknown_address_altered, unknown_constant_address_altered): Likewise.
2352 (num_mem_sets): Likewise.
2353 (replace_loop_mems, replace_loop_regs): New.
2354 (struct loop_replace_args): New.
2355 (load_mems): Use replace_loop_mems.
2356 (try_copy_prop): Use replace_loop_regs.
2357 (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
2359 2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2361 * configure.in: Recognize m6811-elf and m6812-elf.
2362 * configure: Regenerate.
2364 2000-09-09 Geoff Keating <geoffk@cygnus.com>
2366 * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
2369 2000-09-10 Michael Hayes <mhayes@cygnus.com>
2371 * loop.c (struct movables): New.
2372 (num_movables): Move into struct movables.
2373 (the_movables): Change type to struct movables.
2374 (ignore_some_movables): Change struct movable arg to struct movables.
2375 (force_movables, combine_movables, regs_match_p): Likewise.
2376 (rtx_equal_for_loop_p, move_movables): Likewise.
2377 (scan_loop): Change movables to be of type struct movables.
2378 Replace last_movable with field in movables structure.
2380 2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
2382 * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
2383 (init_pragma): Avoid warning if pfile happens to be unused.
2384 * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
2385 define init_pragma to nothing. Always prototype
2386 init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
2388 * c-lex.c (process_directive): Always call dispatch_pragma.
2389 Initialize entering_c_header to 0.
2391 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2393 * config/m68hc11/m68hc11.md: New file, machine description for
2395 * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
2396 * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
2397 * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
2398 * config/m68hc11/m68hc11-protos.h: New file.
2399 * config/m68hc11/m68hc11-crt0.S: New file, startup code.
2400 * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
2401 * config/m68hc11/xm-m68hc11.h: New file, target defs.
2402 * config/m68hc11/larith.asm: New file, libgcc routines.
2404 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2406 * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
2407 (FPBIT_FUNCS): Add _usi_to_sf.
2408 * config/fp-bit.c (usi_to_float): New function.
2409 * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
2410 (usi_to_float): Add appropriate #define.
2412 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
2414 * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
2416 * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
2417 * i386.md (attr "type"): Add sse and mmx types.
2418 (attr "memory"): Handle them without a crash.
2419 (movsi_1, movdi_2): Allow MMX regs.
2420 (movdi splits): Don't split moves involving MMX regs.
2421 (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
2422 (movv4sf_internal, movv4si_internal, movv8qi_internal,
2423 movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
2424 movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
2425 sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
2426 sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
2427 sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
2428 addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
2429 divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
2430 sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
2431 sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
2432 vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
2433 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
2434 cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
2435 addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
2436 subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
2437 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
2438 mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
2439 mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
2440 eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
2441 smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
2442 lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
2443 mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
2444 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
2445 mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
2446 mmx_clrdi): New patterns.
2448 2000-09-08 Richard Earnshaw <rearnsha@arm.com>
2450 * arm.c: Don't include tm.h directly.
2452 Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
2454 * recog.c (validate_replace_rtx_1): Fix confusion about equality
2455 testing; simplify subregs of constants and nested subregs.
2457 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
2459 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
2461 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
2463 * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
2465 * rtl.texi (description of USE): Add note about possible pitfalls
2467 From Richard Henderson:
2468 * reload1.c (choose_reload_regs): Compute need_mode properly.
2470 2000-09-07 Richard Henderson <rth@cygnus.com>
2472 * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
2473 (__modsi3, __umodsi3): Likewise.
2474 (__udivsi3): Likewise. Normalize the TFmode values.
2476 2000-09-07 Geoff Keating <geoffk@cygnus.com>
2478 * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
2480 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
2483 Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
2485 * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
2486 (cmpeqdi_t): Add output pattern.
2487 (cmpeqdi_t+1): Don't split when not optimizing.
2488 Restore proper splitting operation.
2490 2000-09-07 Richard Henderson <rth@cygnus.com>
2492 * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
2493 do not call dispatch_pragma.
2495 2000-09-07 Jim Wilson <wilson@cygnus.com>
2497 * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
2498 to CLASS_CANNOT_CHANGE_MODE.
2499 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
2500 mode classes are different.
2502 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
2504 * cpplib.h (struct cpp_options): Add user_label_prefix member,
2505 left out of commit which removed cppulp.c.
2507 2000-09-07 Richard Henderson <rth@cygnus.com>
2509 * bb-reorder.c (fixup_reorder_chain): Add jump in new block
2510 after switch for CASE_DROPS_THROUGH.
2512 2000-09-07 Richard Henderson <rth@cygnus.com>
2514 * loop.c (strength_reduce): Call check_ext_dependant_givs.
2515 Properly extend the biv initial value for the giv.
2516 (record_biv): Zero ext_dependant.
2517 (record_giv): New argument ext_val. Update all callers.
2518 (general_induction_var): Likewise.
2519 (consec_sets_giv): Likewise.
2520 (simplify_giv_expr): Likewise. Fill in ext_val if we find
2521 a sign-extend, zero-extend, or truncate.
2522 (combine_givs_p): Make sure modes are compatible.
2523 (check_ext_dependant_givs): New.
2524 (extend_value_for_giv): New.
2525 * loop.h (struct induction): Add ext_dependant.
2526 * unroll.c (iteration_info): Extend the biv initial value for the giv.
2527 (find_splittable_givs): Likewise.
2528 (final_giv_value): Likewise.
2530 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
2532 * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
2533 REGISTER_TARGET_PRAGMAS is defined. Duplicate some
2534 definitions from cpplib.h.
2535 * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
2537 * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
2538 documentation for REGISTER_TARGET_PRAGMAS.
2540 * c-lex.c: Include cpplib.h before c-pragma.h. Define a
2541 default-pragma callback to implement -Wunknown-pragmas if
2543 * c-parse.in: Move all includes to top of file.
2544 * c-pragma.c: Include cpplib.h before c-pragma.h. Include
2546 (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
2548 (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
2550 * arm.h, arm-protos.h, arm.c,
2551 c4x.h, c4x-protos.h, c4x.c,
2552 h8300.h, h8300-protos.h, h8300.c,
2553 i370.h, i370-protos.h, i370.c,
2554 i960.h, i960-protos.h, i960.c,
2555 sh.h, sh-protos.h, sh.c,
2556 v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
2557 pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
2559 * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
2560 multiple include guard.
2561 * i370.md (untyped_call): Use GEN_CALL.
2562 (umodsi3): Remove unused variable.
2563 * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
2564 * v850.c (output_move_single, output_move_double): Constify
2566 (print_operand): Constify a char *.
2567 * v850.h (struct small_memory_info): Constify name member.
2569 2000-09-07 Kazu Hirata <kazu@hxi.com>
2571 * config/h8300.h: Fix comment typos.
2572 * config/h8300/h8300.md: Likewise.
2573 * config/h8300/lib1funcs.asm: Likewise.
2575 Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
2577 * Makefile.in: Remove references to cppulp.{c,o}.
2578 * cppinit.c (initialize_builtins, cpp_start_read,
2579 cpp_handle_option): Update to use cpp_options structure.
2582 2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
2584 * c-common.c (time_char_table): Allow %#b and %#h.
2586 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2588 * reorg.c (find_end_label): If the basic block reorder pass moves the
2589 return insn to some other place try to locate it again and put our
2590 end_of_function_label there.
2591 * reorg.c (relax_delay_slots): Check if find_end_label created a
2592 new label that invalidates the current optimazation.
2594 2000-09-07 Catherine Moore <clm@redhat.com>
2596 * unroll.c (unroll_loop): Check for unconditional jumps
2597 to loop continuation. Delete if n_iterations is 1.
2598 (ujump_to_loop_cont): New routine.
2600 2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
2602 * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
2604 * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
2605 to handle multiword modes correctly. All callers and the declaration
2608 2000-09-06 Mark Mitchell <mark@codesourcery.com>
2610 * c-common.h (prep_stmt): Declare.
2611 (lang_expand_stmt): Likewise.
2612 * c-decl.c (lang_expand_stmt): Remove.
2613 * c-semantics.c (lang_expand_stmt): Define.
2614 (prep_stmt): New function.
2615 (expand_stmt): Handle common statement types here.
2617 2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
2619 * configure.in (sh-*-linux*): Added.
2620 * configure: Rebuilt.
2621 * config/sh/t-linux: New file.
2622 * config/sh/sh.h (USERMODE_BIT): Define.
2623 (TARGET_USERMODE): Likewise.
2624 (TARGET_SWITCHES): New switches for the bits above.
2625 (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
2626 * config/sh/linux.h: New file.
2627 * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
2628 underscore on linux.
2629 (L_sdivsi3, L_udivsi3): Define for linux.
2630 (L_ic_invalidate): Define.
2631 * invoke.texi (SH Options): Document -musermode.
2633 2000-09-07 Alexandre Oliva <aoliva@redhat.com>
2635 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
2636 CSE unless generating PIC.
2638 * config/sh/sh.md (symPLT_label2reg): Force the initialization of
2641 2000-09-06 H.J. Lu (hjl@gnu.org)
2643 * Makefile.in (clean_s1): Depend on stage_b.
2644 (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
2645 stage2. They are used for "make compare".
2647 2000-09-06 Mark Mitchell <mark@codesourcery.com>
2649 Move statement-tree facilities from C++ to C front-end.
2650 * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
2651 (void_zero_node): New macro.
2652 (struct stmt_tree_s): New type.
2653 (stmt_tree): New typedef.
2654 (struct language_function): New type.
2655 (last_tree): New macro.
2656 (last_expr_type): Likewise.
2657 (walk_tree_fn): New typedef.
2658 (current_stmt_tree): New function.
2659 (begin_stmt_tree): Likewise.
2660 (add_stmt): Likewise.
2661 (finish_stmt_tree): Likewise.
2662 (statement_code_p): Likewise.
2663 (lang_statement_code_p): New variable.
2664 (walk_stmt_tree): New function.
2665 (STMT_IS_FULL_EXPR_P): New macro.
2666 * c-common.c (lang_statement_code_p): New variable.
2667 (c_common_nodes_and_builtins): Initialize void_zero_node.
2668 (statement_code_p): New function.
2669 (walk_stmt_tree): Likewise.
2670 * c-decl.c (language_function): Rename to ...
2671 (c_language_function): ... this. Include language_function.
2672 (push_c_function_context): Adjust accordingly.
2673 (pop_c_function_context): Likewise.
2674 (mark_c_function_context): Likewise.
2675 (current_stmt_tree): Define.
2676 * c-semantics.c (begin_stmt_tree): New function.
2677 (add_stmt): Likewise.
2678 (prune_unused_decls): Likewise.
2679 (finish_stmt_tree): Likewise.
2681 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2683 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
2685 2000-09-06 Kazu Hirata <kazu@hxi.com>
2687 * calls.c: Fix formatting.
2689 2000-09-06 Graham Stott <grahams@cygnus.co.uk>
2691 * config/i386/i386.h (ADDRESS_COST): Fix typo.
2693 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
2695 Integrated preprocessor.
2697 * Makefile.in: Remove all references to c-parse.gperf,
2698 c-gperf.h, and c-parse.h. Remove -d from yacc command line
2699 generating c-parse.c. Update dependencies.
2700 * c-parse.gperf, c-gperf.h: Delete.
2702 * c-common.c: Don't define parse_options, cpp_token, yy_cur,
2703 yy_lim, or yy_get_token. Don't define get_directive_line if
2705 * c-common.h: Add multiple include guard. Define RID values
2706 for every keyword in C, C++, and Objective C. Put all the
2708 (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
2709 * c-decl.c (c_decode_option): Handle -lang-objc here.
2710 (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
2711 (grokdeclarator): Adjust for new RID scheme.
2712 (extract_interface_info): New stub.
2713 * c-lang.c: Don't declare yy_cur or parse_options.
2714 (lang_init_options): Call cpp_init. Don't call
2716 (lang_init): Don't call check_newline if USE_CPPLIB.
2718 * c-lex.c: Don't include c-parse.h. Do include timevar.h.
2719 Elide lots of unnecessary code if USE_CPPLIB. Delete code
2720 rendered unnecessary by new architecture. Move routines not
2721 shared with C++ to c-parse.in. Maintain a local idea of the
2722 line number. Handle C++ as well as C.
2723 [USE_CPPLIB]: Declare and register callbacks for #ident and
2724 for entering/leaving files.
2725 (init_c_lex, c_lex): Are now the entry points to this file.
2726 (check_newline): Break out directive handling to
2728 (read_ucs, is_extended_char, utf8_extend_token): Moved here
2730 (readescape, parse_float): Overhaul.
2731 (lex_number, lex_string, lex_charconst): Break out of c_lex
2733 (get_fileinfo, update_header_times, dump_one_header,
2734 dump_time_statistics): New and/or moved here from C++.
2735 Support per-file data needed by C++ and per-header timing
2736 statistics (C++ only, at the moment).
2737 * c-lex.h: Update prototypes. Add multiple include guard.
2738 * c-tree.h (struct lang_identifier): Add rid_code field.
2739 (C_IS_RESERVED_WORD, C_RID_CODE): New.
2741 * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
2742 reinit_parse_for_function and/or position_after_white_space.
2743 (save_filename, save_lineno): Look ahead before saving.
2744 (label -> identifier ':'): Save file and line before shifting ':'.
2745 (reservedwords): No need to call get_identifier.
2746 (init_parse, finish_parse, yyerror, yylex, yyprint,
2747 make_pointer_declarator): Are now here for C/ObjC.
2748 (rid_to_yy): Conversion table from RID constants to Yacc codes.
2750 * c-pragma.c: Rewrite parsing logic to fit with cpplib's
2751 #pragma registry. Provide dummy implementation of that
2752 interface if !USE_CPPLIB.
2753 * c-pragma.h: Update to match.
2755 * flags.h: Add multiple include guard.
2756 (flag_detailed_statistics): Moved here from C++.
2757 * toplev.c: Define flag_detailed_statistics.
2759 * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
2761 * timevar.def (TV_CPP, TV_LEX): New.
2762 * timevar.h: Add multiple include guard.
2764 * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
2766 * objc/objc-act.c: Don't mention yy_cur or parse_options.
2767 Initialize cpplib properly. Force lineno to 0 after first
2768 call to check_newline. Don't handle -lang-objc here.
2769 Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
2771 2000-09-06 David Edelsohn <edelsohn@gnu.org>
2773 * rs6000.md: Correct function unit definitions for cr_logical and
2775 (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
2776 and use portable method for >=0 and floating point >=. Remove
2777 associated matchers.
2779 2000-09-06 Mark Mitchell <mark@codesourcery.com>
2781 * extend.texi: Mark named return value extension as deprecated.
2783 2000-09-06 Geoff Keating <geoffk@cygnus.com>
2785 * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
2788 2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
2790 * toplev.c (display_help): Fix thinko in documentation.
2792 * diagnostic.h (output_buffer::indent_skip): New fields.
2793 (output_indentation): New macro.
2795 * diagnostic.c (output_indent): New function.
2796 (output_set_prefix, clear_diagnostic_info): Use.
2797 (output_emit_prefix): Predict future indentation.
2799 2000-09-06 DJ Delorie <dj@redhat.com>
2801 * Makefile.in (stage_*): add more dependencies to ensure parallel
2802 builds build correctly
2804 2000-09-06 Manfred Hollstein <manfredh@redhat.com>
2806 * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
2807 not bootstrap-lean_f.
2809 2000-09-06 Andreas Schwab <schwab@suse.de>
2811 * mklibgcc.in: Emit rule for libgcc-stage-start.
2812 * Makefile.in (stage1-start, stage2-start, stage3-start,
2813 stage4-start): Don't handle libgcc here, use libgcc.mk instead.
2815 2000-09-06 Bernd Schmidt <bernds@redhat.co.uk>
2817 * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
2818 (update_equiv_regs): Likewise, except for the mn10200 kludge.
2819 (combine_regs): Likewise.
2821 * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
2822 * cse.c: Include "basic-block.h".
2823 (struct table_elt): New field REGCOST.
2824 (CHEAP_REG): Delete macro.
2825 (COST): Return 0 for REGs.
2826 (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
2827 (notreg_cost): Return 0 for appropriate SUBREGs.
2828 (COSTS_N_INSNS): Return N * 2.
2829 (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
2831 (CHEAPER): Use new function preferrable.
2832 (insert): Initialize REGCOST member.
2833 (find_best_addr): Use approx_reg_cost for estimation of register
2835 (cse_insn): Likewise.
2836 * loop.c (iv_add_mult_cost): New function.
2837 (add_cost, shift_cost, mult_cost): Delete variables.
2838 (init_loop): Don't initialize add_cost; reduce copy_cost by half.
2839 (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
2840 Make code that detects autoinc opportunities slightly less optimistic.
2841 (simplify_giv_expr): If expression contains other reg that is also a
2842 giv, only increment benefit if this is the only use of that reg.
2843 (consec_sets_giv): Take that change into account.
2844 (combine_givs): Slightly more verbose output.
2846 * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
2847 not the cost of an equivalent shift.
2848 * sh-protos.h (addsubcosts): Declare.
2849 * sh.c (addsubcosts): New function.
2850 * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
2851 (RTX_COSTS): Tweak. Use addsubcosts.
2852 (ADDRESS_COST): Return higher cost for reg+reg addressing.
2854 2000-09-06 Geoff Keating <geoffk@cygnus.com>
2856 * config/rs6000/rs6000.c (validate_condition_mode): New function.
2857 (branch_comparison_operator): Call validate_condition_mode to
2858 abort rather than returning 0.
2859 (branch_positive_comparison_operator): New function.
2860 (scc_comparison_operator): Call validate_condition_mode to abort
2861 rather than returning 0.
2862 (ccr_bit): Call validate_condition_mode. Update for
2864 (print_operand): Delete %C modifier. Update %E case
2865 to use EQ bit not SO bit.
2866 (rs6000_reverse_condition): New function.
2867 (rs6000_generate_compare): New function.
2868 (rs6000_emit_sCOND): New function.
2869 (rs6000_emit_cbranch): New function.
2870 (output_cbranch): The length of a long branch insn is
2871 now only 8 bytes. Add validate_condition_mode. Use
2872 rs6000_reverse_condition. Remove cror generation.
2874 * config/rs6000/rs6000.h: Update comments.
2875 (PREDICATE_CODES): Add new predicate. Update codes used
2876 by branch_comparison_operator and scc_comparison_operator.
2877 * config/rs6000/rs6000-protos.h: Add prototypes for
2878 new external functions.
2879 * config/rs6000/rs6000.md: Add new scheduling parameters
2880 for cr_logical instructions. Change length of branch
2882 (bCOND patterns): Call rs6000_emit_cbranch.
2883 (sCOND patterns): Call rs6000_emit_sCOND.
2884 (branch patterns): Change lengths to 4.
2885 (cr logical patterns): New.
2887 2000-09-06 Richard Henderson <rth@cygnus.com>
2889 * config/i386/i386.md (call_pop): Fix test for setting
2890 current_function_uses_pic_offset_table.
2891 (call, call_value_pop, call_value): Likewise.
2893 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
2895 * timevar.c (timevar_add): Delete.
2896 (timevar_get): Also count time since the selected timer was
2897 last updated. Do not examine the timevar stack if the
2898 selected timer is standalone.
2900 2000-09-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
2902 * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
2904 2000-09-05 Jason Merrill <jason@redhat.com>
2906 * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
2907 for 'extern' arrays.
2909 2000-09-05 Richard Henderson <rth@cygnus.com>
2911 * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
2912 Eliminate final copy from non-trapping case.
2913 (__divdf3, __divsf3): Likewise.
2915 2000-09-05 Richard Henderson <rth@cygnus.com>
2917 * config/ia64/ia64.md (mulhi3): Fix typo last change.
2918 * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
2920 2000-09-03 Donn Terry <donn@interix.com>, Laurynas Biveinis <lauras@softhome.net>
2922 * Makefile.in: Restructure bootstrap stages to allow clean
2923 restart after failure.
2925 2000-09-05 Richard Henderson <rth@cygnus.com>
2927 * config/ia64.md (movsi and movdi patterns): Allow moves from
2928 8-bit constants to AR registers.
2930 2000-09-05 Richard Henderson <rth@cygnus.com>
2932 * config/ia64/ia64.md (mulhi3): New.
2934 2000-09-05 Richard Henderson <rth@cygnus.com>
2936 * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
2937 * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
2938 Optimization Guide, minimum latency alternative.
2939 (__moddi3, __udivdi3, __umoddi3): Likewise.
2940 (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
2942 2000-09-05 Bruce Korb <bkorb@gnu.org>
2944 * fixinc/fixincl.c (load_file): always read header files
2945 with sizes that are a multiple of the page size.
2946 & use libiberty's getpagesize for determining that.
2948 2000-09-05 Alexandre Oliva <aoliva@redhat.com>
2950 * gcse.c (hash_string_1): Add prototype.
2951 * cse.c (canon_hash_string): Likewise.
2953 2000-09-04 Craig Newell <CraigN@ieee.org>
2955 * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
2957 2000-09-04 Andreas Schwab <schwab@suse.de>
2959 * Makefile.in (STAGESTUFF): Remove libgcc.
2960 (stage1-start, stage2-start, stage3-start): Copy the contents of
2961 the libgcc directory explicitly.
2962 (mostlyclean): Clean libgcc.
2964 2000-09-04 Andrew Haley <aph@redhat.com>
2966 * dwarf2out.c: (stack_adjust_offset): New prototype.
2968 Wed Jan 1 00:23:59 MET 1997 Jan Hubicka <jh@suse.cz>
2970 * combine.c (make_extraction): Fix rtx_cost comparison to
2973 Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
2975 * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
2976 umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
2977 Add '*' to insn pattern name.
2979 2000-09-04 Jakub Jelinek <jakub@redhat.com>
2981 * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
2982 use posn - 1 to index into tokens array.
2983 (maybe_paste_with_next): Adjust caller.
2985 2000-09-03 Geoff Keating <geoffk@cygnus.com>
2987 * invoke.texi: Document the -mvxworks option for rs6000 ELF.
2989 * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
2990 (REGNO_REG_CLASS): Use symbolic register
2993 2000-09-03 Richard Earnshaw <rearnsha@arm.com>
2995 * arm.c (final_prescan_insn): If the form of a jump insn isn't
2996 recognized, don't try to conditionally execute it.
2998 Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
3000 * config/avr/avr.md ("*tablejump_lib"): New pattern.
3001 (call_value_insn): Right length claculation.
3002 (call_insn): Likewise.
3004 2000-09-02 Marek Michalkiewicz <marekm@linux.org.pl>
3006 * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
3007 gas_output_limited_string, gas_output_ascii, output_movqi,
3008 output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
3009 out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
3010 out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
3011 ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
3012 lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
3013 out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
3014 Add "const" as needed to remove warnings.
3016 * config/avr/avr.c (avr_override_options, avr_init_once,
3017 function_prologue, function_epilogue, frame_pointer_required_p,
3018 class_likely_spilled_p, order_regs_for_local_alloc,
3019 avr_address_cost, avr_ret_register): Use K&R style arguments.
3020 (initial_elimination_offset, gas_output_limited_string):
3021 Remove ATTRIBUTE_UNUSED from the used arguments.
3022 (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
3023 Use local variables src, dest, base to access operands[].
3024 Rename reg_dest to reg_src if that's what it is.
3025 (output_movhi, output_movsisf): Optimize loading 8-bit immediate
3026 constants to LD_REGS if reg_was_0.
3027 (output_reload_insisf): Change arg 3 to insn length and set it.
3028 (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
3029 access to 16-bit I/O register pairs.
3030 (avr_address_cost): Lower cost for the above case.
3031 (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
3032 may be clobbered, also for LD_REGS.
3033 (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
3036 * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
3038 * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
3039 macro to test_hard_reg_class function.
3040 (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
3041 for loading immediate constants to LD_REGS.
3042 (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
3045 Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
3047 * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
3048 * config/avr/libgcc.S: Lost part of the previous patch.
3050 2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3052 * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
3053 object before calling pthread_mutex_init.
3055 2000-09-02 Alexandre Oliva <aoliva@redhat.com>
3057 * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
3058 config/sh/crtn.asm: New files.
3059 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
3060 (crt1.o, crti.o, crtn.o): New targets.
3061 * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
3063 * configure: Rebuilt.
3064 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
3065 STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
3066 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
3067 Undefine for config/elfos.h to redefine.
3068 (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
3070 2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
3072 * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
3073 legitimize_pic_address, output_pic_addr_const): Declare.
3074 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
3075 (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
3076 (TARGET_SWITCHES): New switch -mprefergot.
3077 (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
3078 (PIC_OFFSET_TABLE_REGNUM): Define.
3079 (GOT_SYMBOL_TABLE): Likewise.
3080 (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
3081 (ENCODE_SECTION_INFO): Define.
3082 (FINALIZE_PIC): New macros.
3083 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
3084 (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
3085 * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
3086 (prepare_move_operands): Call emit_pic_move or
3087 emit_pic_const_move if appropriate.
3088 (output_far_jump): For PIC, use braf and output long offset.
3089 (machine_dependent_reorg):
3090 (sh_expand_prologue): Save and initialize the PIC register.
3091 (sh_expand_epilogue): Restore it.
3092 (initial_elimination_offset): Account for it.
3093 (nonpic_symbol_mentioned_p): New function.
3094 (legitimize_pic_address): Likewise.
3095 (output_pic_addr_const): Likewise.
3096 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
3097 (call, call_value): Use them.
3098 (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
3099 symPLT_label2reg): New expands.
3100 * invoke.texi (SH Options): Document -mprefergot.
3102 2000-09-01 Alexandre Oliva <aoliva@redhat.com>
3104 * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
3105 * gcse.c (hash_string_1): New function.
3106 (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
3107 (expr_equiv_p) <ASM_OPERANDS>: Likewise.
3108 * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
3109 (canon_hash_string): New function.
3110 (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
3111 (exp_equiv_p) <ASM_OPERANDS>: Likewise.
3112 (fold_rtx): Use ASM_OPERANDS accessor macros.
3113 * emit-rtl.c (copy_insn_1): Likewise.
3114 * integrate.c (copy_rtx_and_substitute): Likewise.
3115 * stmt.c (expand_asm_operands): Likewise. Give an
3116 ASM_OPERANDS rtx the mode of the output reg being set from it.
3118 2000-09-01 Fred Fish <fnf@be.com>
3120 * fix-header.c (write_rbrac): Add putc and getc to list of
3121 functions to protect against prior definition as a macro.
3123 2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
3125 * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
3126 (c_size_type_node): Define.
3127 * c-decl.c (init_decl_processing): Initialize c_size_type_node.
3128 * c-common.c (enum format_lengths, enum format_std_version,
3129 format_length_info, format_type_detail, BADLEN, NOLENGTHS,
3130 format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
3131 T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
3132 T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
3133 T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
3134 TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
3135 format_types): Define.
3136 (format_char_info, print_char_table, scan_char_table,
3137 time_char_table): Rearrange for new organization of information
3138 about format length modifiers and standard versions.
3139 (T_ST): Redefine to use c_size_type_node.
3140 (check_format_info): Obtain information about length modifiers and
3141 standard versions from tables. Adjust warning message wordings.
3142 Use the name from the user's program for `ll' and `hh' length
3143 modifiers in warning messages. Use more informative names for
3144 wanted types where available (for wchar_t, wint_t, size_t, signed
3145 size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
3147 2000-09-01 Jim Wilson <wilson@cygnus.com>
3149 * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
3150 * combine.c (distribute_notes): Handle REG_NORETURN.
3151 * rtl.c (reg_note_name): Add REG_NORETURN.
3152 * rtl.h (enum reg_note): Likewise.
3154 * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
3156 * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
3157 (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
3158 (emit_predicate_relation_info): Handle conditional calls with
3160 * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
3161 instead of ia64_file_start.
3162 * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
3163 * config/ia64/ia64.md (safe_across_calls_all,
3164 save_across_calls_normal): New patterns.
3166 * loop.c (check_final_value): Check for biv use before checking for
3167 giv use. Check for both biv and giv uses. Always set last_giv_use
3168 if there is a giv use.
3170 2000-09-01 Richard Henderson <rth@cygnus.com>
3172 * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
3173 (madddi3): Likewise.
3176 Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3178 * expr.c (clear_storage): Don't use emit_move_insn unless
3179 either BLKmode or proper size.
3180 (store_constructor): Don't call clear_storage if REG of wrong size.
3182 * flow.c (init_propagate_block_info): Don't mark frame dead at end
3183 of function if returns wiht stack pointer depressed.
3185 2000-09-01 Andrew Haley <aph@redhat.com>
3187 * dwarf2out.c (stack_adjust_offset): New function.
3188 (dwarf2out_stack_adjust): Break out stack adjust logic into
3189 new stack_adjust_offset function. Look inside parallels and
3190 sequences for stack adjustments.
3192 2000-08-31 Jeff Law <law@cygnus.com>
3194 * arm.md: Use no_new_pseudos to determine when it is safe
3195 to create new pseudo registers.
3197 * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
3198 when we can safely allocate new registers.
3200 2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
3202 * stmt.c (expand_asm_operands): Twiddle generating_concat_p
3203 so that CONCATs are not generated for ASMs.
3204 * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
3205 not generating_concat_p.
3206 * function.c (pop_function_context_from): Reset
3207 generating_concat_p.
3208 (prepare_function_start): Likewise.
3209 * rtl.c (generating_concat_p): Define.
3210 * rtl.h (generating_concat_p): Declare.
3211 * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
3213 2000-08-22 Philipp Thomas <pthomas@suse.de>
3214 Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
3216 * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
3219 2000-08-30 Greg McGary <greg@mcgary.org>
3221 * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
3222 * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
3223 * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
3225 2000-08-30 Greg McGary <greg@mcgary.org>
3227 * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
3228 (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
3229 (TREE_INT_CST): New macro.
3230 * varasm.c (const_hash, compare_constant_1, record_constant_1):
3231 Use new macro TREE_INT_CST.
3233 Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
3235 * contrib.texi: Add self.
3237 2000-08-30 Alexandre Oliva <aoliva@redhat.com>
3239 * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
3240 (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
3243 2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3245 * fixinc/gnu-regex.c: Don't define `const'.
3247 Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3249 * expr.c (store_constructor): Allow variable bounds of array type.
3250 (expand_expr): Don't blow up if type is ERROR_MARK.
3251 * varasm.c (output_constructor): Don't access lower bound of array
3252 type unless need it if index is supplied (so it can be a variable
3253 if no index is supplied).
3254 Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
3255 Other minor cleanups.
3257 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3259 * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
3260 for compilations in stage 1 and subsequent stages, respectively.
3261 * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
3262 * configure: Rebuilt.
3263 * x-vax, x-vax-gcc: Deleted.
3265 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
3267 * c-common.c (declare_function_name): Use func_id_node,
3268 function_id_node, and pretty_function_id_node. Do not make
3269 __func__ visible at file scope.
3270 * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
3271 CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
3272 (function_id_node, pretty_function_id_node, func_id_node): New
3274 * c-decl.c (init_decl_processing): Initialize function_id_node,
3275 pretty_function_id_node, and func_id_node.
3276 (c_make_fname_decl): Correct comment.
3278 * tree.h (struct tree_identifier): Constify pointer member.
3280 * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
3281 * c-pragma.h (struct weak_syms): Constify name and value members.
3282 (add_weak): Constify arguments.
3284 * calls.c (special_function_p): Constify a char *.
3285 (expand_call): Remove variable which is initialized and then
3287 * dependence.c (struct def_use, struct induction, struct subscript):
3288 Constify 'variable' member.
3289 (get_low_bound, have_induction_variable): Constify char * argument.
3290 (find_induction_variable): Add braces to avoid dangling else.
3291 (classify_dependence): Constify char * arrays.
3292 * profile.c (output_func_start_profiler): Constify a char *.
3293 * stor-layout.c (finalize_record_size): Constify a char *.
3294 * tree.c (is_attribute_p): Constify a char *.
3295 * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
3297 * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
3298 for comprehensibility. Do not call get_identifier if we did
3299 not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
3300 create temporary string constants, not ggc_alloc_string. No
3301 need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
3302 char * to hold IDENTIFIER_POINTERs.
3304 2000-08-29 Richard Henderson <rth@cygnus.com>
3306 * config/ia64/ia64.md (muldi3): Use grfr_register_operand
3309 2000-08-29 Richard Henderson <rth@cygnus.com>
3311 * reload.c (push_secondary_reload): Allow class == reload_class
3312 if we're using a reload_in/out pattern.
3314 * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
3315 the half that does not conflict with the reload register.
3316 (reload_outti): Likewise.
3318 2000-08-29 Kazu Hirata <kazu@hxi.com>
3320 * reload.c: Fix formatting.
3322 * stmt.c: Fix formatting.
3324 * gcc.c: Fix formatting.
3326 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
3328 * flags.h (time_report, mem_report): New global flags.
3329 * toplev.c: Define time_report and mem_report.
3330 (f_options): Add -ftime-report and -fmem-report.
3331 (compile_file): Turn on time_report if quiet_flag is off.
3332 Call ggc_print_statistics at very end if mem_report is on.
3333 * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
3335 * ggc-common.c (ggc_print_statistics): Rename to
3336 ggc_print_common_statistics; all callers changed. Scale
3337 quantities above 10K to kilobytes and above 10M to megabytes.
3338 * ggc-page.c (ggc_page_print_statistics): Rename to
3339 ggc_print_statistics. Report memory consumed by internal data
3340 structures for each allocation bucket. Scale quantities above
3341 10K to kilobytes and above 10M to megabytes.
3342 * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
3343 Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
3344 Define tally_leaves always.
3345 (ggc_print_statistics): New function.
3346 * ggc.h: Adjust for renamed functions.
3348 Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
3350 * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
3351 output_movsisf instead of which_alternative.
3353 * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
3355 Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
3357 * config/avr/avr-protos.h: (avr_output_ascii) Removed.
3358 (avr_progmem_p): New prototype.
3359 (output_movsisf): Prototype declaration changed.
3360 (output_movqi): New prototype.
3361 (output_movhi): New prototype.
3362 (call_insn_operand): Likewise.
3363 (final_prescan_insn): Likewise.
3364 (avr_simplify_comparision_p): Likewise.
3365 (avr_normalize_condition): Likewise.
3366 (compare_eq_p): Likewise.
3367 (out_shift_with_cnt): Likewise.
3368 (const_int_pow2_p): Likewise.
3369 (output_reload_inhi): Prototype declaration changed.
3371 * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
3372 (ldi_reg_rtx): New. rtx for r31.
3373 (avr_init_stack): Initialize as "__stack".
3374 (function_prologue): Use it.
3375 Replace all TARGET_ENHANCED with AVR_ENHANCED.
3376 (avr_mcu_name): Initialize as "avr2".
3377 (avr_enhanced_p, avr_mega_p): New variables.
3378 (mcu_types, avr_override_options): Handle all known MCU types.
3379 Also handle avr1 (only preprocess, assemble and link).
3380 (print_operand): Using of `%K' in output template removed.
3381 (out_movqi_r_mr): Optimized.
3382 (out_movhi_r_mr): Likewise.
3383 (output_movqi): New function.
3384 (output_movhi): Likewise.
3385 (out_movsi_r_mr): Optimized.
3386 (output_movsisf): Compute insn length for `adjust_insn_length'
3387 (out_movqi_mr_r): Optimized.
3388 (out_movhi_mr_r): Optimized.
3389 (adjust_insn_length): Use output_movsisf, output_movqi,
3390 output_movhi for insn length adjusting.
3391 (reg_unused_after): Use dead_or_set_p.
3392 (preferred_reload_class): Now havn't any restriction.
3393 (reg_was_0): New function.
3394 (io_address_p): Likewise.
3395 (const_int_pow2_p): Likewise.
3396 (output_reload_inhi): Likewise.
3397 (output_reload_insisf): Likewise.
3399 * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
3400 (LIB_SPEC): Use -lc for all supported devices.
3401 (LIBGCC_SPEC): Use -lgcc for all supported devices.
3402 (AVR_MEGA): Define as avr_mega_p.
3403 (AVR_ENHANCED): New, define as avr_enhanced_p.
3404 (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
3405 (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
3406 (CRT_BINUTILS_SPECS): Handle all known MCU types.
3407 Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
3408 (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
3409 (ASM_SPEC): Pass -mmcu=... to the assembler.
3410 Change all -DAVR_* to -D__AVR_*__.
3411 (INIT_TARGET_OPTABS), config/avr/libgcc.S:
3412 Rename library functions to