Delete comment from: Ken Shirriff's blog
> The three 32-bit registers of type (c) may be the CR0 control register and the DR6 and DR7 debug registers.
(I'm also speculating, but...)
Unlikely. Even today, CR0 only has 9 mutable bits, and (from memory) only 6 in the 386. Intel absolutely wouldn't have spent the transistors budget like that.
DR6 only gained bit 16 in Haswell, and while DR7 could usefully be a 32-bit register, it likely wasn't there. DR[0-3] will be next to the address circuity (they're linear addresses, so post segmentation but pre paging), and DR7 will be with them, considering it contains the breakpoint enable bits.
CR2 and CR3 are the other big registers which come to mind, but they'll be with the TLB circuitry. CR3 only 20 bits (it's always 4k aligned in the 386), and CR2 (again a linear address) will be recorded as the input being looked up.
The 386 did have Test Registers too (precursors to MSRs today), but they will be adjacent to the TLB and Cache circuity.
While I hate to be boring, I expect they're just ALU temporaries.
As always, a fascinating article. Thankyou for all the work you put into these.
May 1, 2025, 6:45:00 PM
Posted to The absurdly complicated circuitry for the 386 processor's registers

