PowerISA Instructions
1187 instructions - showing 100 per page, page 6 of 12 - click any row to view encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Extension | Summary |
|---|---|---|---|---|
| setb | setb RT, BFA | X-form | Base | Sets the target register based on the condition register field BFA. |
| setbc | setbc RT, BI | X-form | Base | Sets RT to 1 if CR bit is set, else 0. (Branchless logic). |
| setbcr | setbcr RT, BI | X-form | Base | Sets RT to 1 if CR bit is clear, else 0. |
| setnbc | setnbc RT, BI | X-form | Base | Sets RT to -1 if CR bit is set, else 0. |
| setnbcr | setnbcr RT, BI | X-form | Base | Sets RT to -1 if CR bit is clear, else 0. |
| slbfee. | slbfee. RT,RB | X-form | Base | Searches the SLB for an entry that matches the effective address specified by register RB. |
| slbia | slbia IH | X-form | Privileged | Invalidates all Segment Lookaside Buffer entries (OS Management). |
| slbiag | slbiag RS,L | X-form | Base | Invalidates all SLBs for a specified LPID and PID. |
| slbie | slbie RB | X-form | Privileged | Invalidates an SLB entry. Critical for memory management on Power systems. |
| slbieg | slbieg RS,RB | X-form | Base | Invalidates SLB entries based on the contents of registers RS and RB. |
| slbmfee | slbmfee RT, RB | X-form | Privileged | Reads the ESID part of an SLB entry. |
| slbmfev | slbmfev RT, RB | X-form | Privileged | Reads software-loaded SLB entries and places the contents of the B, VSID, Ks, Kp, N, L, C, and LP fields into register RT. |
| slbmte | slbmte RS, RB | X-form | Privileged | Writes an SLB entry (Mapping effective to virtual address). |
| slbsync | slbsync | X-form | Privileged | Provides an ordering function for the effects of all slbieg and slbiag instructions executed by the thread executing the slbsync instruction. |
| sld | sld RA, RS, RB | X-form | Base | Shifts a 64-bit register left by the amount specified in RB. |
| slw | slw RT,RA,RB | X-form | Base | Shifts a 32-bit register left by the amount specified in RB. |
| slw. | slw. RT,RA,RB | XO-form | Base | Shifts the contents of a register left by a specified number of bits and updates the condition register. |
| srad | srad RA, RS, RB | X-form | Base | Arithmetic right shift of 64-bit value (preserves sign). |
| srad. | srad. RT,RA,RB | X-form | Base | Shifts the contents of a doubleword register right algebraically, shifting in sign bits. |
| sradi | sradi RA, RS, SH | XS-form | Base | Performs an arithmetic right shift on a 64-bit doubleword by a constant amount. |
| sraw | sraw RA, RS, RB | X-form | Base | Performs an arithmetic right shift (sign bit replicated) on a 32-bit word. Updates Carry (CA) if bits are shifted out. |
| srawi | srawi RA, RS, SH | X-form | Base | Shifts the contents of a register right by an immediate value and replicates the sign bit. |
| srd | srd RA, RS, RB | X-form | Base | Logical right shift of 64-bit value. |
| srw | srw RA, RS, RB | X-form | Base | Performs a logical right shift (zeros shifted in) on a 32-bit word. |
| stb | stb RS, D(RA) | D-form | Base | Stores the low 8 bits of a register to memory. |
| stbci | stbci RS, RA, RB | X-form | Base | Stores a byte bypassing the cache. |
| stbcix | stbcix RS,RA,RB | X-form | Base | Stores a byte from a register to memory with caching inhibited and guarded. |
| stbcx. | stbcx. RS, RA, RB | X-form | Base | Stores a byte from a register to memory if the reservation is valid and matches the address. |
| stbepx | stbepx RS, RA, RB | X-form | Embedded | Stores a byte using the External PID. |
| std | std RS, DS(RA) | DS-form | Base | Stores a 64-bit doubleword to memory. |
| stdbrx | stdbrx RS, RA, RB | X-form | Base | Swaps bytes and stores 64 bits. |
| stdci | stdci RS, RA, RB | X-form | Base | Stores a doubleword bypassing the cache. |
| stdcx. | stdcx. RS, RA, RB | X-form | Base | Stores a doubleword from a register to memory if the reservation is valid and matches the address used for the reservation. |
| stdi | stdi RS, RA, RB | X-form | Embedded | Stores a word and sends decoration sideband signals. |
| stdu | stdu RS,disp(RA) | DS-form | Base | Stores a doubleword from a register to memory and updates the base address register. |
| stdx | stdx RS,RA,RB | X-form | Base | Stores a doubleword from a register to memory using an indexed address. |
| stfd | stfd FRS,D(RA) | D-form | Floating-Point | Stores a double-precision floating-point value from a register to memory. |
| stfdp | stfdp FRSp,disp(RA) | DS-form | Floating-Point | Stores the contents of two floating-point registers into memory as a doubleword pair. |
| stfdux | stfdux FRS,RA,RB | X-form | Floating-Point | Stores the contents of a floating-point register into memory and updates the base address register. |
| stfs | stfs FRS,D(RA) | DS-form | Floating-Point | Stores a single-precision floating-point value from an FPR to memory. |
| stfsx | stfsx FRS,RA,RB | X-form | Floating-Point | Stores a single-precision floating-point value from a register to memory using an indexed address. |
| sth | sth RS, D(RA) | D-form | Base | Stores the high half of a doubleword from a register to memory. |
| sthbrx | sthbrx RS, RA, RB | X-form | Base | Swaps bytes and stores a halfword. |
| sthci | sthci RS, RA, RB | X-form | Base | Stores a halfword bypassing the cache. |
| sthcix | sthcix RT,RB,RA | X-form | Base | Stores a halfword from a general-purpose register to memory, with caching inhibited. |
| sthcx. | sthcx. RS, RA, RB | X-form | Base | Stores a halfword from a register to memory conditionally based on a reservation. |
| sthep | sthepx RS, RA, RB | X-form | Embedded | Stores a halfword using the External PID. |
| stmw | stmw RT, D(RA) | D-form | Base | Stores words from registers RT through R31 to memory (Context Switch). |
| stop | stop | X-form | Privileged | Stops instruction execution and enters a power-saving state (replaces nap/doze on P9+). |
| stq | stq RSp, DQ(RA) | DQ-form | Base | Stores a quadword from two general-purpose registers into memory. |
| stqcx. | stqcx. RS, RA, RB | X-form | Base | Stores a quadword from a register to memory if a reservation exists and the conditions are met. |
| stswi | stswi RT, RA, NB | X-form | Base | Stores a string of words from general-purpose registers to memory, starting at the address in RA and using an immediate byte count. |
| stswx | stswx RT, RA, RB | X-form | Base | Stores N bytes to memory (N in XER). |
| stvebx | stvebx VRS,RA,RB | X-form | VMX (AltiVec) | Stores a byte element from a vector register into memory. |
| stvehx | stvehx VRS,RA,RB | X-form | VMX (AltiVec) | Stores a halfword element from a vector register to memory. |
| stvx | stvx vS, RA, RB | X-form | VMX (AltiVec) | Stores a quadword from a vector register to memory at an address formed by adding two general-purpose registers. |
| stvxl | stvxl VS,RA,RB | X-form | Base | Stores a vector element to memory, with the last element being stored if the index is out of bounds. |
| stw | stw RS, D(RA) | D-form | Base | Stores the low 32 bits of a register to memory. |
| stwat | stwat RS,RA,FC | X-form | Base | Stores a word atomically to memory. |
| stwbrx | stwbrx RS, RA, RB | X-form | Base | Swaps bytes and stores a word. |
| stwci | stwci RS, RA, RB | X-form | Base | Stores a word bypassing the cache. |
| stwcix | stwcix RS,RA,RB | X-form | Base | Stores a word from a source register to memory with caching inhibited. |
| stwcx. | stwcx. RS, RA, RB | X-form | Base | Stores a word from a register to memory if the reservation is valid and matches the address used in the corresponding lwarx instruction. |
| stwepx | stwepx RS, RA, RB | X-form | Embedded | Stores a word using the External PID. |
| stxsd | stxsd VRS,disp(RA) | DS-form | VSX | Stores the contents of doubleword element 0 of VSR[XS] to memory. |
| stxsdx | stxsdx XS,RA,RB | X-form | VSX | Stores a doubleword from a VSX scalar register to memory. |
| stxsibx | stxsibx XS,RA,RB | X-form | VSX | Stores a byte from a VSX scalar register into memory at an address formed by adding two general-purpose registers. |
| stxsiwx | stxsiwx XS, RA, RB | XX1-form | VSX | Stores a single-precision floating-point value from a VSX register into memory, indexed by another register. |
| stxssp | stxssp VRS,disp(RA) | DS-form | VSX | Stores a single-precision floating-point value from a VSX register to memory. |
| stxsspx | stxsspx XS,RA,RB | X-form | VSX | Stores a single-precision floating-point value from a VSX register to memory. |
| stxv | stxv XS, DQ(RA) | DQ-form | VSX | Stores a 128-bit vector to memory (VSX aligned offset). |
| stxvb16x | stxvb16x XS,RA,RB | X-form | VSX | Stores a vector of 16 byte elements from VSR[XS] into Big-Endian storage using stxvb16x, retaining left-to-right element ordering. |
| stxvd2x | stxvd2x XS, RA, RB | XX1-form | VSX | Stores a 128-bit VSX register to memory. Does NOT require alignment. |
| stxvh8x | stxvh8x XS,RA,RB | X-form | VSX | Stores a vector of 8 halfword elements from VSR[X] into memory using indexed addressing. |
| stxvl | stxvl XS, RA, RB | XX1-form | VSX | Stores a specified number of bytes from a VSX vector register to memory. |
| stxvll | stxvll XS,RA,RB | X-form | VSX | Stores a left-justified vector from a VSX register to memory. |
| stxvp | stxvp XS, DQ(RA) | DQ-form | VSX | Stores a pair of VSX vector registers to memory. |
| stxvpx | stxvpx XSp,RA,RB | X-form | VSX | Stores a vector from two VSR registers into memory at the effective address. |
| stxvrbx | stxvrbx XS,RA,RB | X-form | VSX | Stores the rightmost byte of a VSX vector element to memory. |
| stxvrdx | stxvrdx VX,RA,RB | X-form | VSX | Stores the rightmost doubleword of a VSX vector register to memory. |
| stxvrhx | stxvrhx XS,RA,RB | X-form | VSX | Stores the rightmost halfword of a VSX vector element to memory. |
| stxvw4x | stxvw4x XS, RA, RB | XX1-form | VSX | Stores four words from a vector (unaligned). |
| stxvx | stxvx xW,r0,rPW | X-form | VSX | Stores a vector element from the VSX register file to memory. |
| subf | subf RT,RA,RB | D-form | Base | Subtracts the contents of register RA from register RB and places the result in RT. |
| subf. | subf. RT,RA,RB | D-form | Base | Subtracts the contents of register RA from register RB and places the result in RT. |
| subfc. | subfc. RT,RA,RB | XO-form | Base | Subtracts the contents of one register from the complement of another and updates the carry-out flag. |
| subfo | subfo RT,RA,RB | D-form | Base | Subtracts the contents of register RA from register RB and places the result in RT. |
| subfo. | subfo. RT,RA,RB | D-form | Base | Subtracts the contents of register RA from register RB and places the result in RT. |
| sync | sync L,SC | X-form | Base | Ensures that all instructions preceding the sync instruction have completed before the sync instruction completes, and no subsequent instructions are initiated until after the sync instruction completes. |
| tabort. | tabort. RA | X-form | Transactional Memory | Forces a transaction failure and rollback. |
| tabortdc | tabortdc TO, RA, RB | X-form | Transactional Memory | Aborts a transaction if the condition is met (Doubleword comparison). |
| tabortdci | tabortdci TO, RA, SI | X-form | Transactional Memory | Aborts transaction if doubleword condition (Immediate) is met. |
| tabortwc | tabortwc TO, RA, RB | X-form | Transactional Memory | Aborts a transaction if the condition is met (Word comparison). |
| tabortwci | tabortwci TO, RA, SI | X-form | Transactional Memory | Aborts transaction if word condition (Immediate) is met. |
| tbegin. | tbegin. R | X-form | Transactional Memory | Initiates a hardware transaction. If the transaction fails, execution rolls back to this point. Sets CR0 based on success/failure. |
| tcheck | tcheck BF | X-form | Transactional Memory | Checks transaction status and updates CR. |
| td | td TO, RA, RB | X-form | Base | Traps if condition (comparison of doublewords) is met. |
| tdi | tdi TO, RA, SIM | D-form | Base | Compares the contents of a register with an immediate value and invokes a trap handler if specified conditions are met. |
| tend. | tend. A | X-form | Transactional Memory | Commits the current hardware transaction. If successful, memory changes become visible atomically. |
| tlbia | tlbia | X-form | Privileged | Invalidates the entire Translation Lookaside Buffer. |