delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2012/04/09/18:45:19

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...

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019