HN Hall of Fame Weekly email

How many registers does an x86-64 CPU have?

blog.yossarian.net Essays & writing Essays & articles Hardware & electronics Candidate
Screenshot of blog.yossarian.net captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 3 calendar years, with breakout response in 2 of them.

submissions
3
submitters
3
observed span
2020–2026
peak thread · 109 comments
120 pts
latest 20+ return · 2026-02-14
115 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

There's definitely several ways to ask the question, but IMHO the best answer to an unqualified question is to frame it in terms of what the necessary state to store in a thread context. To that end, the registers boil down to: * 16 general-purpose registers. * 16 or 32 vector registers. * 7 vector mask registers * 8 x87 floating-point registers, with 8 MMX registers aliased. (To separate or not separate x87/mmx is definitely a challenging question) * 3…

This is how many registers the ISA exposes, but not the number of registers actually in the CPU. Typical CPUs have hundreds of registers. For example, Zen 4 's integer register file has 224 registers, and the FP/vector register file has 192 registers (per Wikipedia). This is useful to know because it can effect behavior. E.g. I've seen results where doing a register allocation pass with a large number of registers, followed by a pass with the number of registers…

I dislike weird semantic hoop-jumping articles like this. It purposefully obfuscates a simple question to make it seem more complex. Just in the GPR section, the answer is simple...in long mode there are 16 that can be subdivided. There aren't 58 additional registers because of that. Or, to get more specific, how many pieces of data are there in this union: union Registers { struct { unsigned short int AF; }; struct { unsigned char F, A; }; } regs…

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
2

100+ points or 50+ comments

Total points
253

reference only — not used in Hall rules or ranking

Total comments
214

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2020-11-30How many registers does an x86-64 CPU have?First breakout · Best threadwoodruffw120109
2023-07-20How many registers does an x86-64 CPU have?caubonev1810
2026-02-14How many registers does an x86-64 CPU have? (2020)Latest 20+ point returntosh11595