X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: RayeR 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> <963ed3e2-354f-48ce-90fd-43fb7263fe2d AT v2g2000vbx DOT googlegroups DOT com> NNTP-Posting-Host: 78.45.223.30 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 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...