https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88630
--- Comment #7 from Zavadovsky Yan <zavadovsky.yan at gmail dot com> --- Hello. >your posted disassembly doesn't seem to match >the actual source that you have posted Sorry, my mistake. Seems that I attached some temporary ASM sources. Must be check for -12, of course. >The difference is that in GCC 4.9, the fpscr switch >is done before fneg and later it's done after fneg. >That is OK because fneg does not use and does not >modify any of the fpscr bits. I also found out that this fpscr-related changes seems to be normal. But behavior of generated code is different: >Are you testing this on real hardware or on some emulator/simulator? I got this bug on real hardware - STiH237 chip from STMicroelectronics. >in GCC 4.9, the fpscr switch is done before fneg This works good on STiH237 >later it's done after fneg but that is not.