delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
From: | RayeR <glaux AT centrum DOT cz> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: CC1.EXE/GCC.EXE crashes with SIGILL, hard. |
Date: | Mon, 9 Apr 2012 15:21:59 -0700 (PDT) |
Organization: | http://groups.google.com |
Lines: | 25 |
Message-ID: | <20a1f7c2-2a4a-430f-a762-2e53b10cef12@f37g2000yqc.googlegroups.com> |
References: | <16777375 DOT 1302 DOT 1331688966231 DOT JavaMail DOT geo-discussion-forums AT vbat19> |
<4F60E096 DOT 2060106 AT iki DOT fi> <496fa848-de2c-4020-aced-ef298a0c5ec9 AT r21g2000yqa DOT googlegroups DOT com> | |
<75057a79-95a3-41ec-93c6-8b459c4d9f9a AT h20g2000yqd DOT googlegroups DOT com> | |
<ed5d1b7e-15bd-4b9e-94f6-f2a1e1f91e90 AT em9g2000vbb DOT googlegroups DOT com> | |
<963ed3e2-354f-48ce-90fd-43fb7263fe2d AT v2g2000vbx DOT googlegroups DOT com> <DbSdnTKav7anJ-7SnZ2dnUVZ_j-dnZ2d AT earthlink DOT com> | |
NNTP-Posting-Host: | 78.45.223.30 |
Mime-Version: | 1.0 |
X-Trace: | posting.google.com 1334010207 27386 127.0.0.1 (9 Apr 2012 22:23:27 GMT) |
X-Complaints-To: | groups-abuse AT google DOT com |
NNTP-Posting-Date: | Mon, 9 Apr 2012 22:23:27 +0000 (UTC) |
Complaints-To: | groups-abuse AT google DOT com |
Injection-Info: | f37g2000yqc.googlegroups.com; posting-host=78.45.223.30; posting-account=Q0wMHAoAAADjYrghh94FTf6YnbpTqZgp |
User-Agent: | G2/1.0 |
X-HTTP-UserAgent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.19) |
Gecko/20110420 SeaMonkey/2.0.14,gzip(gfe) | |
Bytes: | 2744 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
I met the problem with GCC 4.6.2 and CMOV with my project too. I compiled DOS port of FFMPEG optimized for pentium (-march=pentium) and my friend tested it on AMD K6-II and program crashed during compression due to invalid opcode. Grrr I objdumped the binary and see: 1ec15d: 0f 4e 06 cmovle (%esi),%eax 1edf71: 0f 42 05 48 f2 c3 08 cmovb 0x8c3f248,%eax 1f334e: 0f 40 23 cmovo (%ebx),%esp 1f4b35: 0f 4a 05 b4 fe 61 ef cmovp 0xef61feb4,%eax 1f7969: 0f 43 2a cmovae (%edx),%ebp 1fd563: 0f 44 28 cmove (%eax),%ebp 4024e3: 0f 42 0f cmovb (%edi),%ecx 4024e7: 0f 44 0f cmove (%edi),%ecx 4024ef: 0f 48 0f cmovs (%edi),%ecx 4024f7: 0f 4c 0f cmovl (%edi),%ecx 410f31: 0f 41 00 cmovno (%eax),%eax 49af38: 0f 4f 2f cmovg (%edi),%ebp 5c275d: 0f 47 3f cmova (%edi),%edi ... tens of occurences of CMOV. It seems there's no way to produce valid code with gcc 4.6.2. I wonder it is still not fixed. There are some small embedded PC in industry based on 386 and 486 core that doesn't support CMOV. Shame on GCC.... In my case I will try some older gcc versions and check when CMOV disapper...
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |