PowerISA Instructions
1187 instructions - showing 100 per page, page 2 of 12 - click any row to view encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Extension | Summary |
|---|---|---|---|---|
| dcffix | dcffix FRT, FRB | X-form | Decimal Floating-Point | Converts a 64-bit integer to DFP. |
| dcffixq | dcffixq vD, vB | X-form | Decimal Floating-Point | Converts 64-bit integer to 128-bit DFP. |
| dcffixqq | dcffixqq RT,RA | X-form | Floating-Point | Converts a double-precision floating-point value to a quadword integer. |
| dcmpo | dcmpo BF, FRA, FRB | X-form | Decimal Floating-Point | Compares two decimal floating-point operands and updates the condition register. |
| dcmpoq | dcmpoq BF, vA, vB | X-form | Decimal Floating-Point | Compares two DFP values and sets the condition register based on their order. |
| dcmpu | dcmpu BF, FRA, FRB | X-form | Decimal Floating-Point | Compares two DFP operands and sets the CR field to indicate the result. |
| dcmpuq | dcmpuq BF, vA, vB | X-form | Decimal Floating-Point | Compares two 128-bit DFP numbers (Non-signaling). |
| dcread | dcread RT, RA, RB | X-form | Embedded | Reads a data cache tag or data (Debug). |
| dctdp | dctdp FRT, FRB | X-form | Decimal Floating-Point | Converts DFP Short (32-bit compressed) to DFP Long (64-bit). |
| dctfix | dctfix FRT,FRB | X-form | Decimal Floating-Point | Converts a decimal floating-point number to a fixed-point integer. |
| dctfix. | dctfix. FRT,FRB | X-form | Decimal Floating-Point | Converts a decimal floating-point number to a fixed-point integer. |
| dctfixq | dctfixq vD, vB | X-form | Decimal Floating-Point | Converts 128-bit DFP to 64-bit integer. |
| dctqpq | dctqpq vD, FRB | X-form | Decimal Floating-Point | Converts DFP Long (64-bit) to DFP Quad (128-bit). |
| ddedpd | ddedpd SP,FRT,FRB | X-form | Decimal Floating-Point | Converts a portion of the significand of a DFP operand to a signed or unsigned BCD number. |
| ddedpd. | ddedpd. SP,FRT,FRB | X-form | Decimal Floating-Point | Converts a portion of the significand of a DFP operand to a signed or unsigned BCD number. |
| ddedpdq | ddedpdq vD, vB, SP | X-form | Decimal Floating-Point | Decodes BCD to 128-bit DFP. |
| ddiv | ddiv FRT,FRA,FRB | X-form | Decimal Floating-Point | Divides the contents of two decimal floating-point registers and places the result in a target register. |
| ddiv. | ddiv. FRT,FRA,FRB | X-form | Decimal Floating-Point | Divides the contents of two decimal floating-point registers and places the result in a target register. |
| ddivq | ddivq vD, vA, vB | X-form | Decimal Floating-Point | Divides two 128-bit DFP numbers. |
| denbcd | denbcd FRT, FRB, S | X-form | Decimal Floating-Point | Encodes a DFP number into BCD format. |
| denbcdq | denbcdq vD, vB, S | X-form | Decimal Floating-Point | Encodes 128-bit DFP to BCD. |
| diex | diex FRT, FRA, FRB | X-form | Decimal Floating-Point | Combines a sign/coefficient from FRA and exponent from FRB. |
| diexq | diexq vD, vA, vB | X-form | Decimal Floating-Point | Inserts exponent into 128-bit DFP. |
| diexq. | diexq. RT,RA,RB | X-form | Decimal Floating-Point | Inserts the biased exponent from a source register into a destination register in quad format. |
| divd | divd RT,RA,RB | XO-form | Base | Divides the contents of two registers and places the quotient into a target register. |
| divde | divde RT, RA, RB | XO-form | Base | Divides the contents of two registers and updates the condition register. |
| divdeu | divdeu RT, RA, RB | XO-form | Base | 64-bit extended unsigned division. |
| divdu | divdu RT, RA, RB | XO-form | Base | Divides the 64-bit value in RA by the 64-bit value in RB (Unsigned). |
| divsq | divsq vD, vA, vB | VX-form | Base | Divides a 128-bit signed integer by a 128-bit signed integer (using VSX pairs). |
| divuq | divuq vD, vA, vB | VX-form | Base | Divides a 128-bit unsigned integer by a 128-bit unsigned integer. |
| divw | divw RT, RA, RB | XO-form | Base | Divides the contents of two registers and places the quotient into a target register. |
| divwe | divwe RT, RA, RB | XO-form | Base | Performs a signed division of a 64-bit dividend by a 32-bit divisor and places the result in a 32-bit register. |
| divweu | divweu RT, RA, RB | XO-form | Base | Performs an unsigned division of a 64-bit dividend by a 32-bit divisor and returns the quotient in a 32-bit register. |
| divwu | divwu RT, RA, RB | XO-form | Base | Divides the lower 32 bits of RA by the lower 32 bits of RB (Unsigned). |
| dmul | dmul FRT,FRA,FRB | X-form | Decimal Floating-Point | Multiplies the contents of two DFP registers and places the result in another DFP register. |
| dmul. | dmul. FRT,FRA,FRB | X-form | Decimal Floating-Point | Multiplies the contents of two DFP registers and places the result in another DFP register. |
| dmulq | dmulq vD, vA, vB | X-form | Decimal Floating-Point | Multiplies two 128-bit DFP numbers. |
| dqua | dqua FRT,FRA,FRB,RMC | X-form | Decimal Floating-Point | Adjusts the exponent of a DFP number to match a reference. Critical for aligning decimal points before addition. |
| dqua. | dqua. FRT,FRA,FRB,RMC | X-form | Decimal Floating-Point | Adjusts the exponent of a DFP number to match a reference. Critical for aligning decimal points before addition. |
| dquai | dquai TE,FRT,FRB,RMC | Z23-form | Decimal Floating-Point | Adjusts the value to a form having the specified exponent in the range -16 to 15. |
| dquai. | dquai. TE,FRT,FRB,RMC | Z23-form | Decimal Floating-Point | Quantizes a DFP value to an immediate number of decimal digits. |
| dquaq | dquaq vD, vA, vB | X-form | Decimal Floating-Point | Adjusts exponent of 128-bit DFP number. |
| drdpq | drdpq FRT, vB | X-form | Decimal Floating-Point | Rounds DFP Quad (128-bit) to DFP Long (64-bit). |
| drintn | drintn R,FRT,FRB,RMC | Z23-form | Decimal Floating-Point | Rounds a decimal floating-point number to an integer without recognizing an inexact exception. |
| drintn. | drintn. R,FRT,FRB,RMC | Z23-form | Decimal Floating-Point | Rounds a decimal floating-point number to an integer without recognizing an inexact exception. |
| drintx | drintx R,FRT,FRB,RMC | Z23-form | Decimal Floating-Point | Rounds a decimal floating-point number to the nearest integer and places it into a floating-point register. |
| drintx. | drintx. R,FRT,FRB,RMC | Z23-form | Decimal Floating-Point | Rounds a decimal floating-point number to the nearest integer and places it into a floating-point register. |
| drrnd | drrnd FRT,FRA,FRB,RMC | Z23-form | Decimal Floating-Point | Rounds a decimal floating-point value to the specified number of significant digits. |
| drrnd. | drrnd. FRT,FRA,FRB,RMC | Z23-form | Decimal Floating-Point | Rerounds a decimal floating-point number to the specified precision. |
| drrndq | drrndq vD, vA, vB | X-form | Decimal Floating-Point | Rerounds a 128-bit DFP number to fewer digits. |
| drsp | drsp FRT,FRB | X-form | Decimal Floating-Point | Rounds DFP Long (64-bit) to DFP Short (32-bit compressed). |
| drsp. | drsp. FRT,FRB | X-form | Decimal Floating-Point | Rounds DFP Long (64-bit) to DFP Short (32-bit compressed). |
| dscli | dscli FRT,FRA,SH | Z23-form | Decimal Floating-Point | Shifts the significand of a DFP operand left by a specified number of digits. |
| dsri | dsri FRT, FRA, SH | Z23-form | Decimal Floating-Point | Shifts the coefficient of a DFP number right. |
| dss | dss STRM | X-form | Base | Stops a data stream prefetch operation. |
| dssall | dssall | X-form | Base | Stops all active data stream prefetch operations. |
| dst | dst RA, RB, STRM | X-form | Base | Initiates a hardware data stream prefetch (AltiVec Legacy). |
| dstst | dstst RA, RB, STRM | X-form | Base | Initiates a prefetch for writing. |
| dststt | dststt RA, RB, STRM | X-form | Base | Initiates a transient prefetch for writing. |
| dstt | dstt RA, RB, STRM | X-form | Base | Initiates a transient (non-temporal) data stream prefetch. |
| dsub | dsub FRT,FRA,FRB | X-form | Decimal Floating-Point | Subtracts the contents of two DFP registers and places the result in another DFP register. |
| dsubq | dsubq vD, vA, vB | X-form | Decimal Floating-Point | Subtracts two 128-bit DFP numbers. |
| dtstdc | dtstdc BF,FRA,DCM | Z22-form | Decimal Floating-Point | Tests the data class of a DFP operand and sets the CR field. |
| dtstex | dtstex BF,FRA,FRB | X-form | Decimal Floating-Point | Compares the exponent values of two DFP operands and updates CR field BF and FPCC. |
| dtstsf | dtstsf BF,FRA,FRB | X-form | Decimal Floating-Point | Tests the significance of a DFP value in FPR[FRB] against a reference significance. |
| dtstsfi | dtstsfi BF, U, FRB | X-form | Decimal Floating-Point | Tests the significance of a decimal floating-point value in FPR[FRB] against an immediate value UIM. |
| dtstsfiq | dtstsfiq BF, U, FRB | X-form | Decimal Floating-Point | Tests DFP Quad significance. |
| dxex | dxex FRT,FRB | X-form | Decimal Floating-Point | Extracts the biased exponent of a DFP operand in FRB and places it into FRT. |
| dxex. | dxex. FRT,FRB | X-form | Decimal Floating-Point | Extracts the biased exponent of a DFP operand in FRB and places it into FRT. |
| dxexq | dxexq vD, vB | X-form | Decimal Floating-Point | Extracts exponent from 128-bit DFP. |
| eciwx | eciwx RT, RA, RB | X-form | Base | Loads a word from an external device using the EAR register. |
| ecowx | ecowx RS, RA, RB | X-form | Base | Stores a word to an external device using the EAR register. |
| ehpriv | ehpriv OC | X-form | Embedded | Enters embedded hypervisor privileged state. |
| eieio | eieio | X-form | Base | Ensures that load/store instructions preceding the EIEIO complete before those following it. Used for Memory-Mapped I/O synchronization. |
| eqv | eqv RA, RS, RB | X-form | Base | Bitwise Equivalence (XNOR). RA = ~(RS ^ RB). |
| extldi | extldi ra,rs,n,b (n > 0) | XO-form | Base | Extracts a field of n bits starting at bit position b in the source register, left justifies this field in the target register, and clears all other bits of the target register to 0. |
| extlwi | extlwi ra,rs,n,b (n > 0) | XO-form | Base | Extracts a specified number of bits from the source register, left-justifies them, and places them in the target register. |
| extsb | extsb RT,RS | X-form | Base | Sign extends the low byte of a register to the full width. |
| extsb. | extsb. RT,RS | X-form | Base | Sign extends the low byte of a register to the full width. |
| extsh | extsh RA, RS | X-form | Base | Sign extends the low halfword. |
| extsw | extsw RT,RS | X-form | Base | Sign extends the low word (32-bit) to 64 bits. |
| extsw. | extsw. RT,RS | X-form | Base | Sign extends the low word (32-bit) to 64 bits. |
| extswsli | extswsli RA,RS,SH | XS-form | Base | Sign-extends the low-order 32 bits of a register, shifts it left by SH bits, and places the result in another register. |
| fabs | fabs FRT, FRB | X-form | Floating-Point | Computes absolute value of a float. |
| fadd | fadd FRT,FRA,FRB | A-form | Floating-Point | Adds the contents of two floating-point registers and places the result into another register. |
| fadd. | fadd. FRT,FRA,FRB | A-form | Floating-Point | Adds the contents of two floating-point registers and places the result into another register. |
| fcfid | fcfid FRT,FRB | X-form | Floating-Point | Converts a signed doubleword integer to a double-precision floating-point number. |
| fcfid. | fcfid. FRT,FRB | X-form | Floating-Point | Converts a signed doubleword integer to a double-precision floating-point number. |
| fcfids | fcfids FRT,FRB | X-form | Floating-Point | Converts a 64-bit signed fixed-point operand in register FRB to single-precision floating-point. |
| fcfids. | fcfids. FRT,FRB | X-form | Floating-Point | Converts a 64-bit signed fixed-point operand in register FRB to single-precision floating-point. |
| fcfidu | fcfidu FRT, FRB | X-form | Floating-Point | Converts 64-bit Unsigned Int to Double. |
| fcfidus | fcfidus FRT, FRB | X-form | Floating-Point | Converts 64-bit Unsigned Int to Single. |
| fcfidus. | fcfidus. FRT,FRB | X-form | Floating-Point | Converts an unsigned doubleword integer in a floating-point register to a single-precision floating-point number, rounding the result. |
| fcmpu | fcmpu BF, FRA, FRB | X-form | Floating-Point | Compares two floating-point registers and sets the Condition Register (CR) field. Does not trap on NaNs. |
| fcpsgn | fcpsgn FRT, FRA, FRB | X-form | Floating-Point | Copies sign from FRB to FRA. |
| fcpsgn. | fcpsgn. FRT,FRB,FRA | X-form | Floating-Point | Copies the sign of one floating-point number to another. |
| fctid | fctid FRT, FRB | X-form | Floating-Point | Converts a double-precision floating-point value to a signed 64-bit integer using rounding. |
| fctidu | fctidu FRT,FRB | X-form | Floating-Point | Converts a double-precision floating-point value to an unsigned 64-bit integer using rounding. |
| fctidz | fctidz FRT, FRB | X-form | Floating-Point | Converts Double to 64-bit Int (Truncate). |
| fctiw | fctiw FRT,FRB | X-form | Floating-Point | Converts a float to a 32-bit signed integer (using the current rounding mode) and stores it in the lower half of the FPR. |