From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1426 invoked by alias); 12 Aug 2008 02:29:36 -0000 Received: (qmail 1417 invoked by uid 22791); 12 Aug 2008 02:29:35 -0000 X-Spam-Check-By: sourceware.org Received: from xena.cds1.net (HELO mail.cds1.net) (216.174.197.150) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 12 Aug 2008 02:27:55 +0000 Received: from localhost (neptune-canopy.cds1.net [172.16.10.246]) by mail.cds1.net (Postfix) with ESMTP id D9C2EE89E404; Mon, 11 Aug 2008 19:27:52 -0700 (PDT) Received: from mail.cds1.net ([172.16.10.33]) by localhost (neptune.cds1.net [172.16.10.246]) (amavisd-new, port 10024) with ESMTP id 55LiSrC1FOux; Mon, 11 Aug 2008 19:27:50 -0700 (PDT) Received: from [192.168.1.103] (dhcp-172-16-14-253.cds1.net [172.16.14.253]) by mail.cds1.net (Postfix) with ESMTP id C0CFAE861538; Mon, 11 Aug 2008 19:27:42 -0700 (PDT) Subject: Re: GNU C++ Inline Assembler From: Bob Plantz To: gcc-help@gcc.gnu.org Cc: Andrew Haley , Robin-Vossen In-Reply-To: <48A0E23F.EE8BC28C@dessent.net> References: <18912389.post@talk.nabble.com> <1218415637.5988.10.camel@bob-desktop> <18929255.post@talk.nabble.com> <48A08513.6050103@redhat.com> <1218489833.5989.6.camel@bob-desktop> <48A0E23F.EE8BC28C@dessent.net> Content-Type: text/plain Date: Tue, 12 Aug 2008 08:56:00 -0000 Message-Id: <1218508063.5985.7.camel@bob-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gcc-help-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-help-owner@gcc.gnu.org X-SW-Source: 2008-08/txt/msg00109.txt.bz2 On Mon, 2008-08-11 at 18:07 -0700, Brian Dessent wrote: > Because the MSVC style of inline assembler doesn't allow for specifying > any constraints such as which registers or stack slots are clobbered. > This means that compiler can't assume anything about the state before > and after the block, it must just throw away all dataflow information it > had before the block and assume everything was clobbered, leading to > tons of useless redundant loads/stores. The GNU style inline asm works > within the framework of the optimizing compiler, rather than outside it > by totally going behind it's back. > > Read the long thread that starts here: > . Thank you for the explanation and the link. I've never been a Microsoft programmer, and I haven't used CodeWarrior (Mac PowerPC) for a long time. I had forgotten about that technique of inline assembly. Bob