From: "Ben Peddell" Newsgroups: comp.os.msdos.djgpp References: <1814460936 DOT 20030115105536 AT elins DOT ru> Subject: Re: Problem with inline AT&T assembler Lines: 26 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2615.200 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 Message-ID: <0kaV9.24596$jM5.64926@newsfeeds.bigpond.com> Date: Wed, 15 Jan 2003 20:11:21 +1000 NNTP-Posting-Host: 144.139.176.112 X-Trace: newsfeeds.bigpond.com 1042624892 144.139.176.112 (Wed, 15 Jan 2003 21:01:32 EST) NNTP-Posting-Date: Wed, 15 Jan 2003 21:01:32 EST Organization: Telstra BigPond Internet Services (http://www.bigpond.com) To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com You should _never_ declare a register that is either input or output as being clobbered. GCC assumes that input registers are clobbered anyway, and declaring a register as clobbered just makes that register unavailable as input or output. Bokarev Alexandr wrote in message news:1814460936 DOT 20030115105536 AT elins DOT ru... > I have DJGPP ver.3.1 and try to use inline assembler. > I write something like: > > int src; > __asm__ ( \ > "some code in assembler" > : > : "S" (src) > : "%esi" ); > > and think that this code is right. But compiler says: > "Error: can't find register in class 'SIREG' while reloading 'asm'" > (or CREG, DIREG etc.). > What must I do to fix this error ? > >