alt.hn

2/15/2026 at 8:31:08 AM

Michael Abrash doubled Quake framerste

https://fabiensanglard.net/quake_asm_optimizations/index.html

by chunkles

2/15/2026 at 9:37:50 PM

By going to godbolt Just realized how hard it is to generate x87 FPU code these days. Almost all supported compilers are outputing XMM? SSE instructions these days.

by Dork1234

2/16/2026 at 3:08:11 AM

Use a 32 bit x86 target?

by shawn_w

2/16/2026 at 1:51:47 PM

You're doing it wrong.

GCC: -mfpmath=387

Clang: -mfpmath=387 -mno-sse

by burnt-resistor

2/16/2026 at 12:40:31 AM

Title has a typo, should say “framerate”.

by DerekL

2/16/2026 at 11:47:00 AM

The mods must have changed the title because I submitted it with the title "How Michael Abrash doubled Quakes framerate" matching the actual article title.

by chunkles

2/15/2026 at 3:23:06 PM

Just curious, given that Pentium arch might still be relevant, than 486/487. How much of this optimization is still relevant today?

by markus_zhang

2/15/2026 at 4:21:14 PM

Thinking about fpu pipeline parallelism/stalls still matter, though more often by hinting an optimizing compiler + verifying the output by inspection, than by inlining asm itself.

by mwkaufma

2/15/2026 at 6:08:07 PM

Gotcha, thanks!

by markus_zhang

2/16/2026 at 1:57:29 PM

487 is a 486dx/dlc-compatible (FPU enabled) replacement for the 486sx/slc (FPU disabled).

There are actually several flavors of x87 ISA: 8087, 80287, and 80387. Every 386+ chip supports the 387 ISA. The 287 is almost the same as the 387. The 8087 is almost a strict subset with some differences. There were also Weitek math coprocessors that were entirely different. The IIT 3C87 was an odd bird that supported the 387 ISA and some other instructions.

by burnt-resistor