| www.delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
| X-Recipient: | djgpp AT delorie DOT com |
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; |
| d=gmail.com; s=gamma; | |
| h=domainkey-signature:received:received:message-id:date:from:to | |
| :subject:mime-version:content-type; | |
| bh=JcMQU9Ay9Zdg7bbfCWYTaW/FTekEFY4ZDNH4XXz0iP4=; | |
| b=fZuPFUQd7InExy5bbkDJx5G5cFOyCPSdvWyfviDPMugvi3IO/fqBveYxFHd8Sf7x1D | |
| nJPEs1GWUAW8iIz4pSIcgHE7w29HywzqWj5JvZUu7ta1lHM+6u/CUJUxrjQzZphwHIpo | |
| lc3JpR62zF2Q9BbqkmuCSssMiN3s3NweE8DOI= | |
| DomainKey-Signature: | a=rsa-sha1; c=nofws; |
| d=gmail.com; s=gamma; | |
| h=message-id:date:from:to:subject:mime-version:content-type; | |
| b=I+oPSdTJYlvLvJFyDhW3RenOoKk7u9Y6r9WJyeKusj7w9rLri/N5Tmtb0OvGh8ImbU | |
| BkHMlARCmK8NsZTSWHcOKSBXlUeWuxVRxwgZRwJGuzqz8jkTS2SitYYe7hxkfuxnZKUT | |
| f7c7V1Ovdu7GbbaFxRsBCjQgDaXY/mPxyLJbc= | |
| Message-ID: | <89da6560807291624he0cb2d1u696542e552887e8d@mail.gmail.com> |
| Date: | Tue, 29 Jul 2008 16:24:36 -0700 |
| From: | "Lael Jones" <lael DOT jones AT gmail DOT com> |
| To: | djgpp AT delorie DOT com |
| Subject: | djgpp v2 : Control register access segfaults |
| MIME-Version: | 1.0 |
| Reply-To: | djgpp AT delorie DOT com |
------=_Part_50578_25458136.1217373876965
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Hello,
I'm upgrading my application from djgpp v1 to djgpp v2 and am seeing a seg
fault in the debug build when the application tries to access (read or
write) control registers (specifically CR4). The inline assembly I am using
is:
// Enable SSE instructions via OSFXSR (bit 9 of CR4).
__asm__ __volatile__
(
"
movl %%cr4, %%eax
orl $0x00000200, %%eax
movl %%eax, %%cr4
"
: /* output */
: /* input */
: /* modified */
"%eax"
);
The seg fault always occurs on "movl %%cr4, %%eax". The exact same code
executes without the seg fault in a release build ("-O2"). The relevant
source file is compiled with "-ggdb -O0", however due to the size of the
executable I have stripped the debug symbols using "strip -g". All
libraries are statically linked.
Are there any known issues/changes to djgpp that would cause this?
I searched both google and mailing list archives and wasn't able to find any
reference to this issue.
Thanks
Lael
------=_Part_50578_25458136.1217373876965
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
<div dir="ltr"><div>Hello, </div>
<div> </div>
<div>I'm upgrading my application from djgpp v1 to djgpp v2 and am seeing a seg fault in the debug build when the application tries to access (read or write) control registers (specifically CR4). The inline assembly I am using is:</div>
<div> </div>
<div> // Enable SSE instructions via OSFXSR (bit 9 of CR4).<br> __asm__ __volatile__<br> (<br> "<br> movl %%cr4, %%eax<br> orl $0x00000200, %%eax<br> movl %%eax, %%cr4<br> "<br>
: /* output */<br> : /* input */<br> : /* modified */<br> "%eax"<br> );</div>
<div> </div>
<div>The seg fault always occurs on "movl %%cr4, %%eax". The exact same code executes without the seg fault in a release build ("-O2"). The relevant source file is compiled with "-ggdb -O0", however due to the size of the executable I have stripped the debug symbols using "strip -g". All libraries are statically linked.</div>
<div> </div>
<div>Are there any known issues/changes to djgpp that would cause this? </div>
<div> </div>
<div>I searched both google and mailing list archives and wasn't able to find any reference to this issue.</div>
<p>Thanks</p>
<div> </div>
<div>Lael</div>
<div><br></div></div>
------=_Part_50578_25458136.1217373876965--
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |