gcc.git
22 years agoconfigure: Rebuilt.
Tom Tromey [Wed, 10 Jul 2002 14:30:15 +0000 (14:30 +0000)]
configure: Rebuilt.

* configure: Rebuilt.
* configure.in: Use `test' after `&&'.  From Chris Faylor.

From-SVN: r55366

22 years agovalarray_meta.h (_UnFunBase): Take a second template parameter.
Gabriel Dos Reis [Wed, 10 Jul 2002 12:06:37 +0000 (12:06 +0000)]
valarray_meta.h (_UnFunBase): Take a second template parameter.

* include/bits/valarray_meta.h (_UnFunBase): Take a second
template parameter. Remove _M_func data member.
(_UnFunClos): Take a third template parameter.
(__abs, __cos, __acos, __cosh, __sin, __asin, __sinh, __tan,
__atan, __tanh, __exp, __log, __log10, __sqrt): New classes.
(_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.

From-SVN: r55365

22 years agodiagnostic.h: #include location.h
Gabriel Dos Reis [Wed, 10 Jul 2002 10:36:27 +0000 (10:36 +0000)]
diagnostic.h: #include location.h

* diagnostic.h: #include location.h
(location_t): Move definition to..
* location.h: ... here.  New file.
* tree.h: #include location.h
(DECL_SOURCE_LOCATION): New macro.
(DECL_SOURCE_FILE): Use.
(DECL_SOURCE_LINE): Likewise.
(struct tree_decl): REplace filename and linenum with locus.
* Makefile.in (TREE_H): add location.h
(diagnostic.o): Depends on gt-location.h
(gt-location.h): Depends on s-gtype

From-SVN: r55364

22 years agoDaily bump.
GCC Administrator [Wed, 10 Jul 2002 07:17:32 +0000 (07:17 +0000)]
Daily bump.

From-SVN: r55363

22 years agoaix.h: Convert CPP_PREDEFINES to TARGET_OS_CPP_BUILTINS.
Matt Kraai [Wed, 10 Jul 2002 00:33:52 +0000 (00:33 +0000)]
aix.h: Convert CPP_PREDEFINES to TARGET_OS_CPP_BUILTINS.

* config/rs6000/aix.h: Convert CPP_PREDEFINES to
TARGET_OS_CPP_BUILTINS.
* config/rs6000/aix31.h: Likewise.
* config/rs6000/aix41.h: Likewise.
* config/rs6000/aix43.h: Likewise.
* config/rs6000/aix51.h: Likewise.
* config/rs6000/beos.h: Likewise.
* config/rs6000/darwin.h: Likewise.
* config/rs6000/eabi.h: Likewise.
* config/rs6000/eabisim.h: Likewise.
* config/rs6000/linux.h: Likewise.
* config/rs6000/linux64.h: Likewise.
* config/rs6000/lynx.h: Likewise.
* config/rs6000/mach.h: Likewise.
* config/rs6000/rtems.h: Likewise.
* config/rs6000/sysv4.h: Likewise.
* config/rs6000/vxppc.h: Likewise.

From-SVN: r55356

22 years agocp-demangle.c (demangle_identifier): Support extended Unicode characters.
Jason Merrill [Tue, 9 Jul 2002 23:57:09 +0000 (19:57 -0400)]
cp-demangle.c (demangle_identifier): Support extended Unicode characters.

        * cp-demangle.c (demangle_identifier): Support extended Unicode
        characters.

From-SVN: r55354

22 years agore PR c++/6255 (ICE with templatess)
Jason Merrill [Tue, 9 Jul 2002 23:45:37 +0000 (19:45 -0400)]
re PR c++/6255 (ICE with templatess)

        PR c++/6255
        * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
        modifying the old one.

From-SVN: r55352

22 years agocp-tree.h (constructor_name_p): Declare it.
Mark Mitchell [Tue, 9 Jul 2002 23:31:28 +0000 (23:31 +0000)]
cp-tree.h (constructor_name_p): Declare it.

* cp-tree.h (constructor_name_p): Declare it.
(check_template_template_default_arg): Likewise.
* class.c (handle_using_decl): Use constructor_name_p.
* decl.c (grokdeclarator): Likewise.
* decl2.c (constructor_name_p): Define it.
* init.c (build_member_call): Use constructor_name_p.
* parse.y (template_parm): Use check_template_template_default_arg.
* pt.c (check_explicit_specialization): Use constructor_name_p.
* semantics.c (check_template_template_default_arg): New function.

From-SVN: r55350

22 years ago* gcc.dg/20020312-2.c: Check for __PPC__.
Aldy Hernandez [Tue, 9 Jul 2002 23:30:51 +0000 (23:30 +0000)]
* gcc.dg/20020312-2.c: Check for __PPC__.

From-SVN: r55349

22 years agoobjc-act.c (adjust_type_for_id_default): Fix my previous patch.
Devang Patel [Tue, 9 Jul 2002 22:29:11 +0000 (15:29 -0700)]
objc-act.c (adjust_type_for_id_default): Fix my previous patch.

2002-07-09 Devang Patel <dpatel@apple.com>
        * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
        Do not allow ObjC objects as a parameter type for Objective-C methods.
        My previous patch restricted  'struct' also.

From-SVN: r55348

22 years agocpperror.c (cpp_error): Default to directive_line within directives here.
Neil Booth [Tue, 9 Jul 2002 22:21:37 +0000 (22:21 +0000)]
cpperror.c (cpp_error): Default to directive_line within directives here.

* cpperror.c (cpp_error): Default to directive_line within
directives here.
* cppexp.c (cpp_interpret_integer): Only use traditional
number semantics in directives.
* cpplib.c (prepare_directive_trad): Don't reset pfile->line.
(do_include_common): Similarly.
* cpptrad.c (scan_out_logical_line): Implement accurate
quoting of <> in #include.
* doc/cpp.texi: Update.

From-SVN: r55347

22 years agosh.c (sh_adjust_cost): Special handling of SHMEDIA code.
Stephen Clarke [Tue, 9 Jul 2002 22:04:34 +0000 (22:04 +0000)]
sh.c (sh_adjust_cost): Special handling of SHMEDIA code.

Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
                          J"orn Rennecke <joern.rennecke@superh.com>

* sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
* sh.md (attribute issues): Replace with:
(attribute pipe_model).  All users changed.
(attribute type): Change pt / ptabs to pt_media / ptabs_media.
All users changed.
(function units sh5issue, sh5fds): New.
(attribute is_mac_media): New.
(adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
(andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
(ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
(movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
(call_media, call_value_media, sibcall_media): Likewise.
(casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
(return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
(mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
(fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
(cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
(sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
(muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
(fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
(cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
(sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
(truncdfsf2_media): Likewise.
(movsi_media, movsi_media_nofpu, movdi_media): Use new types.
(movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.

Co-Authored-By: J"orn Rennecke <joern.rennecke@superh.com>
From-SVN: r55346

22 years agosh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
J"orn Rennecke [Tue, 9 Jul 2002 21:30:32 +0000 (21:30 +0000)]
sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.

* sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
* sh.c (general_extend_operand, inqhi_operand): New functions.
* sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
alternatives using 'N' modifier.  Add type.
(adddi3z_media): Likewise.  Enable generator function generation.
(movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
exact predicates / constraints.  Add type.
(subsi3): Allow 0 for SHMEDIA.
(udivsi3_i4_media): Use match_operand for input values
rather than hard registers.
(udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
unnecessarily through hard registers.  Keep copies of pseudo
registers outside of the libcall sequence.
(mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
(ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
(zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
(extendhidi2, extendqidi2): Likewise.
(andsi3_compact): Name.
(andcdi3): Enable generator function generation.
(zero_extendhisi2, zero_extendqisi2): Rename to
(zero_extendhisi2_compact, zero_extendqisi2_compact).
(extendhisi2, extendqisi2): Rename to
(extendhisi2_compact, extendqisi2_compact).
(rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
(loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
(zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
(zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
(extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
(extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
(truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
(shmedia32_initialize_trampoline_big): Likewise.
(shmedia32_initialize_trampoline_little): Likewise.
(nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
(negdi2): Remove spurious T clobber.
(zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
(movsi_media, movsi_media_nofpu): Remove spurious *k after b.
(movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
(movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
(ic_invalidate_line_media): Write back data cache before invalidating
instruction cache.  Add type.
(movsf_media): Sign-extend when the destination is a general
purpose register.  Add type.
(bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
(casesi_worker_0+1): Only increment ref count for proper label.
(casesi_worker_0+2): Likewise.

From-SVN: r55345

22 years agoTreelang updates for new attrib regime.
Tim Josling [Tue, 9 Jul 2002 21:19:08 +0000 (21:19 +0000)]
Treelang updates for new attrib regime.

From-SVN: r55344

22 years ago* gcc.c-torture/compile/20020709-1.c: New test.
Diego Novillo [Tue, 9 Jul 2002 19:52:02 +0000 (19:52 +0000)]
* gcc.c-torture/compile/20020709-1.c: New test.

From-SVN: r55343

22 years ago* dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.
Mark Mitchell [Tue, 9 Jul 2002 17:04:56 +0000 (17:04 +0000)]
* dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.

From-SVN: r55342

22 years agoexcept.c (expand_eh_region_end_cleanup): Change exception pointer from Pmode to ptr_mode.
Steve Ellcey [Tue, 9 Jul 2002 15:28:22 +0000 (15:28 +0000)]
except.c (expand_eh_region_end_cleanup): Change exception pointer from Pmode to ptr_mode.

* gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
from Pmode to ptr_mode.
(get_exception_pointer): Ditto.
(connect_post_landing_pads): Ditto.
(dw2_build_landing_pads): Ditto.

From-SVN: r55341

22 years agoDaily bump.
GCC Administrator [Tue, 9 Jul 2002 07:16:50 +0000 (07:16 +0000)]
Daily bump.

From-SVN: r55340

22 years agocp-demangle.c (demangle_v3_with_details): Wrap in !defined IN_GLIBCPP_V3.
Kaveh R. Ghazi [Tue, 9 Jul 2002 00:32:22 +0000 (00:32 +0000)]
cp-demangle.c (demangle_v3_with_details): Wrap in !defined IN_GLIBCPP_V3.

* cp-demangle.c (demangle_v3_with_details): Wrap in
!defined IN_GLIBCPP_V3.

From-SVN: r55335

22 years agoconfigure.in: Don't build grez.
Nathanael Nerode [Mon, 8 Jul 2002 21:40:41 +0000 (21:40 +0000)]
configure.in: Don't build grez.

* configure.in: Don't build grez.
* Makefile.in: Ditto.

From-SVN: r55334

22 years agomauve-libgcj: Don't compile java.sql.Blob.BlobTest...
Mark Wielaard [Mon, 8 Jul 2002 21:36:25 +0000 (21:36 +0000)]
mauve-libgcj: Don't compile java.sql.Blob.BlobTest...

* mauve-libgcj: Don't compile java.sql.Blob.BlobTest,
java.sql.Clob.ClobTest, java.sql.Connection.TestJdbc20,
java.sql.DatabaseMetaData.TestJdbc20

From-SVN: r55333

22 years agoMakefile.in: Remove references to bsp, cygmon, libstub.
Nathanael Nerode [Mon, 8 Jul 2002 20:06:51 +0000 (20:06 +0000)]
Makefile.in: Remove references to bsp, cygmon, libstub.

* Makefile.in: Remove references to bsp, cygmon, libstub.
* configure.in: Ditto.

* configure.in: Remove leftover reference to gdbtest.

From-SVN: r55332

22 years agoconfigure.target: Fix comment for mips atomicity.
Eric Christopher [Mon, 8 Jul 2002 19:41:57 +0000 (19:41 +0000)]
configure.target: Fix comment for mips atomicity.

2002-07-08  Eric Christopher  <echristo@redhat.com>

* configure.target: Fix comment for mips atomicity. Add
mips*-*-linux* target, enable atomic operations there.
* config/cpu/mips/atomicity.h: Fix comments, remove
#ifndef/#endif. Add push/pop mips2.

From-SVN: r55331

22 years agoc-pragma.h (add_to_renaming_pragma_list): New function.
Steve Ellcey [Mon, 8 Jul 2002 17:53:24 +0000 (17:53 +0000)]
c-pragma.h (add_to_renaming_pragma_list): New function.

* gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
* gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
(handle_pragma_redefine_extname): Change to use new function.

From-SVN: r55330

22 years agocombine.c (combine_simplify_rtx): Add an explicit cast to avoid signed/unsigned compa...
Roger Sayle [Mon, 8 Jul 2002 15:59:53 +0000 (15:59 +0000)]
combine.c (combine_simplify_rtx): Add an explicit cast to avoid signed/unsigned comparison warning.

* combine.c (combine_simplify_rtx): Add an explicit cast
to avoid signed/unsigned comparison warning.
(simplify_if_then_else): Likewise.
(extended_count): Likewise.
(simplify_shift_const): Likewise.
(simplify_comparison): Likewise.

From-SVN: r55329

22 years agopt.c (can_complete_type_without_circularity): Add static to function definition.
Kriang Lerdsuwanakij [Mon, 8 Jul 2002 14:53:51 +0000 (14:53 +0000)]
pt.c (can_complete_type_without_circularity): Add static to function definition.

* pt.c (can_complete_type_without_circularity): Add static to
function definition.

From-SVN: r55326

22 years agostl_deque.h (_Deque_alloc_base): Change order of member declarations to avoid compile...
Peter Schmid [Mon, 8 Jul 2002 12:24:52 +0000 (12:24 +0000)]
stl_deque.h (_Deque_alloc_base): Change order of member declarations to avoid compiler warnings and restore 3.1 ABI.

2002-07-08  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>

* include/bits/stl_deque.h (_Deque_alloc_base):  Change order of
member declarations to avoid compiler warnings and restore 3.1 ABI.

From-SVN: r55325

22 years agoconfigure.in (gxx_include_dir): Change to match versioned C++ headers if --enable...
Phil Edwards [Mon, 8 Jul 2002 10:00:39 +0000 (10:00 +0000)]
configure.in (gxx_include_dir): Change to match versioned C++ headers if --enable-version-specific-runtime-libs...

2002-07-08  Phil Edwards  <pme@gcc.gnu.org>

* configure.in (gxx_include_dir):  Change to match versioned
C++ headers if --enable-version-specific-runtime-libs is used.

From-SVN: r55323

22 years agohowto.html: Link to dk_std::vector paper and homepage.
Phil Edwards [Mon, 8 Jul 2002 09:51:54 +0000 (09:51 +0000)]
howto.html: Link to dk_std::vector paper and homepage.

2002-07-08  Phil Edwards  <pme@gcc.gnu.org>

* docs/html/23_containers/howto.html:  Link to dk_std::vector paper
and homepage.

From-SVN: r55322

22 years agomips.md: Add imadd type.
Richard Sandiford [Mon, 8 Jul 2002 08:56:20 +0000 (08:56 +0000)]
mips.md: Add imadd type.

* config/mips/mips.md: Add imadd type.  Update scheduler description
to use imadd as well as imul.
(*mul_acc_si, *madsi): Change imul alternatives to imadd.
(*mul_acc_di, *mul_acc_64bit_di): Likewise.
(*mul_sub_si): Likewise for first alternative.  Change second
alternative from imul to multi.

From-SVN: r55321

22 years agocp-tree.h (have_extern_spec): Declare it
Mark Mitchell [Mon, 8 Jul 2002 07:49:58 +0000 (07:49 +0000)]
cp-tree.h (have_extern_spec): Declare it

* cp-tree.h (have_extern_spec): Declare it
* decl.c (have_extern_spec): Define it.
(start_decl): Eliminate use of used_extern_spec.
(start_function): Likewise.
* parse.y (have_extern_spec): Remove declaration.
(used_extern_spec): Likewise.
(frob_specs): Eliminate use of used_extern_spec.
(.hush_warning): Likewise.

From-SVN: r55319

22 years agoDaily bump.
GCC Administrator [Mon, 8 Jul 2002 07:16:59 +0000 (07:16 +0000)]
Daily bump.

From-SVN: r55318

22 years agoMake-lang.in (cp/parse.o): Depend on decl.h.
Mark Mitchell [Mon, 8 Jul 2002 02:25:19 +0000 (02:25 +0000)]
Make-lang.in (cp/parse.o): Depend on decl.h.

* Make-lang.in (cp/parse.o): Depend on decl.h.
* cp-tree.h (do_decl_instantiation): Change prototype.
* parse.y: Include decl.h.
(parse_decl_instantiation): New function.
(explicit_instantiation): Use it.
* pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
and DECLSPECS.

From-SVN: r55309

22 years agoc-common.c (c_common_post_options): Update prototype; don't init backends if preproce...
Neil Booth [Sun, 7 Jul 2002 22:10:18 +0000 (22:10 +0000)]
c-common.c (c_common_post_options): Update prototype; don't init backends if preprocessing only.

* c-common.c (c_common_post_options): Update prototype;
don't init backends if preprocessing only.
* langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
* langhooks.h (struct lang_hooks): Update post_options to
return a boolean.
* toplev.c (parse_options_and_default_flags, do_compile,
lang_independent_init): Update prototypes.  Allow the
front end to specify that there is no need to initialize
the back end.
(general_init): Move call to hex_init here...
(toplev_main): ...from here.  Pass flag for back end init
suppression.
java:
* lang.c (java_post_options): Update prototype.

From-SVN: r55306

22 years agosh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
J"orn Rennecke [Sun, 7 Jul 2002 19:56:31 +0000 (19:56 +0000)]
sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.

* sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
(PREDICATE_CODES): Add entries for equality_comparison_operator,
greater_comparison_operator and less_comparison_operator.
* sh.c (print_operand): Add '\'' code.  Make 'o' handle
more operators.
(equality_comparison_operator): New function.
(greater_comparison_operator, less_comparison_operator): Likewise.
* sh.md (beq_media_i): Disable generator function generation.
Use match_operator to handle a whole class of comparisons.  Add
modifier in output template to provide branch prediction.  Add type.
(bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
(bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
(blt_media_i, bleu_media_i, bltu_media_i): Likewise.
(bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.

From-SVN: r55305

22 years agoerror.c (dump_function_name): Use DECL_TEMPLATE_RESULT for constructor and destructor...
Roger Sayle [Sun, 7 Jul 2002 18:56:18 +0000 (18:56 +0000)]
error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for constructor and destructor tests when...

* error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
constructor and destructor tests when passed a TEMPLATE_DECL.

* g++.dg/template/qualttp21.C: New test case.

From-SVN: r55304

22 years agoEmit MMIX function prologue and epilogue as rtl.
Hans-Peter Nilsson [Sun, 7 Jul 2002 17:13:14 +0000 (17:13 +0000)]
Emit MMIX function prologue and epilogue as rtl.

* config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
not unprototyped get_hard_reg_initial_val.
("call_value", "nonlocal_goto_receiver"): Ditto.
("return"): Make define_expand.  Move real insn to...
("*expanded_return"): New pattern.
("prologue", "epilogue"): New define_expands.
* config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
(struct machine_function): New member in_prologue.
(FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
(MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
(MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
(REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
(LOCAL_REGNO): Define.  Adjust comment.
* config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
Consider regs_ever_live[MMIX_rJ_REGNUM], not just
leaf_function_p.
(MMIX_OUTPUT_REGNO): Don't translate registers while outputting
the prologue.
(mmix_target_asm_function_prologue): Make static.  Just mark that
the prologue is being emitted.  Move guts to...
(mmix_expand_prologue): New function.  Adjust for emitting
prologue as rtl.  For sizes, use HOST_WIDE_INT only.
(mmix_target_asm_function_epilogue): Make static.  Simply emit a
\n.  Move guts to...
(mmix_expand_epilogue): New function.  Adjust for emitting
epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
(mmix_target_asm_function_end_prologue): Mark that the prologue
has ended.
(TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
(mmix_conditional_register_usage): Improve comments.
(mmix_local_regno): New function.
(mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
* config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
(mmix_expand_prologue, mmix_expand_epilogue): Ditto.
(mmix_get_hard_reg_initial_val): Ditto.

From-SVN: r55302

22 years agore PR libstdc++/7186 (DR179 for std::deque::iterator and const_iterator)
Paolo Carlini [Sun, 7 Jul 2002 10:15:06 +0000 (12:15 +0200)]
re PR libstdc++/7186 (DR179 for std::deque::iterator and const_iterator)

2002-07-07  Paolo Carlini  <pcarlini@unitus.it>

PR libstdc++/7186
* include/bits/stl_deque.h (_Deque_iterator::operator-):
Make non-member, as already happens for the comparison
operators in accord with DR179 (Ready).
* testsuite/23_containers/deque_operators.cc: Add test02.

From-SVN: r55301

22 years agoDaily bump.
GCC Administrator [Sun, 7 Jul 2002 07:18:36 +0000 (07:18 +0000)]
Daily bump.

From-SVN: r55300

22 years ago20020706-1.c: New test.
Alexandre Oliva [Sat, 6 Jul 2002 17:19:51 +0000 (17:19 +0000)]
20020706-1.c: New test.

* gcc.c-torture/compile/20020706-1.c: New test.
* gcc.c-torture/compile/20020706-2.c: New test.

From-SVN: r55290

22 years ago* g++.dg/warn/incomplete1.C: New test.
Brian R. Gaeke [Sat, 6 Jul 2002 16:58:39 +0000 (16:58 +0000)]
* g++.dg/warn/incomplete1.C: New test.

From-SVN: r55289

22 years ago* linkage1.C, linkage1-main.cc: New test.
Alexandre Oliva [Sat, 6 Jul 2002 16:16:44 +0000 (16:16 +0000)]
* linkage1.C, linkage1-main.cc: New test.

From-SVN: r55288

22 years agoChangeLog entry for my last patch:
Andreas Jaeger [Sat, 6 Jul 2002 13:41:12 +0000 (15:41 +0200)]
ChangeLog entry for my last patch:

* toplev.c (set_fast_math_flags): Don't use ISO C style function
definitions.
* gengtype.c (open_base_files): Likewise.
(close_output_files): Likewise.
* tracer.c (find_best_predecessor): Likewise.
(find_best_successor): Likewise.
(ignore_bb_p): Likewise.

From-SVN: r55287

22 years agotoplev.c (set_fast_math_flags): Don't use ISO C style function definitions.
Andreas Jaeger [Sat, 6 Jul 2002 13:39:46 +0000 (15:39 +0200)]
toplev.c (set_fast_math_flags): Don't use ISO C style function definitions.

* toplev.c (set_fast_math_flags): Don't use ISO C style function
definitions.
* gengtype.c (open_base_files): Likewise.
(close_output_files): Likewise.
* tracer.c (find_best_predecessor): Likewise.
(find_best_successor): Likewise.
(ignore_bb_p): Likewise.

From-SVN: r55286

22 years agoDaily bump.
GCC Administrator [Sat, 6 Jul 2002 07:17:48 +0000 (07:17 +0000)]
Daily bump.

From-SVN: r55285

22 years agonatRuntime.cc (nativeGetLibname): Added missing `#'.
Tony Kimball [Sat, 6 Jul 2002 05:11:53 +0000 (05:11 +0000)]
natRuntime.cc (nativeGetLibname): Added missing `#'.

2002-07-05  Tony Kimball  <alk@pobox.com>

* java/lang/natRuntime.cc (nativeGetLibname): Added missing `#'.

From-SVN: r55280

22 years agore PR c++/7099 (G++ doesn't set the noreturn attribute on std::exit and std::abort)
Kaveh R. Ghazi [Sat, 6 Jul 2002 00:25:30 +0000 (00:25 +0000)]
re PR c++/7099 (G++ doesn't set the noreturn attribute on std::exit and std::abort)

2002-07-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

        PR c++/7099
        * g++.dg/warn/noreturn1.C: New test.

From-SVN: r55277

22 years agore PR c++/7099 (G++ doesn't set the noreturn attribute on std::exit and std::abort)
Roger Sayle [Sat, 6 Jul 2002 00:16:44 +0000 (00:16 +0000)]
re PR c++/7099 (G++ doesn't set the noreturn attribute on std::exit and std::abort)

PR c++/7099
* builtin-attrs.def: Define new attribute lists for use in
builtins.def.
* builtins.def [DEF_BUILTIN]: Modify to take an additional
ATTRS argument, an enumerated value defined in builtin-attrs.def
that represents the attribute list for the builtins.  Modify
all builtin functions to pass an appropriate attribute list.
Specify "abort", "exit", "_exit" and "_Exit" builtins here with
their required noreturn attributes.
* tree.h (enum_builtin_function): Ignore the additional parameter
to DEF_BUILTIN.
* builtins.c (built_in_names): Likewise.
* c-common.c: (builtin_function_2): Replace the "int noreturn_p"
argument with a tree representing the functions attribute list.
Pass this "attrs" argument to builtin_function.  No longer handle
the noreturn_p processing manually.
(built_in_attributes): Move the definitions from builtin-attrs.def
before c_common_nodes_and_builtins.
(c_common_nodes_and_builtins): Handle the new ATTRS parameter in
DEF_BUILTIN, passing it to both builtin_function and the changed
builtin_function_2.

* doc/extend.texi: Document __builtin_abort, __builtin_exit,
__builtin__exit and __builtin__Exit.

* java/builtins.c (initialize_builtins): Ignore the additional
parameter to DEF_BUILTIN.  Handle more C/C++ specific junk in
the builtins.def file.

From-SVN: r55276

22 years agom68hc11.md ("*movqi_68hc12"): Avoid allocating QI mode registers in soft registers.
Stephane Carrez [Fri, 5 Jul 2002 22:16:38 +0000 (00:16 +0200)]
m68hc11.md ("*movqi_68hc12"): Avoid allocating QI mode registers in soft registers.

* config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
QI mode registers in soft registers.
("zero_extendqihi2"): Do not take into account soft registers
for register allocation (use '*' constraint).

From-SVN: r55274

22 years agocvt.c (cp_convert_to_pointer): Call force_fit_type for null pointers.
Jason Merrill [Fri, 5 Jul 2002 22:10:25 +0000 (18:10 -0400)]
cvt.c (cp_convert_to_pointer): Call force_fit_type for null pointers.

        * cvt.c (cp_convert_to_pointer): Call force_fit_type for null
        pointers.

From-SVN: r55272

22 years agom68hc11.md ("*ashlsi3"): Avoid saving y if we know it is dead.
Stephane Carrez [Fri, 5 Jul 2002 21:59:17 +0000 (23:59 +0200)]
m68hc11.md ("*ashlsi3"): Avoid saving y if we know it is dead.

* config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
it is dead.
("*ashrsi3"): Likewise.
("*lshrsi3"): Likewise.

From-SVN: r55270

22 years agogenautomata.c (output_max_insn_queue_index_def): Take latencies into account.
Vladimir Makarov [Fri, 5 Jul 2002 21:40:16 +0000 (21:40 +0000)]
genautomata.c (output_max_insn_queue_index_def): Take latencies into account.

2002-07-05  Vladimir Makarov  <vmakarov@redhat.com>

* genautomata.c (output_max_insn_queue_index_def): Take latencies
into account.

From-SVN: r55269

22 years agom68hc11.md (peephole2): New peephole2 to optimize address computation and memory...
Stephane Carrez [Fri, 5 Jul 2002 21:31:31 +0000 (23:31 +0200)]
m68hc11.md (peephole2): New peephole2 to optimize address computation and memory moves.

* config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
address computation and memory moves.

From-SVN: r55267

22 years agore PR libgcj/7060 (getMethod() doesn't search super interface)
Tom Tromey [Fri, 5 Jul 2002 20:40:11 +0000 (20:40 +0000)]
re PR libgcj/7060 (getMethod() doesn't search super interface)

2002-07-04  Tom Tromey  <tromey@redhat.com>
            Jeff Sturm  <jsturm@one-point.com>

Fix for PR libgcj/7060:
* java/lang/Class.h (_getMethod): Renamed from getMethod.
* java/lang/natClass.cc (_getMethod): Renamed from getMethod.
Recurse into superinterfaces.  Don't throw NoSuchMethodException.
* java/lang/Class.java (getMethod): New Java implementation;
complies with spec.
(_getMethod): New native method.

Co-Authored-By: Jeff Sturm <jsturm@one-point.com>
From-SVN: r55266

22 years agore PR c++/6706 (ICE with variable-sized arrays and DWARF-1 output)
Mark Mitchell [Fri, 5 Jul 2002 16:40:01 +0000 (16:40 +0000)]
re PR c++/6706 (ICE with variable-sized arrays and DWARF-1 output)

PR c++/6706
* dwarfout.c (output_reg_number): Fix warning message.
(output_bound_representation): Check SAVE_EXPR_RTL is not NULL
before using it.

PR c++/6706
* g++.dg/debug/debug6.C: New test.
* g++.dg/debug/debug7.C: New test.

From-SVN: r55264

22 years agore PR rtl-optimization/7145 (g++ -O with structure initializer & return value optimiz...
Jason Merrill [Fri, 5 Jul 2002 15:16:56 +0000 (11:16 -0400)]
re PR rtl-optimization/7145 (g++ -O with structure initializer & return value optimization generates bad code)

        PR optimization/7145
        * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.

[[Split portion of a mixed commit.]]

From-SVN: r55262.2

22 years agore PR rtl-optimization/7145 (g++ -O with structure initializer & return value optimiz...
Jason Merrill [Fri, 5 Jul 2002 15:01:04 +0000 (11:01 -0400)]
re PR rtl-optimization/7145 (g++ -O with structure initializer & return value optimization generates bad code)

        PR optimization/7145
        * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.

From-SVN: r55261

22 years agocopyright date updated
Nathan Sidwell [Fri, 5 Jul 2002 12:34:58 +0000 (12:34 +0000)]
copyright date updated

From-SVN: r55260

22 years agogcc.c (asm_debug): Move initialization ...
Rainer Orth [Fri, 5 Jul 2002 12:33:52 +0000 (12:33 +0000)]
gcc.c (asm_debug): Move initialization ...

* gcc/gcc.c (asm_debug): Move initialization ...
(init_spec): ... here.

From-SVN: r55259

22 years agoc-parse.in (extdef): Append ';'.
Nathan Sidwell [Fri, 5 Jul 2002 12:31:59 +0000 (12:31 +0000)]
c-parse.in (extdef): Append ';'.

* c-parse.in (extdef): Append ';'.
(old_style_parm_decls): Append ';'.

From-SVN: r55258

22 years agoRepair damage on weak-impared targets caused by my previous patch.
Nathan Sidwell [Fri, 5 Jul 2002 10:40:47 +0000 (10:40 +0000)]
Repair damage on weak-impared targets caused by my previous patch.

* cp-tree.h (import_export_tinfo): Add parameter.
* decl2.c (import_export_tinfo): Add parameter, post adjust
DECL_COMDAT.
* rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
import_export_tinfo.

From-SVN: r55257

22 years agoDaily bump.
GCC Administrator [Fri, 5 Jul 2002 07:17:18 +0000 (07:17 +0000)]
Daily bump.

From-SVN: r55256

22 years ago* ltcf-cxx.sh (hpux*): Modify to support ia64-*-hpux*.
Steve Ellcey [Thu, 4 Jul 2002 22:52:03 +0000 (22:52 +0000)]
* ltcf-cxx.sh (hpux*): Modify to support ia64-*-hpux*.

From-SVN: r55250

22 years agoconfigure.in: Correct typos...
Daniel Jacobowitz [Thu, 4 Jul 2002 22:43:29 +0000 (22:43 +0000)]
configure.in: Correct typos...

* configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
to gcc_cv_as_gstabs_flag.
* configure: Rebuilt.

From-SVN: r55249

22 years ago* ggc.h (ggc_add_root): Document as obsolete.
Geoffrey Keating [Thu, 4 Jul 2002 21:24:25 +0000 (21:24 +0000)]
* ggc.h (ggc_add_root): Document as obsolete.

From-SVN: r55247

22 years agostd_streambuf.h (basic_streambuf::_M_buf): Change to size_t, from int_type.
Benjamin Kosnik [Thu, 4 Jul 2002 09:20:01 +0000 (09:20 +0000)]
std_streambuf.h (basic_streambuf::_M_buf): Change to size_t, from int_type.

2002-07-04  Benjamin Kosnik  <bkoz@redhat.com>
            Jack Reeves  <jackw_reeves@hotmail.com>

* include/std/std_streambuf.h (basic_streambuf::_M_buf): Change to
size_t, from int_type.
  (basic_streambuf::_M_buf_size_opt): Same.
  (basic_streambuf::_S_pback_sizex): Same.
* include/bits/streambuf.tcc: Same.
* include/std/std_streambuf.h (basic_streambuf::snextc): Use
eq_int_type.
(basic_streambuf::uflow): Same.
* include/bits/sstream.tcc (basic_stringbuf::overflow): Use
to_char_type.
* include/bits/basic_ios.tcc (basic_ios::init): Use _CharT().
* include/bits/streambuf.tcc (basic_streambuf::xsgetn): Use
eq_int_type.
(basic_streambuf::xsputn): Same.
(__copy_streambufs): Same.

Co-Authored-By: Jack Reeves <jackw_reeves@hotmail.com>
From-SVN: r55242

22 years agostd_memory.h: Fix formatting.
Benjamin Kosnik [Thu, 4 Jul 2002 07:25:19 +0000 (07:25 +0000)]
std_memory.h: Fix formatting.

2002-07-03  Benjamin Kosnik  <bkoz@redhat.com>

* include/std/std_memory.h: Fix formatting.
* testsuite/20_util/auto_ptr_neg.cc: New.
* testsuite/20_util/auto_ptr.cc: Tweaks.
* testsuite/23_containers/map_operators.cc (test01): Split into..
* testsuite/23_containers/map_operators_neg.cc (test01): ...this. New.
* testsuite/23_containers/set_operators.cc: Move to...
* testsuite/23_containers/set_operators_neg.cc: ...here.
* testsuite/README: Add some more naming rules.

From-SVN: r55241

22 years agoDaily bump.
GCC Administrator [Thu, 4 Jul 2002 07:17:50 +0000 (07:17 +0000)]
Daily bump.

From-SVN: r55240

22 years agosh.md (mshfhi_b, [...]): Add DONE.
J"orn Rennecke [Thu, 4 Jul 2002 07:02:48 +0000 (07:02 +0000)]
sh.md (mshfhi_b, [...]): Add DONE.

* sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
(mshflo_w): Likewise.

From-SVN: r55235

22 years agosimplify-rtx.c (simplify_subreg): Reduce problem of finding vector mode subregs of...
J"orn Rennecke [Thu, 4 Jul 2002 06:38:56 +0000 (06:38 +0000)]
simplify-rtx.c (simplify_subreg): Reduce problem of finding vector mode subregs of constants to finding integer...

gcc:
* simplify-rtx.c (simplify_subreg): Reduce problem of finding
vector mode subregs of constants to finding integer mode
subregs of constants.
* cse.c (cse_insn): Use simplify_gen_subreg.
* convert.c (convert_to_integer): Don't strip a NOP_EXPR
From a vector mode expression of different size than the
target mode.
gcc/testsuite:
* gcc.c-torture/compile/simd-3.c: New test.

From-SVN: r55234

22 years agolinux.h: Add #undef for SUBTARGET_CPP_SPEC.
Eric Christopher [Thu, 4 Jul 2002 05:03:02 +0000 (05:03 +0000)]
linux.h: Add #undef for SUBTARGET_CPP_SPEC.

2002-07-03  Eric Christopher  <echristo@redhat.com>

* config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
* config/mips/mips.h: Remove deprecated -m<processor> options
and cc1_cpu_spec associated.
(CONSTANT_ADDRESS_P): Fix last patch.
(ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
* config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
sunge_sf): Remove.

From-SVN: r55233

22 years agore PR libstdc++/7057 (Operator== on hashtables doesn't appear to work correctly ...
Steev Wilcox [Thu, 4 Jul 2002 00:28:03 +0000 (00:28 +0000)]
re PR libstdc++/7057 (Operator== on hashtables doesn't appear to work correctly (patch included))

2002-07-03  Steev Wilcox  <steev@paradigmds.com>

PR libstdc++/7057
* include/ext/stl_hashtable.h: Fix.
* testsuite/ext/hash_map.cc: New.

From-SVN: r55229

22 years agomangle6.C: Run for mipsisa64*-*-* targets.
Chris Demetriou [Wed, 3 Jul 2002 23:09:11 +0000 (23:09 +0000)]
mangle6.C: Run for mipsisa64*-*-* targets.

2002-07-03  Chris Demetriou  <cgd@broadcom.com>

        * g++.dg/abi/mangle6.C: Run for mipsisa64*-*-* targets.
        * gcc.dg/20020620-1.c: Likewise.

From-SVN: r55228

22 years ago* configure.in: Make --without-x work.
Nathanael Nerode [Wed, 3 Jul 2002 22:50:35 +0000 (22:50 +0000)]
* configure.in: Make --without-x work.

From-SVN: r55226

22 years agore PR libstdc++/3946 (auto_ptr_ref constructor allows dangerous conversion)
Jack Reeves [Wed, 3 Jul 2002 22:25:06 +0000 (22:25 +0000)]
re PR libstdc++/3946 (auto_ptr_ref constructor allows dangerous conversion)

2002-07-03  Jack Reeves  <jackw_reeves@hotmail.com>
            Kenny Simpson  <theonetruekenny@yahoo.com>
            Phil Edwards  <pme@gcc.gnu.org>

PR libstdc++/3946
* testsuite/20_util/auto_ptr.cc (test08):  New test.
* include/std/std_memory.h (auto_ref_ptr):  Make constructor explicit.
(auto_ptr::operator auto_ptr_ref):  Fix typo.
General reformatting and doxygenating of the whole file.

Co-Authored-By: Kenny Simpson <theonetruekenny@yahoo.com>
Co-Authored-By: Phil Edwards <pme@gcc.gnu.org>
From-SVN: r55223

22 years agodarwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
Stan Shebs [Wed, 3 Jul 2002 21:50:12 +0000 (21:50 +0000)]
darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.

        * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
        (STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
        (CPP_SPEC): Remove insertion of APPLE_CC definition.

From-SVN: r55222

22 years agocombine.c (struct_undo): Change types of recorded substitutions to be either "int...
Roger Sayle [Wed, 3 Jul 2002 21:00:23 +0000 (21:00 +0000)]
combine.c (struct_undo): Change types of recorded substitutions to be either "int" or "rtx"...

* combine.c (struct_undo): Change types of recorded substitutions
to be either "int" or "rtx", instead of "unsigned int" and "rtx".
(do_SUBST_INT): Change types of the substitution from unsigned int
to int, to avoid compilation warning from SUBST_INT's only caller.

(make_extraction): Add cast to avoid compilation warning.
(force_to_mode): Remove cast to avoid compilation warning.

From-SVN: r55221

22 years agore PR libstdc++/7097 (_GLIBCPP_HAVE_MBSTATE_T breaks non-GLIB systems)
Benjamin Kosnik [Wed, 3 Jul 2002 17:14:21 +0000 (17:14 +0000)]
re PR libstdc++/7097 (_GLIBCPP_HAVE_MBSTATE_T breaks non-GLIB systems)

2002-07-03  Benjamin Kosnik  <bkoz@redhat.com>

PR libstdc++/7097
* include/c/std_cwchar.h: Fix.

From-SVN: r55216

22 years agoi386.md (length_immediate attribute): Fix typo.
Eric Botcazou [Wed, 3 Jul 2002 17:02:39 +0000 (17:02 +0000)]
i386.md (length_immediate attribute): Fix typo.

        * i386.md (length_immediate attribute): Fix typo.
        (length_address attribute): Likewise.
        (modrm attribute): Set it to 0 for immediate call instructions.
        (jcc_1 pattern): Set modrm attribute to 0.
        (jcc_2 pattern ): Likewise.
        (jump pattern): Likewise.
        (doloop_end_internal pattern): Explicitly set length.
        (leave pattern): Fix typo.
        (leave_rex64 pattern): Likewise.

Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r55215

22 years agore PR c++/6944 (missing feature on default copy-constructor for class with multi...
Kriang Lerdsuwanakij [Wed, 3 Jul 2002 15:46:21 +0000 (15:46 +0000)]
re PR c++/6944 (missing feature on default copy-constructor for class with multi-dim arrays)

PR c++/6944
* init.c (build_aggr_init): Remove qualifiers of init before calling
build_vec_init.
(build_vec_init): Flatten multi-dimensional array during cleanup.
(build_vec_delete_1): Abort if the type of each element is array.

* g++.dg/init/array4.C: New test.
* g++.dg/init/array5.C: New test.

From-SVN: r55214

22 years agors6000.md (fix_truncdfsi2_internal): Ignore DImode in FPR as preference.
David Edelsohn [Wed, 3 Jul 2002 14:41:22 +0000 (10:41 -0400)]
rs6000.md (fix_truncdfsi2_internal): Ignore DImode in FPR as preference.

        * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
        in FPR as preference.
        (fctiwz): Same.
        (floatdidf2, fix_truncdfdi2): Same.
        (floatdisf2, floatditf2, fix_trunctfdi2): Same.
        (floatditf2): Same.
        (floatsitf2, fix_trunctfsi2): SImode in GPR.
        (ctrdi): Remove FPR alternative and splitter.

From-SVN: r55212

22 years agoi386.c (x86_integer_DFmode_moves): Disable for PPro.
Will Cohen [Wed, 3 Jul 2002 14:15:44 +0000 (14:15 +0000)]
i386.c (x86_integer_DFmode_moves): Disable for PPro.

2002-07-02  Will Cohen <wcohen@redhat.com>

* config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.

From-SVN: r55211

22 years ago* pt.c (instantiate_class_template): Fix typo.
Graham Stott [Wed, 3 Jul 2002 12:13:31 +0000 (12:13 +0000)]
* pt.c (instantiate_class_template): Fix typo.

From-SVN: r55210

22 years agooptabs.c (expand_vector_binop): Don't store using a SUBREG smaller than UNITS_PER_WORD...
J"orn Rennecke [Wed, 3 Jul 2002 09:49:46 +0000 (09:49 +0000)]
optabs.c (expand_vector_binop): Don't store using a SUBREG smaller than UNITS_PER_WORD...

gcc:
* optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
than UNITS_PER_WORD, unless this is little endian and the first unit
in this word.  Let extract_bit_field decide how to load an element.
Force arguments to matching mode.
(expand_vector_unop): Likewise.

* simplify-rtx.c (simplify_subreg): Don't assume that all vectors
consist of word_mode elements.
* c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
(build_unary_op): Allow vector types for BIT_NOT_EPR.
* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
CONST_VECTOR.
* optabs.c (expand_vector_binop): Try to perform operation in
smaller vector modes with same inner size.  Add handling of AND, IOR
and XOR.  Reject expansion to inner-mode sized scalars when using
OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
(expand_vector_unop): Try to perform operation in smaller vector
modes with same inner size.  Add handling of one's complement.
When there is no vector negate operation, try a vector subtract
operation.  Use simplify_gen_subreg on constants.
* simplify-rtx.c (simplify_subreg): Add capability to convert vector
constants into smaller vectors with same inner mode, and to
integer CONST_DOUBLEs.

gcc/testsuite:
* gcc.c-torture/execute/simd-1.c (main): Also test &, |, ^, ~.
* gcc.c-torture/execute/simd-2.c (main): Likewise.

From-SVN: r55209

22 years agoDaily bump.
GCC Administrator [Wed, 3 Jul 2002 07:17:24 +0000 (07:17 +0000)]
Daily bump.

From-SVN: r55208

22 years agore PR libstdc++/6410 (Trouble with non-Ascii monetary symbols and wchar_t)
Benjamin Kosnik [Wed, 3 Jul 2002 06:29:26 +0000 (06:29 +0000)]
re PR libstdc++/6410 (Trouble with non-Ascii monetary symbols and wchar_t)

2002-07-02  Benjamin Kosnik  <bkoz@redhat.com>

PR libstdc++/6410
* include/bits/locale_facets.h (moneypunct::moneypunct): Add const
char* name parameter.
* config/locale/gnu/monetary_members.cc: Use it.
* config/locale/generic/monetary_members.cc: Same.
* src/localename.cc (_Impl::_Impl(const char*, size_t)): Use it.

* include/backward/strstream.h: Update date.

From-SVN: r55203

22 years ago* configure.in: Rearrange target Makefile fragment collection.
Nathanael Nerode [Wed, 3 Jul 2002 02:49:38 +0000 (02:49 +0000)]
* configure.in: Rearrange target Makefile fragment collection.

From-SVN: r55202

22 years agoc-parse.in (parsing_iso_function_signature): New variable.
Kaveh R. Ghazi [Wed, 3 Jul 2002 02:41:34 +0000 (02:41 +0000)]
c-parse.in (parsing_iso_function_signature): New variable.

gcc:
* c-parse.in (parsing_iso_function_signature): New variable.
(extdef_1): New, copied from...
(extdef): ... here.  Reset parsing_iso_function_signature.
(old_style_parm_decls):  Reset parsing_iso_function_signature.
(old_style_parm_decls_1): New, copied from old_style_parm_decls.
Warn about ISO C style function definitions.
(nested_function, notype_nested_function): Reset
parsing_iso_function_signature.
(parmlist_2): Set parsing_iso_function_signature.

* doc/invoke.texi (-Wtraditional): Document new behavior.

gcc/testsuite:
* gcc.dg/cpp/tr-warn2.c: Use traditional C style function definitions.
* gcc.dg/wtr-aggr-init-1.c: Likewise.
* gcc.dg/wtr-conversion-1.c: Likewise.
* gcc.dg/wtr-escape-1.c: Likewise.
* gcc.dg/wtr-int-type-1.c: Likewise.
* gcc.dg/wtr-label-1.c: Likewise.
* gcc.dg/wtr-static-1.c: Likewise.
* gcc.dg/wtr-strcat-1.c: Likewise.
* gcc.dg/wtr-suffix-1.c: Likewise.
* gcc.dg/wtr-switch-1.c: Likewise.
* gcc.dg/wtr-unary-plus-1.c: Likewise.
* gcc.dg/wtr-union-init-1.c: Likewise.
* gcc.dg/wtr-union-init-2.c: Likewise.
* gcc.dg/wtr-union-init-3.c: Likewise.

* gcc.dg/wtr-func-def-1.c: New test.

From-SVN: r55201

22 years agoconfig.gcc (mips*el-*-*): Use tm_defines to set TARGET_ENDIAN_DEFAULT, rather than...
Chris Demetriou [Tue, 2 Jul 2002 23:26:45 +0000 (23:26 +0000)]
config.gcc (mips*el-*-*): Use tm_defines to set TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.

2002-07-02  Chris Demetriou  <cgd@broadcom.com>

        * config.gcc (mips*el-*-*): Use tm_defines to set
        TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
        * config/mips/little.h: Remove.

From-SVN: r55200

22 years agofurther fix formatting of previous ChangeLog entry
Chris Demetriou [Tue, 2 Jul 2002 23:15:08 +0000 (16:15 -0700)]
further fix formatting of previous ChangeLog entry

From-SVN: r55199

22 years agofix formatting of previous ChangeLog entry
Chris Demetriou [Tue, 2 Jul 2002 23:12:03 +0000 (16:12 -0700)]
fix formatting of previous ChangeLog entry

From-SVN: r55198

22 years agoobjc-act.c (adjust_type_for_id_default): Do not allow an object as parameter.
Devang Patel [Tue, 2 Jul 2002 23:06:04 +0000 (16:06 -0700)]
objc-act.c (adjust_type_for_id_default): Do not allow an object as parameter.

      * objc/objc-act.c (adjust_type_for_id_default): Do not allow an
        object as parameter. Prevent something like 'NSObject' to be
        used as the type for a method argument.

      testsuite:
      * objc.dg/param-1.m: New test.

From-SVN: r55197

22 years agocpptrad.c: Update comment.
Neil Booth [Tue, 2 Jul 2002 22:33:38 +0000 (22:33 +0000)]
cpptrad.c: Update comment.

* cpptrad.c: Update comment.
testsuite:
* gcc.dg/cpp/trad/directive.c: Add test.
* gcc.dg/cpp/trad/macroargs.c: Add test.
* gcc.dg/cpp/trad/recurse-3.c: Add tests.

From-SVN: r55196

22 years agocppinit.c (cpp_handle_option): Suppress warnings with an implicit "-w" for "-M" and...
Neil Booth [Tue, 2 Jul 2002 22:28:18 +0000 (22:28 +0000)]
cppinit.c (cpp_handle_option): Suppress warnings with an implicit "-w" for "-M" and "-MM".

* cppinit.c (cpp_handle_option):  Suppress warnings with an
implicit "-w" for "-M" and "-MM".

From-SVN: r55195

22 years agocpp.texi: Update for traditional preprocessing changes.
Neil Booth [Tue, 2 Jul 2002 22:20:33 +0000 (22:20 +0000)]
cpp.texi: Update for traditional preprocessing changes.

* doc/cpp.texi: Update for traditional preprocessing changes.
* goc/cppopts.texi: Similarly.

From-SVN: r55194

22 years ago* Forgotten to apply.
Neil Booth [Tue, 2 Jul 2002 22:03:40 +0000 (22:03 +0000)]
* Forgotten to apply.

From-SVN: r55193

22 years agoc-parse.in (designator): Enable designated initializers if ObjC.
Ziemowit Laski [Tue, 2 Jul 2002 21:59:34 +0000 (21:59 +0000)]
c-parse.in (designator): Enable designated initializers if ObjC.

2002-07-02  Ziemowit Laski  <zlaski@apple.com>

* c-parse.in (designator): Enable designated initializers if ObjC.
(objcmessageexpr): Remove references to objc_receiver_context.
* objc/objc-act.h (objc_receiver_context): Remove decl.
* objc/objc-act.c (objc_receiver_context): Remove.
(lookup_objc_ivar): Test objc_method_context instead of
objc_receiver_context.

2002-07-02  Ziemowit Laski  <zlaski@apple.com>

* objc.dg/desig-init-1.m: New test.

From-SVN: r55192

22 years ago2002-07-02 Tom Tromey <tromey@redhat.com>
Tom Tromey [Tue, 2 Jul 2002 19:43:06 +0000 (19:43 +0000)]
2002-07-02  Tom Tromey  <tromey@redhat.com>
            David Hovemeyer  <daveho@cs.umd.edu>

* java/text/ChoiceFormat.java
(format(double,StringBuffer,FieldPosition)): Fix fencepost error
in check loop.
* java/text/MessageFormat.java
(format(Object[],StringBuffer,FieldPosition): Pass all arguments
to MessageFormat.

Co-Authored-By: David Hovemeyer <daveho@cs.umd.edu>
From-SVN: r55191

22 years agoencoding.h: Fix formatting.
Rodney Brown [Tue, 2 Jul 2002 19:43:03 +0000 (19:43 +0000)]
encoding.h: Fix formatting.

2002-07-02  Rodney Brown  <rbrown64@csc.com.au>

* objc/encoding.h: Fix formatting.
* objc/hash.h: Likewise.
* objc/objc-api.h: Likewise.
* objc/runtime.h: Likewise.
* objc/thr.h: Likewise.
* archive.c: Likewise.
* class.c: Likewise.
* encoding.c: Likewise.
* gc.c: Likewise.
* hash.c: Likewise.
* init.c: Likewise.
* misc.c: Likewise.
* nil_method.c: Likewise.
* objects.c: Likewise.
* sarray.c: Likewise.
* selector.c: Likewise.
* sendmsg.c: Likewise.
* thr-mach.c: Likewise.
* thr.c: Likewise.

From-SVN: r55190

22 years agosh.c (print_operand, case 'N'): Allow zero vector.
J"orn Rennecke [Tue, 2 Jul 2002 18:45:49 +0000 (18:45 +0000)]
sh.c (print_operand, case 'N'): Allow zero vector.

Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>

* sh.c (print_operand, case 'N'): Allow zero vector.
(arith_reg_or_0_operand): Likewise.
(zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
* sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
IOR, XOR, PLUS and SET and take their respective constant
ranges into account.
(PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
* sh.md (subdi3, subdi3_media): Allow zero operand.
(movv8qi_i+3): Only vector that is not split is the zero vector.
Fix operand 3 to simplify_subreg.
(movv2si_i): Split alternative 1.
(mshfhi_l_di_rev+1): New splitter.

Index: config/sh/sh.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.c,v
retrieving revision 1.155
diff -p -r1.155 sh.c
*** config/sh/sh.c 2 Jul 2002 04:01:04 -0000 1.155
--- config/sh/sh.c 2 Jul 2002 17:45:37 -0000
*************** print_operand (stream, x, code)
*** 434,440 ****
        break;

      case 'N':
!       if (x == const0_rtx)
   {
     fprintf ((stream), "r63");
     break;
--- 434,441 ----
        break;

      case 'N':
!       if (x == const0_rtx
!    || (GET_CODE (x) == CONST_VECTOR && zero_vec_operand (x, VOIDmode)))
   {
     fprintf ((stream), "r63");
     break;
*************** arith_reg_or_0_operand (op, mode)
*** 5940,5946 ****
    if (arith_reg_operand (op, mode))
      return 1;

!   if (GET_CODE (op) == CONST_INT && CONST_OK_FOR_N (INTVAL (op)))
      return 1;

    return 0;
--- 5941,5947 ----
    if (arith_reg_operand (op, mode))
      return 1;

!   if (EXTRA_CONSTRAINT_U (op))
      return 1;

    return 0;
*************** zero_vec_operand (v, mode)
*** 6222,6228 ****
  {
    int i;

!   if (GET_CODE (v) != PARALLEL
        || (GET_MODE (v) != mode && mode != VOIDmode))
      return 0;
    for (i = XVECLEN (v, 0) - 1; i >= 0; i--)
--- 6223,6229 ----
  {
    int i;

!   if (GET_CODE (v) != CONST_VECTOR
        || (GET_MODE (v) != mode && mode != VOIDmode))
      return 0;
    for (i = XVECLEN (v, 0) - 1; i >= 0; i--)
Index: config/sh/sh.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.h,v
retrieving revision 1.154
diff -p -r1.154 sh.h
*** config/sh/sh.h 1 Jul 2002 19:41:53 -0000 1.154
--- config/sh/sh.h 2 Jul 2002 17:45:37 -0000
*************** while (0)
*** 2689,2698 ****
    case CONST_INT: \
      if (TARGET_SHMEDIA) \
        { \
   if ((OUTER_CODE) == AND && and_operand ((RTX), DImode)) \
     return 0; \
   if (CONST_OK_FOR_J (INTVAL (RTX))) \
!           return COSTS_N_INSNS (1); \
   else if (CONST_OK_FOR_J (INTVAL (RTX) >> 16)) \
     return COSTS_N_INSNS (2); \
   else if (CONST_OK_FOR_J ((INTVAL (RTX) >> 16) >> 16)) \
--- 2689,2704 ----
    case CONST_INT: \
      if (TARGET_SHMEDIA) \
        { \
+  if (INTVAL (RTX) == 0) \
+    return 0; \
   if ((OUTER_CODE) == AND && and_operand ((RTX), DImode)) \
     return 0; \
+  if (((OUTER_CODE) == IOR || (OUTER_CODE) == XOR \
+       || (OUTER_CODE) == PLUS) \
+      && CONST_OK_FOR_P (INTVAL (RTX))) \
+    return 0; \
   if (CONST_OK_FOR_J (INTVAL (RTX))) \
!           return COSTS_N_INSNS ((OUTER_CODE) != SET); \
   else if (CONST_OK_FOR_J (INTVAL (RTX) >> 16)) \
     return COSTS_N_INSNS (2); \
   else if (CONST_OK_FOR_J ((INTVAL (RTX) >> 16) >> 16)) \
*************** extern int rtx_equal_function_value_matt
*** 3225,3231 ****
    {"arith_operand", {SUBREG, REG, CONST_INT}}, \
    {"arith_reg_dest", {SUBREG, REG}}, \
    {"arith_reg_operand", {SUBREG, REG}}, \
!   {"arith_reg_or_0_operand", {SUBREG, REG, CONST_INT}}, \
    {"binary_float_operator", {PLUS, MULT}}, \
    {"commutative_float_operator", {PLUS, MULT}}, \
    {"extend_reg_operand", {SUBREG, REG, TRUNCATE}}, \
--- 3231,3237 ----
    {"arith_operand", {SUBREG, REG, CONST_INT}}, \
    {"arith_reg_dest", {SUBREG, REG}}, \
    {"arith_reg_operand", {SUBREG, REG}}, \
!   {"arith_reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_VECTOR}}, \
    {"binary_float_operator", {PLUS, MULT}}, \
    {"commutative_float_operator", {PLUS, MULT}}, \
    {"extend_reg_operand", {SUBREG, REG, TRUNCATE}}, \
Index: config/sh/sh.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.md,v
retrieving revision 1.107
diff -p -r1.107 sh.md
*** config/sh/sh.md 1 Jul 2002 19:41:54 -0000 1.107
--- config/sh/sh.md 2 Jul 2002 17:45:38 -0000
***************
*** 546,552 ****
  ;; There is no way to model this with gcc's function units.  This problem is
  ;; actually mentioned in md.texi.  Tackling this problem requires first that
  ;; it is possible to speak about the target in an open discussion.
! ;;
  ;; However, simple double-precision operations always conflict.

  (define_function_unit "fp"    1 0
--- 546,552 ----
  ;; There is no way to model this with gcc's function units.  This problem is
  ;; actually mentioned in md.texi.  Tackling this problem requires first that
  ;; it is possible to speak about the target in an open discussion.
! ;;
  ;; However, simple double-precision operations always conflict.

  (define_function_unit "fp"    1 0
***************
*** 1048,1054 ****
    "@
   addz.l %1, %2, %0
   addz.l %1, r63, %0")
!
  (define_insn "adddi3_compact"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
   (plus:DI (match_operand:DI 1 "arith_reg_operand" "%0")
--- 1048,1054 ----
    "@
   addz.l %1, %2, %0
   addz.l %1, r63, %0")
!
  (define_insn "adddi3_compact"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
   (plus:DI (match_operand:DI 1 "arith_reg_operand" "%0")
***************
*** 1122,1128 ****
    "@
   add.l %1, %2, %0
   addi.l %1, %2, %0")
!
  (define_insn "*addsi3_compact"
    [(set (match_operand:SI 0 "arith_reg_operand" "=r")
   (plus:SI (match_operand:SI 1 "arith_operand" "%0")
--- 1122,1128 ----
    "@
   add.l %1, %2, %0
   addi.l %1, %2, %0")
!
  (define_insn "*addsi3_compact"
    [(set (match_operand:SI 0 "arith_reg_operand" "=r")
   (plus:SI (match_operand:SI 1 "arith_operand" "%0")
***************
*** 1138,1162 ****

  (define_expand "subdi3"
    [(set (match_operand:DI 0 "arith_reg_operand" "")
!  (minus:DI (match_operand:DI 1 "arith_reg_operand" "")
     (match_operand:DI 2 "arith_reg_operand" "")))]
    ""
    "
  {
    if (TARGET_SH1)
      {
        emit_insn (gen_subdi3_compact (operands[0], operands[1], operands[2]));
        DONE;
      }
  }")
!
  (define_insn "*subdi3_media"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
!  (minus:DI (match_operand:DI 1 "arith_reg_operand" "r")
     (match_operand:DI 2 "arith_reg_operand" "r")))]
    "TARGET_SHMEDIA"
!   "sub %1, %2, %0")
!
  (define_insn "subdi3_compact"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
   (minus:DI (match_operand:DI 1 "arith_reg_operand" "0")
--- 1138,1163 ----

  (define_expand "subdi3"
    [(set (match_operand:DI 0 "arith_reg_operand" "")
!  (minus:DI (match_operand:DI 1 "arith_reg_or_0_operand" "")
     (match_operand:DI 2 "arith_reg_operand" "")))]
    ""
    "
  {
    if (TARGET_SH1)
      {
+       operands[1] = force_reg (DImode, operands[1]);
        emit_insn (gen_subdi3_compact (operands[0], operands[1], operands[2]));
        DONE;
      }
  }")
!
  (define_insn "*subdi3_media"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
!  (minus:DI (match_operand:DI 1 "arith_reg_or_0_operand" "rN")
     (match_operand:DI 2 "arith_reg_operand" "r")))]
    "TARGET_SHMEDIA"
!   "sub %N1, %2, %0")
!
  (define_insn "subdi3_compact"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
   (minus:DI (match_operand:DI 1 "arith_reg_operand" "0")
***************
*** 1558,1564 ****
      : \"__sdivsi3\")));

        if (TARGET_SHMEDIA)
!  last = gen_divsi3_i1_media (operands[0],
       Pmode == DImode
       ? operands[3]
       : gen_rtx_SUBREG (DImode, operands[3],
--- 1559,1565 ----
      : \"__sdivsi3\")));

        if (TARGET_SHMEDIA)
!  last = gen_divsi3_i1_media (operands[0],
       Pmode == DImode
       ? operands[3]
       : gen_rtx_SUBREG (DImode, operands[3],
***************
*** 1771,1777 ****
    (sign_extend:DI (match_operand:SI 2 "arith_reg_operand" "r"))))]
    "TARGET_SHMEDIA"
    "muls.l %1, %2, %0")
!
  (define_insn "mulsidi3_compact"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
   (mult:DI
--- 1772,1778 ----
    (sign_extend:DI (match_operand:SI 2 "arith_reg_operand" "r"))))]
    "TARGET_SHMEDIA"
    "muls.l %1, %2, %0")
!
  (define_insn "mulsidi3_compact"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
   (mult:DI
***************
*** 1841,1847 ****
    (zero_extend:DI (match_operand:SI 2 "arith_reg_operand" "r"))))]
    "TARGET_SHMEDIA"
    "mulu.l %1, %2, %0")
!
  (define_insn "umulsidi3_compact"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
   (mult:DI
--- 1842,1848 ----
    (zero_extend:DI (match_operand:SI 2 "arith_reg_operand" "r"))))]
    "TARGET_SHMEDIA"
    "mulu.l %1, %2, %0")
!
  (define_insn "umulsidi3_compact"
    [(set (match_operand:DI 0 "arith_reg_operand" "=r")
   (mult:DI
***************
*** 3440,3446 ****
     (set_attr "type" "pcload,move,load,store,move,pcload,move,move")])

  ;; If the output is a register and the input is memory or a register, we have
! ;; to be careful and see which word needs to be loaded first.

  (define_split
    [(set (match_operand:DI 0 "general_movdst_operand" "")
--- 3441,3447 ----
     (set_attr "type" "pcload,move,load,store,move,pcload,move,move")])

  ;; If the output is a register and the input is memory or a register, we have
! ;; to be careful and see which word needs to be loaded first.

  (define_split
    [(set (match_operand:DI 0 "general_movdst_operand" "")
***************
*** 4195,4201 ****
  }")

  ;; If the output is a register and the input is memory or a register, we have
! ;; to be careful and see which word needs to be loaded first.

  (define_split
    [(set (match_operand:DF 0 "general_movdst_operand" "")
--- 4196,4202 ----
  }")

  ;; If the output is a register and the input is memory or a register, we have
! ;; to be careful and see which word needs to be loaded first.

  (define_split
    [(set (match_operand:DF 0 "general_movdst_operand" "")
***************
*** 4392,4398 ****
    DONE;
  }"
    [(set_attr "length" "8")])
!
  (define_expand "movv4sf"
    [(set (match_operand:V4SF 0 "nonimmediate_operand" "=f,f,m")
   (match_operand:V4SF 1 "nonimmediate_operand" "f,m,f"))]
--- 4393,4399 ----
    DONE;
  }"
    [(set_attr "length" "8")])
!
  (define_expand "movv4sf"
    [(set (match_operand:V4SF 0 "nonimmediate_operand" "=f,f,m")
   (match_operand:V4SF 1 "nonimmediate_operand" "f,m,f"))]
***************
*** 4444,4450 ****
    DONE;
  }"
    [(set_attr "length" "32")])
!
  (define_expand "movv16sf"
    [(set (match_operand:V16SF 0 "nonimmediate_operand" "=f,f,m")
   (match_operand:V16SF 1 "nonimmediate_operand" "f,m,f"))]
--- 4445,4451 ----
    DONE;
  }"
    [(set_attr "length" "32")])
!
  (define_expand "movv16sf"
    [(set (match_operand:V16SF 0 "nonimmediate_operand" "=f,f,m")
   (match_operand:V16SF 1 "nonimmediate_operand" "f,m,f"))]
***************
*** 4499,4505 ****
    REAL_VALUE_FROM_CONST_DOUBLE (value, operands[1]);
    REAL_VALUE_TO_TARGET_SINGLE (value, values);
    operands[2] = GEN_INT (values);
!
    operands[3] = gen_rtx_REG (DImode, true_regnum (operands[0]));
  }")

--- 4500,4506 ----
    REAL_VALUE_FROM_CONST_DOUBLE (value, operands[1]);
    REAL_VALUE_TO_TARGET_SINGLE (value, values);
    operands[2] = GEN_INT (values);
!
    operands[3] = gen_rtx_REG (DImode, true_regnum (operands[0]));
  }")

***************
*** 5410,5416 ****
     if (! SYMBOL_REF_FLAG (operands[0]))
       {
         rtx reg = gen_reg_rtx (Pmode);
!
         emit_insn (gen_symGOTPLT2reg (reg, operands[0]));
         operands[0] = reg;
       }
--- 5411,5417 ----
     if (! SYMBOL_REF_FLAG (operands[0]))
       {
         rtx reg = gen_reg_rtx (Pmode);
!
         emit_insn (gen_symGOTPLT2reg (reg, operands[0]));
         operands[0] = reg;
       }
***************
*** 5634,5640 ****
     if (! SYMBOL_REF_FLAG (operands[1]))
       {
         rtx reg = gen_reg_rtx (Pmode);
!
         emit_insn (gen_symGOTPLT2reg (reg, operands[1]));
         operands[1] = reg;
       }
--- 5635,5641 ----
     if (! SYMBOL_REF_FLAG (operands[1]))
       {
         rtx reg = gen_reg_rtx (Pmode);
!
         emit_insn (gen_symGOTPLT2reg (reg, operands[1]));
         operands[1] = reg;
       }
***************
*** 5841,5847 ****
     if (! SYMBOL_REF_FLAG (operands[0]))
       {
         rtx reg = gen_reg_rtx (Pmode);
!
         /* We must not use GOTPLT for sibcalls, because PIC_REG
    must be restored before the PLT code gets to run.  */
         emit_insn (gen_symGOT2reg (reg, operands[0]));
--- 5842,5848 ----
     if (! SYMBOL_REF_FLAG (operands[0]))
       {
         rtx reg = gen_reg_rtx (Pmode);
!
         /* We must not use GOTPLT for sibcalls, because PIC_REG
    must be restored before the PLT code gets to run.  */
         emit_insn (gen_symGOT2reg (reg, operands[0]));
***************
*** 6167,6173 ****
     (use (label_ref (match_operand 1 "" "")))]
    "TARGET_SHMEDIA"
    "blink %0, r63")
!
  ;; Call subroutine returning any type.
  ;; ??? This probably doesn't work.

--- 6168,6174 ----
     (use (label_ref (match_operand 1 "" "")))]
    "TARGET_SHMEDIA"
    "blink %0, r63")
!
  ;; Call subroutine returning any type.
  ;; ??? This probably doesn't work.

***************
*** 6284,6290 ****
   tr = gen_rtx_SUBREG (GET_MODE (operands[0]), tr, 0);

        insn = emit_move_insn (operands[0], tr);
!
        REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, equiv,
       REG_NOTES (insn));

--- 6285,6291 ----
   tr = gen_rtx_SUBREG (GET_MODE (operands[0]), tr, 0);

        insn = emit_move_insn (operands[0], tr);
!
        REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, equiv,
       REG_NOTES (insn));

***************
*** 6370,6379 ****
    if (TARGET_SHMEDIA)
      {
        rtx reg = operands[2];
!
        if (GET_MODE (reg) != DImode)
   reg = gen_rtx_SUBREG (DImode, reg, 0);
!
        if (flag_pic > 1)
   emit_insn (gen_movdi_const_32bit (reg, operands[1]));
        else
--- 6371,6380 ----
    if (TARGET_SHMEDIA)
      {
        rtx reg = operands[2];
!
        if (GET_MODE (reg) != DImode)
   reg = gen_rtx_SUBREG (DImode, reg, 0);
!
        if (flag_pic > 1)
   emit_insn (gen_movdi_const_32bit (reg, operands[1]));
        else
***************
*** 6391,6397 ****
    REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, XVECEXP (XEXP (operands[1],
     0), 0, 0),
   REG_NOTES (insn));
!
    DONE;
  }")

--- 6392,6398 ----
    REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, XVECEXP (XEXP (operands[1],
     0), 0, 0),
   REG_NOTES (insn));
!
    DONE;
  }")

***************
*** 7231,7237 ****
       (match_dup 2))))
         (set (reg:SI T_REG)
      (ne:SI (ior:SI (match_dup 1) (match_dup 2))
!    (const_int 0)))])]
    ""
    "
  {
--- 7232,7238 ----
       (match_dup 2))))
         (set (reg:SI T_REG)
      (ne:SI (ior:SI (match_dup 1) (match_dup 2))
!    (const_int 0)))])]
    ""
    "
  {
***************
*** 7282,7288 ****
       (match_dup 2))))
         (set (reg:SI T_REG)
      (ne:SI (ior:SI (match_operand 1 "" "") (match_dup 2))
!    (const_int 0)))])]
    "TARGET_SH1"
    "operands[2] = gen_reg_rtx (SImode);")

--- 7283,7289 ----
       (match_dup 2))))
         (set (reg:SI T_REG)
      (ne:SI (ior:SI (match_operand 1 "" "") (match_dup 2))
!    (const_int 0)))])]
    "TARGET_SH1"
    "operands[2] = gen_reg_rtx (SImode);")

***************
*** 8279,8285 ****
  ;;   "#"
  ;;   [(set_attr "length" "4")
  ;;    (set_attr "fp_mode" "double")])
! ;;
  ;; (define_split
  ;;   [(set (match_operand:SI 0 "arith_reg_operand" "=r")
  ;;  (fix:SI (match_operand:DF 1 "arith_reg_operand" "f")))
--- 8280,8286 ----
  ;;   "#"
  ;;   [(set_attr "length" "4")
  ;;    (set_attr "fp_mode" "double")])
! ;;
  ;; (define_split
  ;;   [(set (match_operand:SI 0 "arith_reg_operand" "=r")
  ;;  (fix:SI (match_operand:DF 1 "arith_reg_operand" "f")))
***************
*** 8320,8326 ****
    "* return output_ieee_ccmpeq (insn, operands);"
    [(set_attr "length" "4")
     (set_attr "fp_mode" "double")])
!
  (define_insn "cmpeqdf_media"
    [(set (match_operand:DI 0 "register_operand" "=r")
   (eq:DI (match_operand:DF 1 "fp_arith_reg_operand" "f")
--- 8321,8327 ----
    "* return output_ieee_ccmpeq (insn, operands);"
    [(set_attr "length" "4")
     (set_attr "fp_mode" "double")])
!
  (define_insn "cmpeqdf_media"
    [(set (match_operand:DI 0 "register_operand" "=r")
   (eq:DI (match_operand:DF 1 "fp_arith_reg_operand" "f")
***************
*** 8806,8815 ****
    "TARGET_SHMEDIA && reload_completed
     && GET_MODE (operands[0]) == GET_MODE (operands[1])
     && VECTOR_MODE_SUPPORTED_P (GET_MODE (operands[0]))
!    && XVECEXP (operands[1], 0, 0) != const0_rtx
!    && (HOST_BITS_PER_WIDE_INT >= 64
!        || HOST_BITS_PER_WIDE_INT >= GET_MODE_BITSIZE (GET_MODE (operands[0]))
!        || sh_1el_vec (operands[1], VOIDmode))"
    [(set (match_dup 0) (match_dup 1))]
    "
  {
--- 8807,8813 ----
    "TARGET_SHMEDIA && reload_completed
     && GET_MODE (operands[0]) == GET_MODE (operands[1])
     && VECTOR_MODE_SUPPORTED_P (GET_MODE (operands[0]))
!    && ! zero_vec_operand (operands[1], VOIDmode)"
    [(set (match_dup 0) (match_dup 1))]
    "
  {
***************
*** 8819,8825 ****

    operands[0] = gen_rtx_REG (new_mode, true_regnum (operands[0]));
    operands[1]
!     = simplify_subreg (new_mode, operands[1], GET_MODE (operands[0]), 0);
  }")

  (define_expand "movv2hi"
--- 8817,8823 ----

    operands[0] = gen_rtx_REG (new_mode, true_regnum (operands[0]));
    operands[1]
!     = simplify_subreg (new_mode, operands[1], GET_MODE (operands[1]), 0);
  }")

  (define_expand "movv2hi"
***************
*** 8878,8884 ****
         || register_operand (operands[1], V2SImode))"
    "@
   add %1, r63, %0
!  movi %1, %0
   #
   ld%M1.q %m1, %0
   st%M0.q %m0, %1"
--- 8876,8882 ----
         || register_operand (operands[1], V2SImode))"
    "@
   add %1, r63, %0
!  #
   #
   ld%M1.q %m1, %0
   st%M0.q %m0, %1"
***************
*** 9641,9647 ****
  /* These are useful to expand ANDs and as combiner patterns.  */
  (define_insn "mshfhi_l_di"
    [(set (match_operand:DI 0 "arith_reg_dest" "=r")
!  (ior:DI (lshiftrt:DI (match_operand:DI 1 "arith_reg_or_0_operand" "rU")
                               (const_int 32))
   (and:DI (match_operand:DI 2 "arith_reg_or_0_operand" "rU")
   (const_int -4294967296))))]
--- 9639,9645 ----
  /* These are useful to expand ANDs and as combiner patterns.  */
  (define_insn "mshfhi_l_di"
    [(set (match_operand:DI 0 "arith_reg_dest" "=r")
!  (ior:DI (lshiftrt:DI (match_operand:DI 1 "arith_reg_or_0_operand" "rU")
                               (const_int 32))
   (and:DI (match_operand:DI 2 "arith_reg_or_0_operand" "rU")
   (const_int -4294967296))))]
***************
*** 9653,9663 ****
    [(set (match_operand:DI 0 "arith_reg_dest" "=r")
   (ior:DI (and:DI (match_operand:DI 1 "arith_reg_or_0_operand" "rU")
   (const_int -4294967296))
!  (lshiftrt:DI (match_operand:DI 2 "arith_reg_or_0_operand" "rU")
                               (const_int 32))))]
    "TARGET_SHMEDIA"
    "mshfhi.l %N2, %N1, %0"
    [(set_attr "type" "arith_media")])

  (define_insn "mshflo_l_di"
    [(set (match_operand:DI 0 "arith_reg_dest" "=r")
--- 9651,9680 ----
    [(set (match_operand:DI 0 "arith_reg_dest" "=r")
   (ior:DI (and:DI (match_operand:DI 1 "arith_reg_or_0_operand" "rU")
   (const_int -4294967296))
!  (lshiftrt:DI (match_operand:DI 2 "arith_reg_or_0_operand" "rU")
                               (const_int 32))))]
    "TARGET_SHMEDIA"
    "mshfhi.l %N2, %N1, %0"
    [(set_attr "type" "arith_media")])
+
+ (define_split
+   [(set (match_operand:DI 0 "arith_reg_dest" "")
+  (ior:DI (zero_extend:DI (match_operand:SI 1
+        "extend_reg_or_0_operand" ""))
+  (and:DI (match_operand:DI 2 "arith_reg_or_0_operand" "")
+  (const_int -4294967296))))
+    (clobber (match_operand:DI 3 "arith_reg_dest" ""))]
+   "TARGET_SHMEDIA"
+   [(const_int 0)]
+   "
+ {
+   emit_insn (gen_ashldi3_media (operands[3],
+  simplify_gen_subreg (DImode, operands[1],
+       SImode, 0),
+  GEN_INT (32)));
+   emit_insn (gen_mshfhi_l_di (operands[0], operands[3], operands[2]));
+   DONE;
+ }")

  (define_insn "mshflo_l_di"
    [(set (match_operand:DI 0 "arith_reg_dest" "=r")

From-SVN: r55189