maskir (从寄存器插入掩码) 指令
用途
在位掩码的控制下将一个通用寄存器的内容插入到另一个通用寄存器中。
注: 马斯基尔 指令仅在 POWER ® 系列体系结构中受支持。
语法
| 位数 | VALUE |
|---|---|
| 0 - 5 | 31 |
| 6 - 10 | RS |
| 11 - 15 | RA |
| 16 - 20 | 经常预算 |
| 21 - 30 | 541 |
| 31 | Rc |
描述
马斯基尔 在 GPR 经常预算中的位掩码的控制下,将通用寄存器 (GPR) RS 的内容存储在 GPR RA 中。
按如下所示确定目标 GPR RA 中每个位的值:
- 如果掩码 GPR 经常预算 中的对应位为 1 ,那么目标 GPR RA 中的该位将被赋予源 GPR RS中对应位的值。
- 如果掩码 GPR 经常预算 中的相应位为 0 ,那么目标 GPR RA 中的位未更改。
马斯基尔 指令具有两种语法形式。 每个语法表单对条件寄存器字段 0 有不同的影响。
| 项 | 描述 | |||
|---|---|---|---|---|
| 语法表单 | 溢出 异常 (OE) | 固定点 异常寄存器 | 记录 位 (Rc) | 条件 注册字段 0 |
| 马斯基尔 | 无 | 无 | 0 | 无 |
| 马斯基尔 | 无 | 无 | 1 | LT , GT, EQ , SO |
马斯基尔 指令的两种语法形式从不影响 "定点异常寄存器"。 如果语法格式将记录 (Rc) 位设置为 1 , 1 指令会影响 "条件寄存器字段 0" 中的 "小于 (LT) 0" , "大于 (GT) 0" , "等于 (EQ) 0" 和 "汇总溢出 (SO)" 位。
参数
| 项 | 描述 |
|---|---|
| RA | 指定用于存储操作结果的目标通用寄存器。 |
| RS | 指定操作的源通用寄存器。 |
| 经常预算 | 指定位掩码的源通用寄存器。 |
示例
- 以下代码在 GPR 4 5 中的位掩码的控制下将 GPR 5 的内容插入 6 GPR 6 中:
# Assume GPR 6 (RA) target contains 0xAAAAAAAA.
# Assume GPR 4 (RB) mask contains 0x000F0F00.
# Assume GPR 5 (RS) source contains 0x55555555.
maskir 6,5,4
# GPR 6 (RA) target now contains 0xAAA5A5AA.
- 以下代码在 GPR 5 中的位掩码的控制下将 GPR 5 4 内容 6 GPR 6 中,并设置条件寄存器字段 0 以反映操作的结果:
# Assume GPR 6 (RA) target contains 0xAAAAAAAA.
# Assume GPR 4 (RB) mask contains 0x0A050F00.
# Assume GPR 5 (RS) source contains 0x55555555.
maskir. 6,5,4
# GPR 6 (RA) target now contains 0xA0AFA5AA.