i686 code with "-march=i386"
user1095108 opened this issue · 0 comments
user1095108 commented
The problem is so well known, that I'm surprised it hasn't been fixed yet. You can compile anything:
gcc -std=c++1z -march=i386 -Ofast -g c.cpp -o c.exe
and you get a SIGILL in dosbox when you run the executable. If you disassemble the code, you get a plethora of cmov* instructions, which are from the i686 instruction set. Different optimization levels have no effect.