From owner-freebsd-toolchain@FreeBSD.ORG Thu Apr 14 23:41:06 2011 Return-Path: Delivered-To: freebsd-toolchain@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id 524D2106566B; Thu, 14 Apr 2011 23:41:06 +0000 (UTC) Date: Thu, 14 Apr 2011 23:41:06 +0000 From: Alexander Best To: freebsd-toolchain@freebsd.org Message-ID: <20110414234106.GA22718@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: clang and 3dnow(a) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Apr 2011 23:41:06 -0000 hi there, per coincidence i discovered the following contrary behavior between gcc and clang: -mno-mmx implies -mno-3dnow under gcc. under clang -mno-mmx will *not* imply -mno-3dnow! is this a clang design feature or a bug? fixing it would be trivial (see attached patch). cheers. alex diff --git a/contrib/llvm/tools/clang/lib/Basic/Targets.cpp b/contrib/llvm/tools/clang/lib/Basic/Targets.cpp index 55321f2..1af7c52 100644 --- a/contrib/llvm/tools/clang/lib/Basic/Targets.cpp +++ b/contrib/llvm/tools/clang/lib/Basic/Targets.cpp @@ -1133,8 +1133,9 @@ bool X86TargetInfo::setFeatureEnabled(llvm::StringMap &Features, Features["avx"] = true; } else { if (Name == "mmx") - Features["mmx"] = Features["sse"] = Features["sse2"] = Features["sse3"] = - Features["ssse3"] = Features["sse41"] = Features["sse42"] = false; + Features["mmx"] = Features["3dnow"] = Features["3dnowa"] = + Features["sse"] = Features["sse2"] = Features["sse3"] = + Features["ssse3"] = Features["sse41"] = Features["sse42"] = false; else if (Name == "sse") Features["sse"] = Features["sse2"] = Features["sse3"] = Features["ssse3"] = Features["sse41"] = Features["sse42"] = false; -- a13x