slbfee.
SLB Find Entry ESID
Searches the SLB for an entry that matches the effective address specified by register RB.
Details
The SLB is searched for an entry that matches the effective address specified by register RB. If exactly one matching entry is found, the contents of the B, VSID, Ks, Kp, N, L, C, and LP fields of the entry are placed into register RT. If no matching entry is found, register RT is set to 0. If more than one matching entry is found, either one of the matching entries is used, or a Machine Check occurs.
Pseudocode Operation
if LPCRUPRT=1 then
// Instruction is nonfunctional
else
search SLB for entry matching (RB)0:63-s
if exactly one match found then
RT <- B | VSID | KsKpNLC | LP
else if no match found then
RT <- 0
else
// More than one match, Machine Check occurs
end
Programming Note
The contents of registers RT and RB are interpreted as shown below. RT0:1 B RT2:51 VSID RT52 Ks RT53 Kp RT54 N RT55 L RT56 C RT57 set to 0b0 RT58:59 LP RT60:63 set to 0b0000 RB0:35 ESID RB36:39 must be 0b0000 RB40:63 must be 0x000000 If s > 28, RT80-s:51 are set to zeros. On implementations that support a virtual address size of only n bits, n < 78, RT2:79-n are set to zeros. CR Field 0 is set as follows. j is a 1-bit value that is equal to 0b1 if a matching entry was found. Otherwise, j is 0b0. When LPCRUPRT̸=0, j=0b0. CR0LT GT EQ SO = 0b00 || j || XERSO
Example
Encoding
Operands
-
RT
Target General Purpose Register -
RB
Source General Purpose Register