Base Instructions
278 PowerISA instructions in this extension - showing 78 per page, page 3 of 3 - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| rfebb | rfebb S | XL-form | Returns control to the address specified by EBBRR0:61 || 0b00 or 320 || EBBRR32:61 || 0b00, depending on MSRSF. |
| rldcr | rldcr RT,RS,RB,ME | MDS-form | Rotates the contents of register RS left by a variable number of bits specified by (RB)58:63, and clears the rightmost bits. |
| rldcr. | rldcr. RT,RS,RB,ME | MDS-form | Rotates the contents of register RS left by a variable number of bits specified by (RB)58:63, and clears the rightmost bits. |
| rldic | rldic RT,RA,RB,MB | MD-form | Rotates a 64-bit register left, then clears bits based on a mask. 64-bit equivalent of rlwinm. |
| rldic. | rldic. RT,RA,RB,MB | MD-form | Rotates a 64-bit register left, then clears bits based on a mask. 64-bit equivalent of rlwinm. |
| rldicl | rldicl RA, RS, SH, MB | MD-form | Rotates the contents of a register left by a specified number of bits and clears higher-order bits. |
| rldicr | rldicr RA, RS, SH, ME | MD-form | Rotates 64-bit RS left by SH, then clears the low-order bits (ME+1 to 63). |
| rldimi | rldimi RA, RS, SH, MB | MD-form | Rotates 64-bit value and inserts into target under mask. |
| rlwimi | rlwimi RA, RS, SH, MB, ME | M-form | Rotates a word left, then inserts bits into the target under a mask. Used for inserting bitfields. |
| rlwinm | rlwinm RA,RS,SH,MB,ME | M-form | Rotates the low-order 32 bits of a register left by a specified number of bit positions, generates a mask, and performs an AND operation. |
| rlwinm. | rlwinm. RA,RS,SH,MB,ME | M-form | Rotates the low-order 32 bits of a register left by a specified number of bit positions, generates a mask, and performs an AND operation. |
| rlwnm | rlwnm RT,RS,RB,MB,ME | M-form | Rotates the contents of register RS left by the number of bits specified by (RB)59:63, and then performs a bitwise AND operation with a mask. |
| rlwnm. | rlwnm. RT,RS,RB,MB,ME | M-form | Rotates the contents of register RS left by the number of bits specified by (RB)59:63, and then performs a bitwise AND operation with a mask. |
| sc | sc LEV | SC-form | Provides the means by which a program can call upon the system to perform a service. |
| scv | scv LEV | SC-form | Performs a system call to a fixed vector address (Faster than 'sc'). |
| setb | setb RT, BFA | X-form | Sets the target register based on the condition register field BFA. |
| setbc | setbc RT, BI | X-form | Sets RT to 1 if CR bit is set, else 0. (Branchless logic). |
| setbcr | setbcr RT, BI | X-form | Sets RT to 1 if CR bit is clear, else 0. |
| setnbc | setnbc RT, BI | X-form | Sets RT to -1 if CR bit is set, else 0. |
| setnbcr | setnbcr RT, BI | X-form | Sets RT to -1 if CR bit is clear, else 0. |
| slbfee. | slbfee. RT,RB | X-form | Searches the SLB for an entry that matches the effective address specified by register RB. |
| slbiag | slbiag RS,L | X-form | Invalidates all SLBs for a specified LPID and PID. |
| slbieg | slbieg RS,RB | X-form | Invalidates SLB entries based on the contents of registers RS and RB. |
| sld | sld RA, RS, RB | X-form | Shifts a 64-bit register left by the amount specified in RB. |
| slw | slw RT,RA,RB | X-form | Shifts a 32-bit register left by the amount specified in RB. |
| slw. | slw. RT,RA,RB | XO-form | 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 | Arithmetic right shift of 64-bit value (preserves sign). |
| srad. | srad. RT,RA,RB | X-form | Shifts the contents of a doubleword register right algebraically, shifting in sign bits. |
| sradi | sradi RA, RS, SH | XS-form | Performs an arithmetic right shift on a 64-bit doubleword by a constant amount. |
| sraw | sraw RA, RS, RB | X-form | 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 | Shifts the contents of a register right by an immediate value and replicates the sign bit. |
| srd | srd RA, RS, RB | X-form | Logical right shift of 64-bit value. |
| srw | srw RA, RS, RB | X-form | Performs a logical right shift (zeros shifted in) on a 32-bit word. |
| stb | stb RS, D(RA) | D-form | Stores the low 8 bits of a register to memory. |
| stbci | stbci RS, RA, RB | X-form | Stores a byte bypassing the cache. |
| stbcix | stbcix RS,RA,RB | X-form | Stores a byte from a register to memory with caching inhibited and guarded. |
| stbcx. | stbcx. RS, RA, RB | X-form | Stores a byte from a register to memory if the reservation is valid and matches the address. |
| std | std RS, DS(RA) | DS-form | Stores a 64-bit doubleword to memory. |
| stdbrx | stdbrx RS, RA, RB | X-form | Swaps bytes and stores 64 bits. |
| stdci | stdci RS, RA, RB | X-form | Stores a doubleword bypassing the cache. |
| stdcx. | stdcx. RS, RA, RB | X-form | Stores a doubleword from a register to memory if the reservation is valid and matches the address used for the reservation. |
| stdu | stdu RS,disp(RA) | DS-form | Stores a doubleword from a register to memory and updates the base address register. |
| stdx | stdx RS,RA,RB | X-form | Stores a doubleword from a register to memory using an indexed address. |
| sth | sth RS, D(RA) | D-form | Stores the high half of a doubleword from a register to memory. |
| sthbrx | sthbrx RS, RA, RB | X-form | Swaps bytes and stores a halfword. |
| sthci | sthci RS, RA, RB | X-form | Stores a halfword bypassing the cache. |
| sthcix | sthcix RT,RB,RA | X-form | Stores a halfword from a general-purpose register to memory, with caching inhibited. |
| sthcx. | sthcx. RS, RA, RB | X-form | Stores a halfword from a register to memory conditionally based on a reservation. |
| stmw | stmw RT, D(RA) | D-form | Stores words from registers RT through R31 to memory (Context Switch). |
| stq | stq RSp, DQ(RA) | DQ-form | Stores a quadword from two general-purpose registers into memory. |
| stqcx. | stqcx. RS, RA, RB | X-form | Stores a quadword from a register to memory if a reservation exists and the conditions are met. |
| stswi | stswi RT, RA, NB | X-form | 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 | Stores N bytes to memory (N in XER). |
| stvxl | stvxl VS,RA,RB | X-form | 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 | Stores the low 32 bits of a register to memory. |
| stwat | stwat RS,RA,FC | X-form | Stores a word atomically to memory. |
| stwbrx | stwbrx RS, RA, RB | X-form | Swaps bytes and stores a word. |
| stwci | stwci RS, RA, RB | X-form | Stores a word bypassing the cache. |
| stwcix | stwcix RS,RA,RB | X-form | Stores a word from a source register to memory with caching inhibited. |
| stwcx. | stwcx. RS, RA, RB | X-form | Stores a word from a register to memory if the reservation is valid and matches the address used in the corresponding lwarx instruction. |
| subf | subf RT,RA,RB | D-form | Subtracts the contents of register RA from register RB and places the result in RT. |
| subf. | subf. RT,RA,RB | D-form | Subtracts the contents of register RA from register RB and places the result in RT. |
| subfc. | subfc. RT,RA,RB | XO-form | Subtracts the contents of one register from the complement of another and updates the carry-out flag. |
| subfo | subfo RT,RA,RB | D-form | Subtracts the contents of register RA from register RB and places the result in RT. |
| subfo. | subfo. RT,RA,RB | D-form | Subtracts the contents of register RA from register RB and places the result in RT. |
| sync | sync L,SC | X-form | 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. |
| td | td TO, RA, RB | X-form | Traps if condition (comparison of doublewords) is met. |
| tdi | tdi TO, RA, SIM | D-form | Compares the contents of a register with an immediate value and invokes a trap handler if specified conditions are met. |
| trap | trap | Pseudo | Unconditional trap. Forces an exception. (Encoded as tw 31, 0, 0). |
| tw | tw TO, RA, RB | X-form | Traps if condition (comparison of words) is met. |
| twi | twi TO, RA, SIM | D-form | Compares the contents of register RA with an immediate value and invokes the system trap handler if any specified condition is met. |
| vcmpgefp. | vcmpgefp. VRT, VRA, VRB | VC-form | Compares the elements of two vector registers and sets the result in a third vector register based on whether each element is greater than or equal to the corresponding element in the other vector. |
| wait | wait WC,PL | X-form | Stops instruction execution and places the processor in a lower power state until an interrupt occurs. |
| waitimpl | waitimpl | X-form | Waits for a specific implementation event. |
| waitrsv | waitrsv | X-form | Waits until a reservation is lost (Multithreading sync). |
| xor | xor RA, RS, RB | X-form | Performs a bitwise Exclusive OR comparison. |
| xori | xori RA, RS, UI | D-form | Performs a bitwise XOR with a 16-bit unsigned immediate. |
| xoris | xoris RA, RS, UI | D-form | Performs a bitwise XOR with a 16-bit immediate shifted left by 16 bits. |