From owner-svn-src-all@FreeBSD.ORG Fri Mar 13 18:13:25 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2C5CEA26; Fri, 13 Mar 2015 18:13:25 +0000 (UTC) Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0C8FBE9F; Fri, 13 Mar 2015 18:13:24 +0000 (UTC) Received: from aurora.physics.berkeley.edu (aurora.Physics.Berkeley.EDU [128.32.117.67]) (authenticated bits=0) by c.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id t2DIDMQP005832 (version=TLSv1.2 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 13 Mar 2015 11:13:23 -0700 Message-ID: <550328C2.6060602@freebsd.org> Date: Fri, 13 Mar 2015 11:13:22 -0700 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Konstantin Belousov Subject: Re: svn commit: r279937 - in head/sys/powerpc: include powerpc References: <201503122115.t2CLFdmi026986@svn.freebsd.org> <20150312212234.GS2379@kib.kiev.ua> <55020547.7050102@freebsd.org> <20150312213530.GT2379@kib.kiev.ua> <5502094D.5090001@freebsd.org> <20150313084702.GV2379@kib.kiev.ua> <550318FD.1070906@freebsd.org> <20150313172345.GY2379@kib.kiev.ua> <5503224A.3010100@freebsd.org> <20150313175931.GA2379@kib.kiev.ua> In-Reply-To: <20150313175931.GA2379@kib.kiev.ua> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVZnHMi/z/MD2aCkwRjsbWoCP18pfq0c4IQiGTiST18n4VzIeeWQL2KaRE+pH9mO2WtFckn/VbbzyQh/taiR0X6Jdt6zynLtV5U= X-Sonic-ID: C;pGGRoqzJ5BGP4u8Jj30JFw== M;2rfNoqzJ5BGP4u8Jj30JFw== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Mar 2015 18:13:25 -0000 On 03/13/15 10:59, Konstantin Belousov wrote: > On Fri, Mar 13, 2015 at 10:45:46AM -0700, Nathan Whitehorn wrote: >> We'll need to hack the compiler in this case, since it assumes setjmp() >> saves and restores the vector registers. I'm really not sure which >> option is worse. > Changing the compiler is arguably much worse than breaking ABI of the > tier 2 platform, indeed. We must maintain the situation where the stock > build of the compilers work out of box. > > Still, how the compiler' assumptions are laid out ? It could be argued > that compilers on x86 also assume that FPU register file is restored by > longjmp. %st* and %xmm* are defined as not preserved across function > calls, but I suspect that practical rule for setjmp() is that floating > vars better not be used in the target frame. > > Hm, indeed f14-f31 and v20-v31 are marked as non-volatile for 64bit ABI. > The compiler assumes that f14-f31 and v20-v31 are preserved by setjmp() (and, e.g. glibc's setjmp() does in fact preserve them). It also tries not to use those registers too much, so the practical impact is limited, but it should actually be fixed. -Nathan