So today I discovered another piece of brain damage from GCC. Seriously what the fuck is wrong with this compiler, its retardation exceeds all understanding, no human programmer could ever come up with such assembly, it would take effort to write something this bad.
This code is the consequence of overzealous and misapplied optimizations, GCC is always doing this shit and its a constant battle to deal with. My code has so much inline assembly to fix the broken optimizer. The macro “#define VARFIX(x) asm(“” : “+r(x))“, is used extensively, it does nothing but trick the compiler into thinking the variable was changed. Its sad when hiding information from the compiler results in better code but that’s all par for the course with GCC the most retarded of all compilers.
The source code:
GCC 9.3 output:
GCC 8.3 output: