Differences between powerpc64* SLB/PTE architectures: * PPC970 (PowerMac G5) are based on PowerPC ISA, *not* PowerISA 2.03, even though it's based on the POWER4. * PPC970 does not allow for mixed page sizes in a single SLB * `tlbie` format takes 2 arguments: * tlbie %rB, L * %rB is the cropped AVPN (top 16 bits must be 0). * L bit is a constant defining large page or small page. * PowerISA 2.03 allows for mixed page sizes, but this looks convoluted. * `tlbie` format is similar to PPC970's: * tlbie %rB, L * L is a constant as for PPC970, if 0, then the `AP` field determines if the page is 4k or 64k. If 1, the page size (real and virtual) is encoded in the `LP` field of %rB * %rB encodes the VPN and page size. * PowerISA 2.06 (POWER7) and later all allow for mixed page sizes in a single SLB, thus allowing for transparent superpages. This may also apply to ISA 2.04 (Power5) but has not been confirmed. * `tlbie` takes 2 arguments (more for 3.1) * tlbie %rB, %rS * %rB is an encoding of the AVPN, page size, SLB size * Bit 63 (LSB) denotes if large page encoding or not ('L') * If L=0, `AP` encoding denotes the PTE(L||LP) or SLB(L||LP), used in FreeBSD, this is 0b100, to denote 16MB superpage on 4k base page size * If L=1, `LP` encodes real and actual page size; this is unused on FreeBSD because we only use 4k pages * %rS encodes (PID||LPID), each (PID and LPID) are 32 bits