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
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