Message-Id: <199909100328.LAA11335@westgate.cyberway.com.sg> From: "Rob Kramer" To: djgpp AT delorie DOT com Date: Fri, 10 Sep 1999 11:27:19 +0800 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Subject: Re: GCC 2.95 global string crashes on 386.. References: <199909090422 DOT MAA24404 AT eastgate DOT cyberway DOT com DOT sg> In-reply-to: X-mailer: Pegasus Mail for Win32 (v3.01b) Reply-To: djgpp AT delorie DOT com I've disassembled the executable, and it seems the compiler issues a locked 'xaddl' instruction. I couldn't find opcode 'c1' in my 386 reference manual, so this may be a 486++ instruction? (I can't find anything but Intel's 386 manual online, sigh) 2052: f0 0f c1 02 lock xaddl %eax,(%edx) > Confirmed with DJGPP ports of egcs-1.1.2 and gcc-2.95.1 (I don't more > gcc-2.95 installed, but that doesn't matter). 2 possible cures: > - currently use option '-march=i386' on 386, it should help I tried that already, to no avail.. Tried again, and the compiler outputs the same 'xaddl' at a slighty different location (other parts of the code are different) > - in future: I must rebuild gcc-2.95.1 for target i386-pc-msdosdjgpp Hmm. How come that in thousands of lines of code, the compiler only fails in a global string definition.. Thanks! Rob Kramer robk AT cyberway DOT com DOT sg