[Bug c++/14425] [3.5 Regression] vec_splat broken

cvs-commit at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed May 12 11:49:00 GMT 2004


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-05-11 15:52 -------
Subject: Bug 14425

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	hammer-3_3-branch
Changes by:	matz@gcc.gnu.org	2004-05-11 15:52:23

Modified files:
	gcc/doc        : tm.texi 
	gcc/config     : darwin.h 
	gcc/config/rs6000: rs6000-c.c altivec.h darwin.h rs6000.c 
	                   rs6000.h 
	gcc/config/i386: darwin.h 

Log message:
	Backport of various C++ stuff regarding ppc ABI with vector
	args (#39623)
	
	2003-08-25  Mark Mitchell  <mark@codesourcery.com>
	
	PR c++/8795
	* tree.h (build_method_type_directly): Declare.
	* c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs.
	(vector_size_helper): Likewise.
	* tree.c (build_method_type_directly): New function.
	(build_method_type): Use it.
	
	PR c++/8795
	* g++.dg/ext/altivec-1.C: New test.
	
	2004-02-10  Ziemowit Laski  <zlaski@apple.com>
	
	* c-common.c (vector_size_helper): Remove; call
	reconstruct_complex_type() instead.
	* tree.c (reconstruct_complex_type): New function
	(formerly vector_size_helper() in c-common.c).
	(make_vector): Make externally visible.
	* tree.h (reconstruct_complex_type, make_vector): Add prototypes.
	
	2004-02-21  Ziemowit Laski  <zlaski@apple.com>
	
	* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
	SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
	* config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
	* config/rs6000/altivec.h: #error out if '-maltivec' not specified.
	(vector, pixel, bool): #define to __vector, __pixel and __bool.
	(__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
	portion of header.
	(__altivec_link_error_invalid_argument): Remove prototype; will use
	__builtin_altivec_compiletime_error("vec_*") instead.
	(vec_*): Fix/complete set of available operation overloads given the
	existence of distinct 'vector bool ...' and 'vector pixel' types; tight
	en
	cv-correctness of pointer arguments; in C, always check for correct
	argument types before macro expansion.
	* config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
	defining Darwin/PowerPC-specific '-f[no-]altivec' and
	'-W[no-]altivec-long-deprecated' switches.
	* config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
	'__vector', '__pixel' and '__bool' macros using
	'__attribute__((altivec(...)))' types.
	* config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
	bool_int_type_node, pixel_type_node,
	bool_V16QI_type_node,
	bool_V8HI_type_node, bool_V4SI_type_node,
	pixel_V8HI_type_node): New type nodes.
	(rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
	handling '-W[no-]altivec-long-deprecated'.
	(rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
	(rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
	altivec_expand_dst_builtin): Remove casts from integer literals.
	(altivec_expand_builtin): Likewise; handle expansion of new
	'__builtin_altivec_compiletime_error' function.
	(rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
	types, and make them distinct from other vector types; register
	'__builtin_altivec_compiletime_error' function.
	(print_operand): For 'P', print a full target register name instead of
	merely its number.
	(rs6000_attribute_table): Add "altivec" attribute.
	(rs6000_handle_altivec_attribute): New function.
	* config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
	'-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
	maps to).
	(rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
	declare.
	(ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
	
	2004-02-27  Ziemowit Laski  <zlaski@apple.com>
	
	* tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
	
	2004-03-04  Ziemowit Laski  <zlaski@apple.com>
	
	PR c++/14425, c++/14426
	* config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
	vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
	Change C++ definitions to accept a 'const int' argument;
	the prototypes already do.
	* config/rs6000/rs6000.c (rs6000_common_init_builtins):
	Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
	v4sf_ftype_v4si_char, v4si_ftype_v4sf_char,
	v4si_ftype_v4si_char,
	v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
	v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
	v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
	end in ..._int; change them to accept an int instead of a char
	as the last parameter.
	
	2004-03-19  Ziemowit Laski  <zlaski@apple.com>
	
	* config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
	vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
	always_inline attribute.
	* config/rs6000/rs6000.c (altivec_expand_dst_builtin):
	Treat expansion as completed even if literal argument is
	invalid (so that other expansions are not tried in vain).
	
	2004-03-23  Ziemowit Laski  <zlaski@apple.com>
	
	* hooks.c (hook_constcharptr_tree_null): New hook.
	* hooks.h (hook_constcharptr_tree_null): New prototype.
	* target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target
	hook.
	* target.h (mangle_fundamental_type): New target hook.
	* config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE):
	Point target hook at rs6000_mangle_fundamental_type.
	(rs6000_mangle_fundamental_type): New function.
	* doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/tm.texi.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.180.2.14&r2=1.180.2.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/darwin.h.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.42.4.5&r2=1.42.4.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000-c.c.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.5.12.1&r2=1.5.12.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/altivec.h.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.20.18.3&r2=1.20.18.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/darwin.h.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.29.2.6&r2=1.29.2.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.c.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.397.2.39&r2=1.397.2.40
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.234.2.26&r2=1.234.2.27
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/darwin.h.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.3.4.1&r2=1.3.4.2



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14425



More information about the Gcc-bugs mailing list