Intel's 8087 chip hides a surprisingly complex secret in its simplest instruction

Microcode in Intel's 8087 floating-point chip: the scale instruction

Intel's 8087 chip hides a surprisingly complex secret in its simplest instruction

The 8087 floating-point coprocessor, introduced in 1980, set the standard for modern floating-point arithmetic. Ken Shirriff, part of the Opcode Collective, reverse-engineers the microcode for the FSCALE instruction—expected to be trivial—and finds it uses over 140 micro-instructions and three levels of subroutine calls to handle special cases. The analysis reveals the chip's internal datapath and a hidden feature.

I figured that FSCALE was a simple, almost trivial instruction that would be straightforward to understand and explain. Spoiler: it is not simple.
  1. garganzol

    100x speed improvement of math operations by 8087 is not an overestimation. The difference for apps relying on math was crazy back then. I experienced this first-hand on my 80286 machine, where it was 3-second vs 300-second calculation results.

    One neat feature of 8087 instruction set is that it can be interspersed with x86 instructions in the code stream, giving you a simultaneous access to two processor chips working in parallel. This combo forms a real asymmetrical multi-processor system with certain opportunities for hardware-assisted code parallelization. If a thoughtful instruction scheduling is used, floating operations executed by 8087 work in parallel with the usual integer x86 code.

  2. cogman10

    x87 is such a weird architecture. It was designed the same way you'd design a chip for a scientific calculator. Heck, It's almost a perfect fit for an HP RPN calculator.

    But for a compiler to target, it's just so painful. It's so different from almost all other ways CPUs work. There's a reason both CPU and compilers prefer to avoid x87 when possible and use regular SIMD (SSE/AVX) instead.

    Also, the arbitrary "Oh, and the registers are 80 bits wide" is also just one of those weird "Where did that number come from?".

  3. kens

    Author here for your 8087 questions...

  4. finn888

    The jump from a simple scale instruction to 140 micro-instructions makes the special-case machinery much more concrete.

More from this day

2026-09-12