From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25045 invoked by alias); 21 Mar 2008 20:54:27 -0000 Received: (qmail 24914 invoked by uid 48); 21 Mar 2008 20:53:45 -0000 Date: Fri, 21 Mar 2008 20:54:00 -0000 Message-ID: <20080321205345.24913.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/35657] TDmode isn't aligned at 128bit when passing to a function In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ubizjak at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-03/txt/msg01775.txt.bz2 ------- Comment #1 from ubizjak at gmail dot com 2008-03-21 20:53 ------- (In reply to comment #0) > ix86_function_arg_boundary returns PARM_BOUNDARY for TDmode > for ia32. Should it return 128bit? The psABI isn't clear on > it. I think it should be aligned at 128bit. Yes, because it is moved to/from XMM registers. Currently, this exact problem is handled by a specialization code in ix86_expand_vector_move that forces unaligned instructions for TDmode memory moves via ix86_expand_vector_move_misalign. Please note that we have to be compatible with SSE x86 and non-SSE x86 code, so TDmode can't be passed in XMM registers on x86_32 targets. I'd wait for psABI to clear situation w.r.t to alignment first. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35657