[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