slbieg

SLB Invalidate Entry Global

slbieg RS,RB

Invalidates SLB entries based on the contents of registers RS and RB.

Details

The slbieg instruction invalidates SLB entries for threads running on behalf of a target LPID and PID, based on the class value and segment size specified in register RB. Software-created entries are not invalidated.

Pseudocode Operation

target_PID = RS0:31
if MSRHV=1 then target_LPID = RS32:63
else target_LPID = LPIDR
ea0:35 ←(RB)0:35
for each thread with LPIDR=target_LPID and PIDR=target_PID
    if, for each SLB entry that translates or most recently translated ea,
        entry_class = (RB)36 and
        entry_seg_size = size specified in (RB)37:38
    then for SLB entry (if any) that translates ea and is not software-created
         SLBEV ←0
         all other fields of SLBE ←undefined
    else
         s ←log_base_2(entry_seg_size)
         esid ←(RB)0:63-s
         u ←undefined 1-bit value
         if u then
             if an SLB entry translates esid and the entry is not software-created
                 SLBEV ←0

Programming Note

slbieg does affect SLBs on other threads.

Example

slbieg r3, r5

Encoding

Binary Layout
0
0
RS
16
RB
21
466
31
 
Format X-form
Opcode 0x7C0003A4
Extension Base
Registers Altered LR,CTR,CR,FPSCR,XER,MSR,SRR0,SRR1,TAR,SPR,DSISR,DAR,HMER

Operands

  • RS
    Source General Purpose Register containing the target PID (and optionally the target LPID)
  • RB
    Source General Purpose Register containing the EA, class, and segment size