VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

How are the cache bits in the x86 paging layers (PDPTE, PDE, PTE) combined with the CR3 register bits and CR0 register bits?

From what I've gathered so far:
- Page Cache Disable of the CR0 register is pretty much OR'ed with just the current level of lookup (see below on the used second source for the 'current level').
- Page Write-Through uses the flipped Not-Write through bit of the CR0 register AND'ed with the current level of lookup (see below on the used second source for the 'current level')

The second source being:
- PDPTE lookups (when loading CR3 or enabling PAE) use the CD0 register directly (effectively the second source is the CR0 register itself)
- PDE lookups uses either PDPTE bits(PAE) or CR3 bits(non-PAE)
- PTE lookups use the PDE bits.

Is that correct behaviour?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io