srliq (使用 MQ的 Shift Right Long Immediate) 指令

用途

将通用寄存器的内容向左旋转指定的位数,将结果与 MQ 寄存器的内容在生成的掩码的控制下合并,并将结果放入另一个通用寄存器中。

注: srliq 指令仅在 POWER ® 系列体系结构中受支持。

语法

位数 VALUE
0 - 5 31
6 - 10 RS
11 - 15 亚美尼亚共和国
16 - 20 SH
21 - 30 760
31 Rc
POWER ® 系列 
RA RS SH
斯利格 RA RS SH

描述

srliq 指令将源通用寄存器 (GPR) RS 的内容向左旋转 32 位减去 N 位,其中 N 是由 SH指定的移位量,将结果与 MQ 寄存器的内容在生成的掩码的控制下合并,并将旋转后的字存储在 MQ 寄存器中,并将合并后的结果存储在 GPR RA中。 掩码由 N 个零后跟 32 减去 N 个零组成。

srliq 指令有两种语法形式。 每种语法形式对条件寄存器字段 0 都有不同的影响。

描述
语法表单 溢出 异常 (OE) 固定点 异常寄存器 记录 位 (RC) 条件 注册字段 0
0
斯利格 1 LT ,GT, EQ 和 SO

srliq 指令的两种语法形式从不影响定点异常寄存器。 如果语法格式将记录 (Rc) 位设置为 1 ,那么指令会影响条件寄存器字段 0 中的 "小于 (LT) 0" , "大于 (GT) 0" , "等于 (EQ) 0" 和 "摘要溢出 (SO)" 位。

参数

描述
RA 指定存储操作结果的目标通用寄存器。
RS 指定用于操作的源通用寄存器。
SH 指定轮班金额的值。

示例

  1. 以下代码将 GPR 4 的内容向左旋转 28 位,将旋转后的数据与 MQ 寄存器的内容合并到生成的掩码下,并将旋转后的字放在 MQ 寄存器中,并将结果放在 GPR 6 中:
    
    # Assume GPR 4 contains 0x9000 300F.
    # Assume the MQ Register contains 0x1111 1111.
    srliq 6,4,0x4
    # GPR 6 now contains 0x1900 0300.
    # The MQ Register now contains 0xF900 0300.
    
  2. 以下代码将 GPR 4 的内容向左旋转 28 位,将旋转后的数据与 MQ 寄存器的内容合并到生成的掩码下,将旋转后的字放在 MQ 寄存器中并将结果放在 GPR 6 中,并设置条件寄存器字段 0 以反映操作结果:
    
    # Assume GPR 4 contains 0xB004 3000
    # Assume the MQ Register contains 0xFFFF FFFF.
    srliq. 6,4,0x4
    # GPR 6 now contains 0xFB00 4300.
    # The MQ Register contains 0x0B00 4300.
    # Condition Register Field 0 now contains 0x8.