From owner-freebsd-current@FreeBSD.ORG Wed Mar 9 23:43:38 2011 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 92312106566C; Wed, 9 Mar 2011 23:43:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id 517BC8FC15; Wed, 9 Mar 2011 23:43:38 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:4fb:f711:ed42:fd1a] (unknown [IPv6:2001:7b8:3a7:0:4fb:f711:ed42:fd1a]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 9D1B25C59; Thu, 10 Mar 2011 00:43:37 +0100 (CET) Message-ID: <4D7810B2.4090207@FreeBSD.org> Date: Thu, 10 Mar 2011 00:43:46 +0100 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.15pre) Gecko/20110303 Lanikai/3.1.9pre MIME-Version: 1.0 To: Martin Matuska , current@freebsd.org, gerald@freebsd.org References: <4D7799FD.9040008@FreeBSD.org> <20110309211820.GA46520@zim.MIT.EDU> In-Reply-To: <20110309211820.GA46520@zim.MIT.EDU> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: Re: [TESTING] ssse3 backport from gcc 4.3 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Mar 2011 23:43:38 -0000 On 2011-03-09 22:18, David Schultz wrote: > The proliferation of -mno-sse -mno-sse2 -mno-sse3 options in the > makefiles is probably not needed: I'm pretty sure -mno-sse implies > the other two, unless -msse3 is specified explicitly. Indeed, contrib/gcc/config/i386/i386.c has: static bool ix86_handle_option (size_t code, const char *arg ATTRIBUTE_UNUSED, int value) { ... case OPT_msse: if (!value) { target_flags &= ~(MASK_SSE2 | MASK_SSE3); target_flags_explicit |= MASK_SSE2 | MASK_SSE3; } return true; E.g -mno-sse disables SSE2 and SSE3, unless you explicitly add -msse2 or -msse3 options. In Martin's patch, this fragment uses MASK_SSSE3 too. Clang has a similar mechanism, -mno-sse disables all 'higher' SSE variants too.