Array Instruction
These instructions convert three-dimensional (3D) fixed-point addresses to a blocked byte address.
Byte Mask and Shuffle InstructionsByte Mask instruction adds two integer registers and stores the result in the integer register. The least significant 32 bits of the result are stored in a special field. Byte Shuffle concatenates the two 64-bit floating-point registers to form a 16-byte value. Bytes in the concatenated value are numbered from most significant to least significant, with the most significant byte being byte 0.
Edge Handling InstructionsThese instructions handle the boundary conditions for parallel pixel scan line loops, where the address of the next pixel to render and the address of the last pixel in the scan line is provided.
Pixel Packing InstructionsThese instructions convert multiple values in asource register to alo wer precision fixed or pixel format and store the resulting values in the destination register. Input values are clipped to the dynamic range of the output format. Packing applies a scale factor to allow flexible positioning of the binary point.
Expand and Merge InstructionsExpand takes four 8-bit unsigned integers, converts each integer to a 16-bit fixed-point value, and stores the four resulting 16-bit values in a 64-bit floating-point register. Merge interleaves four corresponding 8-bit unsigned values to produce a 64-bit value in the 64-bit floating-point destination register. This instruction converts from packed to planar representation when it is applied twice in succession.
Pixel Distance InstructionEight unsigned 8-bit values are contained in the 64-bit floating-point source registers. The corresponding 8-bit values in the source registers are subtracted. The sum of the absolute value of each difference is added to the integer in the 64-bit floating-point destination register. The result is stored in the destination register. Typically, this instruction is used for motion estimation in video compression algorithms.
VIS Fixed-Point 16-bit and 32-bit Data InstructionsPartitioned Add and Subtract Instructions
The standard versions of these instructions perform four 16-bit or two 32-bit partitioned adds or subtracts between the corresponding fixed-point values contained in the source operands. The single-precision versions of these instructions perform two 16-bit or one 32-bit partitioned add(s) or subtract(s); only the low 32 bits of the destination register are affected.
Partitioned Multiply InstructionsThese instructions multiply signed and unsigned registers of different sizes and place the results in different types of destination registers.
Pixel Compare InstructionEither four 16-bit or two 32-bit fixed-point values in the 64-bit floating-point source registers are compared. The 4-bit or 2-bit results are stored in the least significant bits in the integer destination register. Signed comparisons are used.
VIS Logic InstructionsFill with Ones and Zeroes Instruction These instructions perform azero fill or aone fill.
Source CopyThese instructions perform asource copy.
AND, OR, NAND, NOR, and XNOR InstructionsThese instructions perform the logical operations.
Data Coherency InstructionsTwo forms of memory barrier (MEMBAR) instructions allow programs to manage the order and completion of memory references. Ordering MEMBARs induce a partial ordering between sets of loads and stores and future loads and stores. Sequencing MEMBARs exert explicit control over completion of loads and stores (or other instructions). Both barrier forms are encoded in a single instruction, with subfunctions bit encoded in an immediate field.
Store Barrier InstructionNote – STBARP is also supported, but this instruction is deprecated and should not be used in newly developed software.
Register Window Management InstructionsThe SAVE instruction allocates a new register window and saves the caller’s register window by incrementing the CWP register.
RESTORE Instruction
The RESTORE instruction restores the previous register window by decrementing the CWP register.
SAVEDP InstructionThe SAVED instruction is used by a spill trap handler to indicate that a window spill has completed successfully. It increments CANSAVE.
RESTOREDP InstructionThe RESTORED instruction is used by a fill trap handler to indicate that a window has been filled successfully. It increments CANRESTORE.
Flush Register Windows InstructionThe FLUSHW instruction cleans register windows of the data from other processes to insure asecure execution environment.