sleq (Shift Left 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 mask, and places the rotated word in the MQ Register and the masked result in another general-purpose register.
Note: The sleq instruction is supported only in the POWER® family architecture.
Syntax
Bits | Value |
---|---|
0 - 5 | 31 |
6 - 10 | RS |
11 - 15 | RA |
16 - 20 | RB |
21 - 30 | 217 |
31 | Rc |
Description
The sleq instruction rotates the contents of the source general-purpose register (GPR) RS left N bits, where N is the shift amount specified in bits 27-31 of GPR RB. The instruction merges the rotated word with the contents of the MQ Register under control of a mask, and stores the rotated word in the MQ Register and merged word in GPR RA. The mask consists of 32 minus N ones followed by N zeros.
The sleq instruction has two syntax forms. Each syntax form has a different effect on Condition Register Field 0.
Item | Description | |||
---|---|---|---|---|
Syntax Form | Overflow Exception (OE) | Fixed-Point Exception Register | Record Bit (Rc) | Condition Register Field 0 |
sleq | None | None | 0 | None |
sleq. | None | None | 1 | LT,GT,EQ,SO |
The two syntax forms of the sleq 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
Item | Description |
---|---|
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
- The following code rotates the contents of GPR 4
to the left by 4 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 3000. # Assume GPR 5 contains 0x0000 0004. # Assume the MQ Register contains 0xFFFF FFFF. sleq 6,4,5 # GPR 6 now contains 0x0003 000F. # The MQ Register now contains 0x0003 0009.
- The following code rotates the contents of GPR 4
to the left by 4 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 0xB004 3000. # Assume GPR 5 contains 0x0000 0004. # Assume the MQ Register contains 0xFFFF FFFF. sleq. 6,4,5 # GPR 6 now contains 0x0043 000F. # The MQ Register now contains 0x0043 000B. # Condition Register Field 0 now contains 0x4.