Commit Graph

44501 Commits

Author SHA1 Message Date
GCC Administrator
3e75a2f99d Daily bump.
From-SVN: r55813
2002-07-28 07:17:06 +00:00
Roger Sayle
c2ef6d3492 builtins.def [...]: Require an explicit ATTRS argument.
* builtins.def [DEF_GCC_BUILTIN]: Require an explicit ATTRS
	argument.  Mark BUILT_IN_RETURN, BUILT_IN_EH_RETURN,
	BUILT_IN_LONGJMP and BUILT_IN_TRAP as noreturn, the ISO C99
	floating point unordered comparisons (e.g. __builtin_isgreater)
	as const, and leave the remaining GCC_BUILTINs unchanged.

	* c-decl.c (builtin_function): No need to explicitly mark
	BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.

	* cp/decl.c (builtin_function_1): No need to explicitly mark
	BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.

From-SVN: r55805
2002-07-28 05:34:04 +00:00
Roger Sayle
52bfebf091 Makefile.in: rtlanal.o now depends upon real.h.
* Makefile.in: rtlanal.o now depends upon real.h.

	* flags.h [flag_signaling_nans]: New flag.
	[HONOR_SNANS]: New macro.

	* toplev.c [flag_signaling_nans]: Initialize to false.
        (f_options): Add processing for "-fsignaling-nans".
	(set_fast_math_flags): Clear flag_signaling_nans with -ffast-math.
	(process_options): flag_signaling_nans implies flag_trapping_math.

	* c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__
	when -fsignaling-nans.  First step to implementing WG14's N965.

	* fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming
	1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS.
	[RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS.

	* simplify-rtx.c (simplify_relational_operation): Conditionalize
	transforming abs(x) < 0.0 into false on !HONOR_SNANS.

	* rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
	required by HONOR_SNANS.  (may_trap_p): Floating point DIV, MOD,
	UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
	-fsignaling_nans.  EQ and NE only trap for flag_signaling_nans
	not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).

	* doc/invoke.texi: Document new -fsignaling-nans compiler option.

From-SVN: r55804
2002-07-28 02:11:05 +00:00
Kaveh R. Ghazi
e66f55b878 Makefile.in (gengtype-lex.c): Work around a bug in flex.
* Makefile.in (gengtype-lex.c): Work around a bug in flex.
	* gengtype-lex.l (YY_USE_PROTOS): Undef.
	(YY_DECL): Define.

From-SVN: r55803
2002-07-27 23:35:11 +00:00
Roger Sayle
a3926fe192 decl2.c (cxx_decode_option): Support -fno-builtin-foo.
* cp/decl2.c (cxx_decode_option): Support -fno-builtin-foo.

	* doc/invoke.texi: Document that both -fno-builtin-foo and
	-fno-builtin are supported by the g++ front-end.

From-SVN: r55802
2002-07-27 21:15:39 +00:00
Stan Shebs
ef69da62f4 configure.in: Rename config_gtfiles to target_gtfiles.
* configure.in: Rename config_gtfiles to target_gtfiles.
        * configure: Regenerate.
        * doc/gty.texi: Update reference.
        * config.gcc (powerpc-*-darwin*): Set target_gtfiles
        instead of appending to it.

From-SVN: r55801
2002-07-27 20:54:52 +00:00
GCC Administrator
3368e9773b Daily bump.
From-SVN: r55796
2002-07-27 07:16:57 +00:00
Aldy Hernandez
a4b0320c2d rs6000.c (function_arg_advance): SPE vararg vectors are split into two registers.
2002-07-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (function_arg_advance): SPE vararg
	vectors are split into two registers.
	(function_arg): Same.

From-SVN: r55791
2002-07-27 04:12:48 +00:00
J"orn Rennecke
c427db5dab * pa.md (extv): Check predicates before emitting extv_32.
From-SVN: r55790
2002-07-27 02:31:07 +00:00
Tom Tromey
92847c03ab Authenticator.java: New version from Classpath.
* java/net/Authenticator.java: New version from Classpath.
	* java/net/DatagramSocketImpl.java: New version from Classpath.

From-SVN: r55789
2002-07-27 00:53:42 +00:00
Alan Modra
1d49f58aff * configure.host: Add powerpc64*-* entry.
From-SVN: r55788
2002-07-27 09:24:28 +09:30
Alan Modra
57ac7be93e rs6000.c (rs6000_traceback_name): New var.
* config/rs6000/rs6000.c (rs6000_traceback_name): New var.
	(rs6000_traceback): New var.
	(rs6000_override_options): Set rs6000_traceback.
	(rs6000_output_function_epilogue): Implement traceback options.
	* config/rs6000/rs6000.h (TARGET_OPTIONS): Add "traceback=".
	(rs6000_traceback_name): Declare.

	* config/rs6000/rs6000.c (output_profile_hook): Don't generate profile
	label reference when NO_PROFILE_COUNTERS.

From-SVN: r55787
2002-07-27 09:16:47 +09:30
Phil Edwards
bacb811db6 new (placement delete): Remove unused paramater names.
2002-07-26  Phil Edwards  <pme@gcc.gnu.org>

	* libsupc++/new (placement delete):  Remove unused paramater names.

From-SVN: r55782
2002-07-26 20:12:00 +00:00
Jason Merrill
8e51619a4c function.c (assign_parms): Handle frontend-directed pass by invisible reference.
* function.c (assign_parms): Handle frontend-directed pass by
        invisible reference.
cp/
        * call.c (build_over_call): Likewise.
        (cp_convert_parm_for_inlining): New fn.
        (convert_for_arg_passing): New fn.
        (convert_default_arg, build_over_call): Use it.
        (type_passed_as): New fn.
        * pt.c (tsubst_decl): Use it.
        * decl2.c (cp_build_parm_decl): New fn.
        (build_artificial_parm): Use it.
        (start_static_storage_duration_function): Likewise.
        * decl.c (start_cleanup_fn, grokdeclarater): Likewise.
        (grokparms): Don't mess with DECL_ARG_TYPE.
        * typeck.c (convert_arguments): Use convert_for_arg_passing.
        * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
        Define.
        * cp-tree.h: Declare new fns.

From-SVN: r55781
2002-07-26 16:10:43 -04:00
Tom Tromey
8a7f132d3d natFileDescriptorPosix.cc: Don't include sys/socket.h or fcntl.h.
* java/io/natFileDescriptorPosix.cc: Don't include sys/socket.h or
	fcntl.h.

From-SVN: r55780
2002-07-26 18:33:44 +00:00
Neil Booth
b41f25cf92 cppopts.texi: Update.
* doc/cppopts.texi: Update.
testsuite:
	* gcc.dg/cpp/trad/Wunused.c, gcc.dg/cpp/Wunused.c: Add test
	for documented behaviour.

From-SVN: r55779
2002-07-26 16:34:09 +00:00
Neil Booth
c2734e0563 cppmacro.c (_cpp_create_definition): Don't attempt redefinition warnings on assertions.
* cppmacro.c (_cpp_create_definition): Don't attempt redefinition
	warnings on assertions.

From-SVN: r55778
2002-07-26 16:29:31 +00:00
Neil Booth
c372b0fa93 c-common.h (RID_AND, [...]): Remove.
* c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ,
	RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR,
	RID_COMPL): Remove.
	* c-parse.in (rid_to_yy): Similarly.
cp:
	* cp-tree.h (flag_operator_names): Remove.
	* decl2.c (flag_operator_names): Remove.
	(lang_f_options): Remove operator-names.
	* lex.c (D_OPNAME): Remove.
	(reswords): Remove operator names.
	(rid_to_yy): Remove operator names.
	(init_reswords): No need to handle D_OPNAME.
	* spew.c (read_process_identifier): There are no operator
	names.

From-SVN: r55777
2002-07-26 16:23:07 +00:00
Jason Merrill
558ee214f3 c-dump.c: Resurrect.
* c-dump.c: Resurrect.
        * tree-dump.c: Move C-specific stuff to c-dump.c.
        * c-common.h: Declare c_dump_tree.
        * c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define.
        * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
        (c-dump.o): New rule.
cp/
        * dump.c (cp_dump_tree): Call c_dump_tree.
        * Make-lang.in (CXX_C_OBJS): Add c-dump.o.

From-SVN: r55776
2002-07-26 09:45:38 -04:00
GCC Administrator
d0a5af59f4 Daily bump.
From-SVN: r55775
2002-07-26 07:16:59 +00:00
Alan Modra
ce71f7547b rs6000.md: Enable patterns using rlwinm for PowerPC64.
* config/rs6000/rs6000.md: Enable patterns using rlwinm for
	PowerPC64.  Replace "T" and "S" constraints with "n" when the
	predicate will do.  Formatting fixes.
	(extzvsi_internal2): Use "andi.", "andis." and attr type of "compare"
	as for extzvsi_internal1.

From-SVN: r55770
2002-07-26 12:17:35 +09:30
Roger Sayle
7702af3606 20020720-1.x: Skip this test on several targets known to fail.
* gcc.c-torture/execute/20020720-1.x: Skip this test on
	several targets known to fail.

From-SVN: r55769
2002-07-26 02:38:42 +00:00
Benjamin Kosnik
bcc6a03a0a re PR libstdc++/7216 (basic_iostream::traits_type is ambiguous issue)
2002-07-25  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7216
	* include/std/std_istream.h (basic_iostream): Add typedefs for
	char_type, int_type, pos_type, off_type, and traits_type.
	* testsuite/27_io/iostream.cc (test01): Add typedef tests.
	* testsuite/27_io/istream.cc: Same.
	* testsuite/27_io/ostream.cc: Same.
	* testsuite/27_io/filebuf.cc: Same.
	* testsuite/27_io/stringbuf.cc: Replace content, move to...
	* testsuite/27_io/stringbuf_members.cc: ...here.
	* testsuite/27_io/streambuf.cc: Replace content, move to...
	* testsuite/27_io/streambuf_members.cc: ...here.
	* testsuite/27_io/stringstream.cc: Replace content, move to...
	* testsuite/27_io/stringstream_members.cc: ...here.
	* testsuite/27_io/ios.cc: New file.
	* testsuite/27_io/fstream.cc: New file.
	* testsuite/27_io/ifstream.cc: New file.
	* testsuite/27_io/ofstream.cc: New file.
	* testsuite/27_io/istringstream.cc: New file.
	* testsuite/27_io/ostringstream.cc: New file.

From-SVN: r55767
2002-07-26 01:49:36 +00:00
Benjamin Kosnik
325fceb395 re PR libstdc++/7220 (g++ 3.1: basic_istream::ignore(0,delimiter) issue.)
2002-07-25  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7220
	* include/bits/istream.tcc (istream::ignore): Don't extract on
	zero.
	* testsuite/27_io/istream_unformatted.cc (test10): Add.

From-SVN: r55763
2002-07-25 23:20:49 +00:00
Neil Booth
e179e7d78e dwarfout.c (VERSION_ASM_OP, [...]): Remove.
* dwarfout.c (VERSION_ASM_OP, DERIV_BEGIN_LABEL_FMT,
	DERIV_END_LABEL_FMT): Remove.
	(SL_BEGIN_LABEL_FMT, SL_END_LABEL_FMT): Move.

From-SVN: r55762
2002-07-25 21:21:37 +00:00
Neil Booth
a205618309 objc-act.c (UTAG_STATICS, [...]): Remove.
* objc/objc-act.c (UTAG_STATICS, UTAG_PROTOCOL_LIST, USERTYPE):
	Remove.

From-SVN: r55761
2002-07-25 21:18:24 +00:00
Neil Booth
81a1552d66 error.c (print_whitespace): Remove.
cp:
	* error.c (print_whitespace): Remove.
	* g++spec.c (LIBUNWIND): Move.
	* mangle.c (mangled_position, write_signed_number): Remove.

From-SVN: r55760
2002-07-25 21:13:36 +00:00
Neil Booth
cad2c6b662 * Missed.
From-SVN: r55759
2002-07-25 21:10:59 +00:00
Stan Shebs
308c142a78 rs6000.c (rs6000_emit_prologue): Remove unused local var dwarfp.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Remove unused
        local var dwarfp.
        (output_compiler_stub): Remove unused locals.
        (output_call): Always initialize line number.

From-SVN: r55758
2002-07-25 21:00:10 +00:00
J"orn Rennecke
5932468563 sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia.
* sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia.
	* sh.md (truncdiqi2, movqi_media): Likewise.

From-SVN: r55757
2002-07-25 20:38:54 +01:00
Toon Moene
9b331d8d72 news.texi: Document better handling of (no-)alias information of dummy arguments and...
2002-07-25  Toon Moene  <toon@moene.indiv.nluug.nl>

	* news.texi: Document better handling of (no-)alias
	information of dummy arguments and induction variables
	on loop unrolling.

From-SVN: r55756
2002-07-25 19:00:06 +00:00
Neil Booth
77bbd421e0 collect2.c (SYMBOL__MAIN): Remove.
* collect2.c (SYMBOL__MAIN): Remove.
	* gcse.c (obstack_chunk_alloc): Remove.
	(gcse_alloc): Fix to count allocated bytes.

From-SVN: r55755
2002-07-25 18:57:31 +00:00
Neil Booth
7bad45b05c gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if HAVE_TARGET_EXECUTABLE_SUFFIX.
* gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if
	HAVE_TARGET_EXECUTABLE_SUFFIX.

From-SVN: r55754
2002-07-25 18:48:42 +00:00
J"orn Rennecke
184166b569 rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN, SIZE, EXPR and OFFSET.
* rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN,
	SIZE, EXPR and OFFSET.

From-SVN: r55753
2002-07-25 19:00:38 +01:00
Richard Henderson
40cb04f19b emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos in ARRAY_REF of DECL_P case.
* emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos
        in ARRAY_REF of DECL_P case.

From-SVN: r55752
2002-07-25 10:33:43 -07:00
Gerald Pfeifer
1899ba3ed2 gennews (files): Add proper files for the GCC 3.1 release series.
* gennews (files): Add proper files for the GCC 3.1 release series.
	Simplify and reformat introductory wording.

From-SVN: r55750
2002-07-25 14:34:56 +00:00
Richard Sandiford
a27fb29b80 invoke.texi: Document -mabi=meabi, and expand on the EABI description.
* doc/invoke.texi: Document -mabi=meabi, and expand on the EABI
	description.  Document -mips32, -mips64, and the associated -march
	values.  Describe the "mipsN" arguments to -march.  Say that the
	-mipsN options are equivalent to -march.  Reword the description
	of default type sizes.
	* toplev.h (target_flags_explicit): Declare.
	* toplev.c (target_flags_explicit): New var.
	(set_target_switch): Update target_flags_explicit.
	* config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine.
	* config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine.
	* config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3.
	* config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine.
	* config/mips/mips.h (mips_cpu_info): New struct.
	(mips_cpu_string, mips_explicit_type_size_string): Remove.
	(mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare.
	(MIPS_CPP_SET_PROCESSOR): New macro.
	(TARGET_CPP_BUILTINS): Declare a macro for each supported processor.
	Define _MIPS_ARCH and _MIPS_TUNE.
	(MIPS_ISA_DEFAULT): Don't provide a default value.  Instead...
	(MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor
	MIPS_ISA_DEFAULT were already defined.
	(MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT.
	(TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size.
	(ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New.
	(GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules.
	(ABI_GAS_ASM_SPEC): Remove.
	(MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros.
	(ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64.
	Invoke %(asm_abi_default_spec) if no ABI was specified.
	(CC1_SPEC): Remove ISA -> register-size rules.
	(EXTRA_SPECS): Remove abi_gas_asm_spec.  Add asm_abi_default_spec.
	* config/mips/mips.c (mips_arch_info, mips_tune_info): New vars.
	(mips_cpu_string, mips_explicit_type_size_string): Remove.
	(mips_cpu_info_table): New array.
	(mips_set_architecture, mips_set_tune): New fns.
	(override_options): Rework to make -mipsN equivalent to -march.
	Detect more erroneous cases, including those removed from CC1_SPEC.
	Don't change the ABI based on architecture, or vice versa.
	Unify logic with GAS.
	(mips_asm_file_start): Get architecture name from mips_arch_info.
	(mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns.
	(mips_parse_cpu): Take the name of the option as argument.  Handle
	'from-abi'.  Raise an error if the option is wrong.
	(mips_cpu_info_from_isa): New fn.

[gcc/testsuite]
	* gcc.dg/mips-args-[123].c: New tests.

From-SVN: r55747
2002-07-25 10:16:00 +00:00
Richard Sandiford
6bbdc7595c mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF.
* config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF.
	(tablejump_mips162): Likewise.

From-SVN: r55746
2002-07-25 09:58:19 +00:00
J"orn Rennecke
80a6248498 simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to int_mode_for_mode.
* simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to
	int_mode_for_mode.

From-SVN: r55745
2002-07-25 10:25:14 +01:00
Gabriel Dos Reis
ea79391291 c-common.c (c_sizeof_or_alignof_type): Take a third argument for complaining.
* c-common.c (c_sizeof_or_alignof_type): Take a third argument for
	complaining.
	* c-common.h (c_sizeof): Adjust definition.
	(c_alignof): Likewise.
	* c-tree.h (c_sizeof_nowarn): Now macro.
	* c-typeck.c (c_sizeof_nowarn): Remove definition.
cp/
	* cp-tree.h (cxx_sizeof_nowarn): Now a macro.
	(cxx_sizeof_or_alignof_type): Take a third argument.
	(cxx_sizeof): Adjust definition.
	(cxx_alignof): Likewise.
	* init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
	* typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
	complaining.
	(c_sizeof_nowarn): Remove definition.
	(build_unary_op): Use cxx_sizeof_nowarn.

From-SVN: r55744
2002-07-25 08:58:07 +00:00
Benjamin Kosnik
ef6838b11c ios_base_type.cc: Move to...
2002-07-25  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/ios_base_type.cc: Move to...
	* testsuite/27_io/ios_base_types.cc: ...here.

From-SVN: r55743
2002-07-25 07:19:40 +00:00
GCC Administrator
18965224c6 Daily bump.
From-SVN: r55742
2002-07-25 07:16:57 +00:00
Neil Booth
2d6154445d c-decl.c (c_decode_option): No need to handle switches cpplib handles.
* c-decl.c (c_decode_option): No need to handle switches
	cpplib handles.
cp:
	* decl2.c (cxx_decode_option): Similarly.

From-SVN: r55737
2002-07-25 06:56:11 +00:00
Benjamin Kosnik
c82efc81c0 re PR libstdc++/7222 (g++ 3.1: locale::operator ==() doesn`t work on std::locale("") locales)
2002-07-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7222
	* src/locale.cc (locale::locale(const char*)): Use setlocale NULL.
	* testsuite/22_locale/ctor_copy_dtor.cc (test02): New.

From-SVN: r55736
2002-07-25 06:42:00 +00:00
Zack Weinberg
2be2ac706e defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, [...]): New default definitions of new macros.
* defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE,
	ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros.
	* doc/tm.texi: Document them.  Also document SIZE_ASM_OP,
	TYPE_ASM_OP, and TYPE_OPERAND_FMT.

	* config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
	config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h,
	config/cris/aout.h, config/i386/freebsd-aout.h,
	config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h,
	config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h,
	config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h,
	config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h,
	config/pa/pa64-hpux.h, config/rs6000/sysv4.h,
	config/xtensa/elf.h, config/xtensa/linux.h:
	Use the new macros.
	Where possible, remove redundant definitions of SIZE_ASM_OP,
	TYPE_ASM_OP, and TYPE_OPERAND_FMT.

From-SVN: r55735
2002-07-25 05:14:23 +00:00
Aldy Hernandez
518878e18a eabi.h: Define TARGET_SPE_ABI, TARGET_SPE, TARGET_ISEL, and TARGET_FPRS.
2002-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
	TARGET_ISEL, and TARGET_FPRS.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mabi=spe, -mabi=no-spe, and -misel=.

	* config/rs6000/rs6000-protos.h: Add output_isel.
	Move vrsave_operation prototype here.

	* config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL.
	(smaxsi3): Same.
	(uminsi3): Same.
	(umaxsi3): Same.
	(abssi2_nopower): Disallow when TARGET_ISEL.
	(*ne0): Same.
	(negsf2): Change to expand and rename old pattern to *negsf2.
	(abssf2): Change to expand and rename old pattern to *abssf2.

	New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
	fixunssfsi2.

	Change patterns that check for TARGET_HARD_FLOAT or
	TARGET_SOFT_FLOAT to also check TARGET_FPRS.

	* config/rs6000/rs6000.c: New globals: rs6000_spe_abi,
	rs6000_isel, rs6000_fprs, rs6000_isel_string.
	(rs6000_override_options): Add 8540 case to
	processor_target_table.
	Set rs6000_isel for the 8540.
	Call rs6000_parse_isel_option.
	(enable_mask_for_builtins): New.
	(rs6000_parse_isel_option): New.
	(rs6000_parse_abi_options): Add spe and no-spe.
	(easy_fp_constant): Treat !TARGET_FPRS as soft-float.
	(rs6000_legitimize_address): Check for TARGET_FPRS when checking
	for TARGET_HARD_FLOAT.
	Add case for SPE_VECTOR_MODE.
	(rs6000_legitimize_reload_address): Handle SPE vector modes.
	(rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE
	vector modes.
	Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT.
	(rs6000_emit_move): Check for TARGET_FPRS.
	Add cases for SPE vector modes.
	(function_arg_boundary): Return 64 for SPE vector modes.
	(function_arg_advance): Check for TARGET_FPRS and
	Handle SPE vectors.
	(function_arg): Same.
	(setup_incoming_varargs): Check for TARGET_FPRS.
	(rs6000_va_arg): Same.
	(struct builtin_description): Un-constify mask field.  Move up in
	file.
	(bdesc_2arg): Un-constify and add SPE builtins.
	(bdesc_1arg): Same.
	(bdesc_spe_predicates): New.
	(bdesc_spe_evsel): New.
	(rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins.
	(rs6000_expand_binop_builtin): Same.
	(bdesc_2arg_spe): New.
	(spe_expand_builtin): New.
	(spe_expand_predicate_builtin): New.
	(spe_expand_evsel_builtin): New.
	(rs6000_expand_builtin): Call spe_expand_builtin for SPE.
	(rs6000_init_builtins): Initialize SPE builtins.  Call
	rs6000_common_init_builtins.
	(altivec_init_builtins): Move all non-altivec builtin code to...
	(rs6000_common_init_builtins): ...here.  New function.
	(branch_positive_comparison_operator): Allow NE code for SPE.
	(ccr_bit): Return correct ccr bit for SPE fp.
	(print_operand): Emit crnor in 'D' case for SPE.
	New case 't'.
	Add SPE code for 'y' case.
	(rs6000_generate_compare): Generate rtl for SPE fp.
	(output_cbranch): Handle SPE hard floats.
	(rs6000_emit_cmove): Handle isel.
	(rs6000_emit_int_cmove): New.
	(output_isel): New.
	(rs6000_stack_info): Adjust stack frame so GPRs are saved in
	64-bits for SPE.
	(debug_stack_info): Add SPE info.
	(gen_frame_mem_offset): New.
	(rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi.
	Change mode of frame pointer, when saving it, to Pmode.
	(rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi.
	Misc cleanups and use gen_frame_mem_offset when appropriate.

	* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540.
	(TARGET_SPE_ABI): New.
	(TARGET_SPE): New.
	(TARGET_ISEL): New.
	(TARGET_FPRS): New.
	(FIXED_SCRATCH): New.
	(RTX_COSTS): Add PROCESSOR_PPC8540.
	(ASM_CPU_SPEC): Add case for 8540.
	(TARGET_OPTIONS): Add isel= case.
	(rs6000_spe_abi): New.
	(rs6000_isel): New.
	(rs6000_fprs): New.
	(rs6000_isel_string): New.
	(UNITS_PER_SPE_WORD): New.
	(LOCAL_ALIGNMENT): Adjust for SPE.
	(HARD_REGNO_MODE_OK): Same.
	(DATA_ALIGNMENT): Same.
	(MEMBER_TYPE_FORCES_BLK): New.
	(FIRST_PSEUDO_REGISTER): Set to 113.
	(FIXED_REGISTERS): Add SPE registers.
	(reg_class): Same.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(REGNO_REG_CLASS): Same.
	(REGISTER_NAMES): Same.
	(DEBUG_REGISTER_NAMES): Same.
	(ADDITIONAL_REGISTER_NAMES): Same.
	(CALL_USED_REGISTERS): Same.
	(CALL_REALLY_USED_REGISTERS): Same.
	(SPE_ACC_REGNO): New.
	(SPEFSCR_REGNO): New.
	(SPE_SIMD_REGNO_P): New.
	(HARD_REGNO_NREGS): Adjust for SPE.
	(VECTOR_MODE_SUPPORTED_P): Same.
	(REGNO_REG_CLASS): Same.
	(FUNCTION_VALUE): Same.
	(LIBCALL_VALUE): Same.
	(LEGITIMATE_OFFSET_ADDRESS_P): Same.
	(SPE_VECTOR_MODE): New.
	(CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on
	the GPRs.  Set FIXED_SCRATCH fixed in SPE case.
	(rs6000_stack): Add spe_gp_size, spe_padding_size,
	spe_gp_save_offset.
	(USE_FP_FOR_ARG_P): Check for TARGET_FPRS.
	(LEGITIMATE_LO_SUM_ADDRESS_P): Same.
	(SPE_CONST_OFFSET_OK): New.
	(rs6000_builtins): Add SPE builtins.

	* testsuite/gcc.dg/ppc-spe.c: New.

	* config/rs6000/eabispe.h: New.

	* config/rs6000/spe.h: New.

	* config/rs600/spe.md: New.

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__SIMD__ for TARGET_SPE.

	* config.gcc: Add powerpc-*-eabispe* case.
	Add spe.h to user headers for powerpc.

From-SVN: r55734
2002-07-25 02:51:31 +00:00
Aldy Hernandez
0b72793f19 * testsuite/gcc.dg/ppc-spe.c: New.
From-SVN: r55733
2002-07-25 02:31:04 +00:00
Aldy Hernandez
6c8875e595 eabi.h: Define TARGET_SPE_ABI, TARGET_SPE, TARGET_ISEL, and TARGET_FPRS.
2002-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
	TARGET_ISEL, and TARGET_FPRS.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mabi=spe, -mabi=no-spe, and -misel=.

	* config/rs6000/rs6000-protos.h: Add output_isel.
	Move vrsave_operation prototype here.

	* config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL.
	(smaxsi3): Same.
	(uminsi3): Same.
	(umaxsi3): Same.
	(abssi2_nopower): Disallow when TARGET_ISEL.
	(*ne0): Same.
	(negsf2): Change to expand and rename old pattern to *negsf2.
	(abssf2): Change to expand and rename old pattern to *abssf2.

	New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
	fixunssfsi2.

	Change patterns that check for TARGET_HARD_FLOAT or
	TARGET_SOFT_FLOAT to also check TARGET_FPRS.

	* config/rs6000/rs6000.c: New globals: rs6000_spe_abi,
	rs6000_isel, rs6000_fprs, rs6000_isel_string.
	(rs6000_override_options): Add 8540 case to
	processor_target_table.
	Set rs6000_isel for the 8540.
	Call rs6000_parse_isel_option.
	(enable_mask_for_builtins): New.
	(rs6000_parse_isel_option): New.
	(rs6000_parse_abi_options): Add spe and no-spe.
	(easy_fp_constant): Treat !TARGET_FPRS as soft-float.
	(rs6000_legitimize_address): Check for TARGET_FPRS when checking
	for TARGET_HARD_FLOAT.
	Add case for SPE_VECTOR_MODE.
	(rs6000_legitimize_reload_address): Handle SPE vector modes.
	(rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE
	vector modes.
	Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT.
	(rs6000_emit_move): Check for TARGET_FPRS.
	Add cases for SPE vector modes.
	(function_arg_boundary): Return 64 for SPE vector modes.
	(function_arg_advance): Check for TARGET_FPRS and
	Handle SPE vectors.
	(function_arg): Same.
	(setup_incoming_varargs): Check for TARGET_FPRS.
	(rs6000_va_arg): Same.
	(struct builtin_description): Un-constify mask field.  Move up in
	file.
	(bdesc_2arg): Un-constify and add SPE builtins.
	(bdesc_1arg): Same.
	(bdesc_spe_predicates): New.
	(bdesc_spe_evsel): New.
	(rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins.
	(rs6000_expand_binop_builtin): Same.
	(bdesc_2arg_spe): New.
	(spe_expand_builtin): New.
	(spe_expand_predicate_builtin): New.
	(spe_expand_evsel_builtin): New.
	(rs6000_expand_builtin): Call spe_expand_builtin for SPE.
	(rs6000_init_builtins): Initialize SPE builtins.  Call
	rs6000_common_init_builtins.
	(altivec_init_builtins): Move all non-altivec builtin code to...
	(rs6000_common_init_builtins): ...here.  New function.
	(branch_positive_comparison_operator): Allow NE code for SPE.
	(ccr_bit): Return correct ccr bit for SPE fp.
	(print_operand): Emit crnor in 'D' case for SPE.
	New case 't'.
	Add SPE code for 'y' case.
	(rs6000_generate_compare): Generate rtl for SPE fp.
	(output_cbranch): Handle SPE hard floats.
	(rs6000_emit_cmove): Handle isel.
	(rs6000_emit_int_cmove): New.
	(output_isel): New.
	(rs6000_stack_info): Adjust stack frame so GPRs are saved in
	64-bits for SPE.
	(debug_stack_info): Add SPE info.
	(gen_frame_mem_offset): New.
	(rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi.
	Change mode of frame pointer, when saving it, to Pmode.
	(rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi.
	Misc cleanups and use gen_frame_mem_offset when appropriate.

	* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540.
	(TARGET_SPE_ABI): New.
	(TARGET_SPE): New.
	(TARGET_ISEL): New.
	(TARGET_FPRS): New.
	(FIXED_SCRATCH): New.
	(RTX_COSTS): Add PROCESSOR_PPC8540.
	(ASM_CPU_SPEC): Add case for 8540.
	(TARGET_OPTIONS): Add isel= case.
	(rs6000_spe_abi): New.
	(rs6000_isel): New.
	(rs6000_fprs): New.
	(rs6000_isel_string): New.
	(UNITS_PER_SPE_WORD): New.
	(LOCAL_ALIGNMENT): Adjust for SPE.
	(HARD_REGNO_MODE_OK): Same.
	(DATA_ALIGNMENT): Same.
	(MEMBER_TYPE_FORCES_BLK): New.
	(FIRST_PSEUDO_REGISTER): Set to 113.
	(FIXED_REGISTERS): Add SPE registers.
	(reg_class): Same.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(REGNO_REG_CLASS): Same.
	(REGISTER_NAMES): Same.
	(DEBUG_REGISTER_NAMES): Same.
	(ADDITIONAL_REGISTER_NAMES): Same.
	(CALL_USED_REGISTERS): Same.
	(CALL_REALLY_USED_REGISTERS): Same.
	(SPE_ACC_REGNO): New.
	(SPEFSCR_REGNO): New.
	(SPE_SIMD_REGNO_P): New.
	(HARD_REGNO_NREGS): Adjust for SPE.
	(VECTOR_MODE_SUPPORTED_P): Same.
	(REGNO_REG_CLASS): Same.
	(FUNCTION_VALUE): Same.
	(LIBCALL_VALUE): Same.
	(LEGITIMATE_OFFSET_ADDRESS_P): Same.
	(SPE_VECTOR_MODE): New.
	(CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on
	the GPRs.  Set FIXED_SCRATCH fixed in SPE case.
	(rs6000_stack): Add spe_gp_size, spe_padding_size,
	spe_gp_save_offset.
	(USE_FP_FOR_ARG_P): Check for TARGET_FPRS.
	(LEGITIMATE_LO_SUM_ADDRESS_P): Same.
	(SPE_CONST_OFFSET_OK): New.
	(rs6000_builtins): Add SPE builtins.

	* testsuite/gcc.dg/ppc-spe.c: New.

	* config/rs6000/eabispe.h: New.

	* config/rs6000/spe.h: New.

	* config/rs600/spe.md: New.

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__SIMD__ for TARGET_SPE.

	* config.gcc: Add powerpc-*-eabispe* case.
	Add spe.h to user headers for powerpc.

From-SVN: r55732
2002-07-25 02:27:55 +00:00
Aldy Hernandez
a3170dc629 eabi.h: Define TARGET_SPE_ABI, TARGET_SPE, TARGET_ISEL, and TARGET_FPRS.
2002-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
	TARGET_ISEL, and TARGET_FPRS.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mabi=spe, -mabi=no-spe, and -misel=.

	* config/rs6000/rs6000-protos.h: Add output_isel.
	Move vrsave_operation prototype here.

	* config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL.
	(smaxsi3): Same.
	(uminsi3): Same.
	(umaxsi3): Same.
	(abssi2_nopower): Disallow when TARGET_ISEL.
	(*ne0): Same.
	(negsf2): Change to expand and rename old pattern to *negsf2.
	(abssf2): Change to expand and rename old pattern to *abssf2.

	New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
	fixunssfsi2.

	Change patterns that check for TARGET_HARD_FLOAT or
	TARGET_SOFT_FLOAT to also check TARGET_FPRS.

	* config/rs6000/rs6000.c: New globals: rs6000_spe_abi,
	rs6000_isel, rs6000_fprs, rs6000_isel_string.
	(rs6000_override_options): Add 8540 case to
	processor_target_table.
	Set rs6000_isel for the 8540.
	Call rs6000_parse_isel_option.
	(enable_mask_for_builtins): New.
	(rs6000_parse_isel_option): New.
	(rs6000_parse_abi_options): Add spe and no-spe.
	(easy_fp_constant): Treat !TARGET_FPRS as soft-float.
	(rs6000_legitimize_address): Check for TARGET_FPRS when checking
	for TARGET_HARD_FLOAT.
	Add case for SPE_VECTOR_MODE.
	(rs6000_legitimize_reload_address): Handle SPE vector modes.
	(rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE
	vector modes.
	Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT.
	(rs6000_emit_move): Check for TARGET_FPRS.
	Add cases for SPE vector modes.
	(function_arg_boundary): Return 64 for SPE vector modes.
	(function_arg_advance): Check for TARGET_FPRS and
	Handle SPE vectors.
	(function_arg): Same.
	(setup_incoming_varargs): Check for TARGET_FPRS.
	(rs6000_va_arg): Same.
	(struct builtin_description): Un-constify mask field.  Move up in
	file.
	(bdesc_2arg): Un-constify and add SPE builtins.
	(bdesc_1arg): Same.
	(bdesc_spe_predicates): New.
	(bdesc_spe_evsel): New.
	(rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins.
	(rs6000_expand_binop_builtin): Same.
	(bdesc_2arg_spe): New.
	(spe_expand_builtin): New.
	(spe_expand_predicate_builtin): New.
	(spe_expand_evsel_builtin): New.
	(rs6000_expand_builtin): Call spe_expand_builtin for SPE.
	(rs6000_init_builtins): Initialize SPE builtins.  Call
	rs6000_common_init_builtins.
	(altivec_init_builtins): Move all non-altivec builtin code to...
	(rs6000_common_init_builtins): ...here.  New function.
	(branch_positive_comparison_operator): Allow NE code for SPE.
	(ccr_bit): Return correct ccr bit for SPE fp.
	(print_operand): Emit crnor in 'D' case for SPE.
	New case 't'.
	Add SPE code for 'y' case.
	(rs6000_generate_compare): Generate rtl for SPE fp.
	(output_cbranch): Handle SPE hard floats.
	(rs6000_emit_cmove): Handle isel.
	(rs6000_emit_int_cmove): New.
	(output_isel): New.
	(rs6000_stack_info): Adjust stack frame so GPRs are saved in
	64-bits for SPE.
	(debug_stack_info): Add SPE info.
	(gen_frame_mem_offset): New.
	(rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi.
	Change mode of frame pointer, when saving it, to Pmode.
	(rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi.
	Misc cleanups and use gen_frame_mem_offset when appropriate.

	* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540.
	(TARGET_SPE_ABI): New.
	(TARGET_SPE): New.
	(TARGET_ISEL): New.
	(TARGET_FPRS): New.
	(FIXED_SCRATCH): New.
	(RTX_COSTS): Add PROCESSOR_PPC8540.
	(ASM_CPU_SPEC): Add case for 8540.
	(TARGET_OPTIONS): Add isel= case.
	(rs6000_spe_abi): New.
	(rs6000_isel): New.
	(rs6000_fprs): New.
	(rs6000_isel_string): New.
	(UNITS_PER_SPE_WORD): New.
	(LOCAL_ALIGNMENT): Adjust for SPE.
	(HARD_REGNO_MODE_OK): Same.
	(DATA_ALIGNMENT): Same.
	(MEMBER_TYPE_FORCES_BLK): New.
	(FIRST_PSEUDO_REGISTER): Set to 113.
	(FIXED_REGISTERS): Add SPE registers.
	(reg_class): Same.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(REGNO_REG_CLASS): Same.
	(REGISTER_NAMES): Same.
	(DEBUG_REGISTER_NAMES): Same.
	(ADDITIONAL_REGISTER_NAMES): Same.
	(CALL_USED_REGISTERS): Same.
	(CALL_REALLY_USED_REGISTERS): Same.
	(SPE_ACC_REGNO): New.
	(SPEFSCR_REGNO): New.
	(SPE_SIMD_REGNO_P): New.
	(HARD_REGNO_NREGS): Adjust for SPE.
	(VECTOR_MODE_SUPPORTED_P): Same.
	(REGNO_REG_CLASS): Same.
	(FUNCTION_VALUE): Same.
	(LIBCALL_VALUE): Same.
	(LEGITIMATE_OFFSET_ADDRESS_P): Same.
	(SPE_VECTOR_MODE): New.
	(CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on
	the GPRs.  Set FIXED_SCRATCH fixed in SPE case.
	(rs6000_stack): Add spe_gp_size, spe_padding_size,
	spe_gp_save_offset.
	(USE_FP_FOR_ARG_P): Check for TARGET_FPRS.
	(LEGITIMATE_LO_SUM_ADDRESS_P): Same.
	(SPE_CONST_OFFSET_OK): New.
	(rs6000_builtins): Add SPE builtins.

	* testsuite/gcc.dg/ppc-spe.c: New.

	* config/rs6000/eabispe.h: New.

	* config/rs6000/spe.h: New.

	* config/rs600/spe.md: New.

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__SIMD__ for TARGET_SPE.

	* config.gcc: Add powerpc-*-eabispe* case.
	Add spe.h to user headers for powerpc.

From-SVN: r55731
2002-07-25 02:22:47 +00:00
Benjamin Kosnik
9a56333e55 re PR libstdc++/7230 (<strstream> header file is missing (trunk))
2002-07-24  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/7230
	* config/linker-map.gnu: Revert strstream patch from 2002-07-01.
	* include/Makefile.am (backward_headers): Use strstream, not
	strstream.h.
	* include/Makefile.in: Regenerate.
	* include/backward/strstream: Revert.
	* include/backward/strstream.h: Remove.
	* src/strstream.cc: Revert.
	* testsuite/backward/strstream_members.cc: Change include.

From-SVN: r55730
2002-07-25 00:04:37 +00:00