From owner-freebsd-toolchain@FreeBSD.ORG Tue Sep 10 16:35:07 2013 Return-Path: Delivered-To: toolchain@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 544FE425 for ; Tue, 10 Sep 2013 16:35:07 +0000 (UTC) (envelope-from tijl@freebsd.org) Received: from mailrelay009.isp.belgacom.be (mailrelay009.isp.belgacom.be [195.238.6.176]) by mx1.freebsd.org (Postfix) with ESMTP id E674828ED for ; Tue, 10 Sep 2013 16:35:06 +0000 (UTC) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AloGAIlJL1JbsL2o/2dsb2JhbABbgwd9v1CCfIEkF3SCJQEBBVYzCxgJJQ8qHogfwCiPYhaEBwOQJIdRkWyDIjo Received: from 168.189-176-91.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([91.176.189.168]) by relay.skynet.be with ESMTP; 10 Sep 2013 18:34:58 +0200 Received: from kalimero.tijl.coosemans.org (kalimero.tijl.coosemans.org [127.0.0.1]) by kalimero.tijl.coosemans.org (8.14.7/8.14.7) with ESMTP id r8AGYvHf070380 for ; Tue, 10 Sep 2013 18:34:57 +0200 (CEST) (envelope-from tijl@FreeBSD.org) Date: Tue, 10 Sep 2013 18:34:56 +0200 From: Tijl Coosemans To: toolchain@FreeBSD.org Subject: Re: i386 clang optimisation problem with stack alignment Message-ID: <20130910183456.175162f7@kalimero.tijl.coosemans.org> In-Reply-To: <20130910181601.2e89af87@kalimero.tijl.coosemans.org> References: <20130910181601.2e89af87@kalimero.tijl.coosemans.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=PGP-SHA256; boundary="Sig_/5VDEFAF.LE0.vGvdKaQumHB"; protocol="application/pgp-signature" X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Sep 2013 16:35:07 -0000 --Sig_/5VDEFAF.LE0.vGvdKaQumHB Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Tue, 10 Sep 2013 18:16:01 +0200 Tijl Coosemans wrote: > I've attached a small test program extracted from multimedia/gstreamer-ff= mpeg > (libavcodec/h264_cabac.c:ff_h264_init_cabac_states(H264Context *h)). >=20 > When you compile and run it like this on FreeBSD/i386, it results in a > SIGBUS: >=20 > % cc -o paddd paddd.c -O3 -msse2 -fPIE -fomit-frame-pointer=20 > % ./paddd > Bus error >=20 > The reason is this instruction where %esp isn't 16-byte aligned: > paddd (%esp), %xmm7 >=20 > Is this an upstream bug or is this because of local changes (to make the > stack 4 byte aligned by default or something)? Sigh, let me just inline the attachment: #define NUM 16 signed char state[NUM]; signed char tab[NUM][2]; void init_states(int slice) { int i; /* calculate pre-state */ for( i=3D 0; i < NUM; i++ ) { int pre =3D 2*(((tab[i][0] * slice) >>4 ) + tab[i][1]) - 127; pre^=3D pre>>31; if(pre > 124) pre=3D 124 + (pre&1); state[i] =3D pre; } } int main(void) { init_states(10); } --Sig_/5VDEFAF.LE0.vGvdKaQumHB Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (FreeBSD) iF4EAREIAAYFAlIvSjEACgkQfoCS2CCgtivHBgD9Hk96eyg3rHbXETFqcIE1TxOb /DZOb3Dkr3apof85M/AA/06mAtqDSj8sfqCOL6bEYRqtbdzhiZlIgilI4rjJRZAL =fJ17 -----END PGP SIGNATURE----- --Sig_/5VDEFAF.LE0.vGvdKaQumHB--