slbmfev

SLB Move From Entry VSID

slbmfev RT, RB

Reads software-loaded SLB entries and places the contents of the B, VSID, Ks, Kp, N, L, C, and LP fields into register RT.

Details

This instruction is used to read software-loaded SLB entries. When LPCRUPRT=0, the entry is specified by bits 52:63 of register RB. When LPCRUPRT=1, only the first four entries can be read, so bits 52:61 of register RB are ignored. If the specified entry is valid (V=1), the contents of the B, VSID, Ks, Kp, N, L, C, and LP fields of the entry are placed into register RT.

Pseudocode Operation

if 'slbmfev' then
    if LPCRUPRT=0 then
        entry_index <- (RB)[52:63]
    else
        entry_index <- (RB)[52:61] & 0xF
    end if
    if SLB[entry_index].V=1 then
        RT[0:1] <- SLB[entry_index].B
        RT[2:51] <- SLB[entry_index].VSID
        RT[52] <- SLB[entry_index].Ks
        RT[53] <- SLB[entry_index].Kp
        RT[54] <- SLB[entry_index].N
        RT[55] <- SLB[entry_index].L
        RT[56] <- SLB[entry_index].C
        RT[57] <- 0b0
        RT[58:59] <- SLB[entry_index].LP
        RT[60:63] <- 0b0000
    else
        RT <- 0
    end if

Programming Note

This instruction is privileged. The use of the L field is implementation specific.

Example

slbmfev r3, r5

Encoding

Binary Layout
31
0
RT
6
/
11
RB
16
851
21
/
31
 
Format X-form
Opcode 0x7C00029E
Extension Privileged
Registers Altered LPCRUPRT

Operands

  • RT
    Target
  • RB
    Index
  • RS
    Source General Purpose Register