[ Previous | Next | Contents | Home | Search ]
AIX Version 4.3 Assembler Language Reference

sreq (Shift Right Extended with MQ) Instruction

Purpose

Rotates the contents of a general-purpose register to the left by a specified number of bits, merges the result with the contents of the MQ Register under control of a generated mask, and places the rotated word in the MQ Register and the merged result in another general-purpose register.

Note: The sreq instruction is supported only in the POWER architecture.

Syntax

POWER
sreq RA,RS,RB
sreq. RA,RS,RB

Description

The sreq instruction rotates the contents of the source general-purpose register (GPR) RS to the left by 32 minus N bits, where N is the shift amount specified in bits 27-31 of GPR RB, merges the rotated word with the contents of the MQ Register under a generated mask, and stores the rotated word in the MQ Register and the merged word in GPR RA. The mask consists of N zeros followed by 32 minus N ones.

The sreq instruction has two syntax forms. Each syntax form has a different effect on Condition Register Field 0.

Syntax Form Overflow Exception (OE) Fixed-Point Exception Register Record Bit (Rc) Condition Register Field 0
sreq None None 0 None
sreq. None None 1 LT,GT,EQ,SO

The two syntax forms of the sreq instruction never affect the Fixed-Point Exception Register. If the syntax form sets the Record (Rc) bit to 1, the instruction affects the Less Than (LT) zero, Greater Than (GT) zero, Equal To (EQ) zero, and Summary Overflow (SO) bits in Condition Register Field 0.

Parameters

RA Specifies target general-purpose register where result of operation is stored.
RS Specifies source general-purpose register for operation.
RB Specifies source general-purpose register for operation.

Examples

  1. The following code rotates the contents of GPR 4 to the left by 28 bits, merges the rotated data with the contents of the MQ Register under a generated mask, and places the rotated word in the MQ Register and the result in GPR 6:
    # Assume GPR 4 contains 0x9000 300F.
    # Assume GPR 7 contains 0x0000 0004.
    # Assume the MQ Register contains 0xEFFF FFFF.
    sreq 6,4,7
    # GPR 6 now contains 0xE900 0300.
    # The MQ Register now contains 0xF900 0300.
  2. The following code rotates the contents of GPR 4 to the left by 28 bits, merges the rotated data with the contents of the MQ Register under a generated mask, places the rotated word in the MQ Register and the result in GPR 6, and sets Condition Register Field 0 to reflect the result of the operation:
    # Assume GPR 4 contains 0xB00 300F.
    # Assume GPR 18 contains 0x0000 0004.
    # Assume the MQ Register contains 0xEFFF FFFF
    sreq. 6,4,18
    # GPR 6 now contains 0xEB00 0300.
    # The MQ Register now contains 0xFB00 0300.
    # Condition Register Field 0 now contains 0x8.

Related Information

Fixed-Point Processor.

Fixed-Point Rotate and Shift Instructions.


[ Previous | Next | Contents | Home | Search ]