From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14797 invoked by alias); 9 Mar 2010 23:49:39 -0000 Received: (qmail 14756 invoked by uid 48); 9 Mar 2010 23:49:27 -0000 Date: Tue, 09 Mar 2010 23:49:00 -0000 Message-ID: <20100309234927.14755.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/42869] GOMP_critical_start wrong on Itanium due to __sync miscompilation In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "sje at cup dot hp 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: 2010-03/txt/msg00897.txt.bz2 ------- Comment #4 from sje at cup dot hp dot com 2010-03-09 23:49 ------- Yes, I think this is clearly a bug in the IA64 definition of sync_compare_and_swap. I think the fix is swapping the two instructions being generated by the IA64 sync_compare_and_swap instruction. (cmpxchg4.rel followed by a memory fence instead of a memory fence followed by cmpxchg4.rel). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42869