GCC 4.6.x invalid code generation (Developers)
> But there are still used and manufactured various low-power embedded PCs
> with old and simple x86 core like vortex86 and other SoC with 386/486 core,
> even may lack FPU. Linux can run on such machines well so they should
> care...
GCC has always assumed an FPU, I think. But also I think Linux kernel has CMOV emulation (presumably via trapping SIGILL), so maybe that's why they don't care, it should always work. Even Clang (I think?) by default targets P4 w/ SSE2.
> Running the program is not enough good test. Code may branch widely
> depending on input data so you don't have a chance to test all the code
> runtime...
True, but I don't know of a better way.
> As you can see from file dates I use updated/CVS DJDEV. But now I become
> suspicious to objdump. It detected CMOVs in libm.a even from very old djdev
> 2.03. I tried older 3.x GCC and still getting CMOVs in some object files. I
> also found, that X264 use CMOV in some assembler source modules so it
> cannot be disabled. So this may be the reason why FFMPEG crashed on some
> compression target and din't crashed on other. But as I said I found CMOV
> also in .o files compiled from .c files that doesn't have inline ASM or
> anything else indicating CMOV. Even more confusing is that CMOV was
> produced also with GCC 3.x. When I tried to compile .C file into assembler
> .S file I didn't see CMOV there. So objdump is just kidding me or WTF? It
> seem's the right time to go sleep now... :P
Dunno, try gcc281b.zip, and see what happens. It shouldn't make any CMOVs ... ever! 
I honestly only know about such regression in 4.6.x, so I would personally trust older versions. However, it's impossible to tell, but I'm not worried (at least without better proof). So I suggest you also not worry. I know it's not much reassurance, esp. from me, but it's all I've got. Also, 4.5.3 is presumably "good enough" for your needs until a fix is found. 
EDIT: If it were me, I'd totally revert to a non-buggy patch in GCC trunk, but alas it's not my call (and obviously I don't have repo write access). Also, I think CMOV optimizations are hugely overrated, but silly GCC is obsessed with them for whatever reason.
Complete thread:
- DJGPP/GCC 4.6.2 invalid code generation when -march restrict - RayeR, 10.04.2012, 00:38 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- GCC 4.6.x invalid code generation - Rugxulo, 10.04.2012, 02:01
- GCC 4.6.x invalid code generation - RayeR, 10.04.2012, 03:58
- GCC 4.6.x invalid code generation - Rugxulo, 10.04.2012, 05:58
- GCC 4.6.x invalid code generation - RayeR, 10.04.2012, 13:44
- GCC 4.6.x invalid code generation - marcov, 10.04.2012, 16:19
- GCC 4.6.x invalid code generation - RayeR, 10.04.2012, 17:44
- GCC 4.6.x invalid code generation - RayeR, 14.04.2012, 23:28
- GCC 4.6.x invalid code generation: MP [PATCH] configure cmov - Arjay, 15.04.2012, 09:05
- GCC 4.6.x invalid code generation: MP [PATCH] configure cmov - RayeR, 15.04.2012, 14:44
- GCC 4.6.x invalid code generation: MP [PATCH] configure cmov - RayeR, 26.04.2012, 01:50
- GCC 4.6.x invalid code generation - Rugxulo, 26.04.2012, 09:06
- GCC 4.6.x invalid code generation - RayeR, 28.04.2012, 02:14
- x264 0.124 update - RayeR, 01.05.2012, 17:57
- CMOVNTQ and multiple file access - DOS386, 16.06.2012, 12:53
- Multiple file access, FreeDOS file locking support - ecm, 16.06.2012, 14:31
- multiple file access / IUP 0.67 - Rugxulo, 16.06.2012, 17:48
- multiple file access / IUP 0.67 - DOS386, 17.06.2012, 09:33
- CMOVNTQ and multiple file access - RayeR, 19.06.2012, 20:38
- CMOVNTQ and multiple file access - RayeR, 21.06.2012, 04:32
- load SHARE - ecm, 21.06.2012, 05:06
- load SHARE - RayeR, 21.06.2012, 12:40
- load SHARE - ecm, 21.06.2012, 12:47
- load SHARE - RayeR, 21.06.2012, 19:58
- load SHARE - RayeR, 21.06.2012, 23:31
- load SHARE - ecm, 22.06.2012, 14:03
- load SHARE - RayeR, 21.06.2012, 19:58
- load SHARE - ecm, 21.06.2012, 12:47
- load SHARE - RayeR, 21.06.2012, 12:40
- load SHARE - ecm, 21.06.2012, 05:06
- CMOVNTQ and multiple file access - RayeR, 21.06.2012, 04:32
- GCC 4.6.x invalid code generation - RayeR, 28.04.2012, 02:14
- GCC 4.6.x invalid code generation - Rugxulo, 26.04.2012, 09:06
- GCC 4.6.x invalid code generation: MP [PATCH] configure cmov - RayeR, 26.04.2012, 01:50
- GCC 4.6.x invalid code generation: MP [PATCH] configure cmov - RayeR, 15.04.2012, 14:44
- GCC 4.6.x invalid code generation: MP [PATCH] configure cmov - Arjay, 15.04.2012, 09:05
- GCC 4.6.x invalid code generation - RayeR, 14.04.2012, 23:28
- GCC 4.6.x invalid code generation - RayeR, 10.04.2012, 17:44
- GCC 4.6.x invalid code generation - marcov, 10.04.2012, 16:19
- GCC 4.6.x invalid code generation - RayeR, 10.04.2012, 13:44
- GCC 4.6.x invalid code generation - Rugxulo, 10.04.2012, 05:58
- GCC 4.6.x invalid code generation - marcov, 10.04.2012, 16:16
- GCC 4.6.x invalid code generation - RayeR, 10.04.2012, 17:49
- GCC 4.6.x invalid code generation - RayeR, 10.04.2012, 03:58
- GCC 4.6.x invalid code generation - Rugxulo, 10.04.2012, 02:01
Mix view