On Mon, 2010-04-12 at 09:34 +0000, siarhei dot siamashka at gmail dot com wrote: > > ------- Comment #8 from siarhei dot siamashka at gmail dot com 2010-04-12 > 09:34 ------- > (In reply to comment #7) > > Patch submitted here. > > > > http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00401.html > > Thank you. I have been testing it for two days already. > > It really helps (in the sense that it is apparently better to have this fix > than not to have). I have bootstrapped the hard vfp system successfully and > did > not notice any other problems so far. Btw, miscompilation (of all the same > package) also happens with -O2 optimization settings in some other place, but > I > did not try to investigate where exactly it fails. > > But I understand that it is just a workaround for the problem which happens > somewhere in the upper layer? If REV instruction did not actually support > conditional execution, then the fix would require actually finding the real > cause.
There were 2 issues, one is that REV isn't marked as being allowed conditional and the other is that the CCFSM state machine appears to go wrong in this particular case which is something I need to investigate when I have some more free time. (Note this is ARM backend specific only.) Thus the fix isn't a work-around because it introduces predicated support for something like the REV instruction which is the right thing to do here.