maskg (掩码生成) 指令
用途
生成一个 1 和 0 的掩码,并将其装入到通用寄存器中。
注: 仅在 POWER ® 系列体系结构中支持 maskg 指令。
语法
| 位数 | VALUE |
|---|---|
| 0 - 5 | 31 |
| 6 - 10 | RS |
| 11 - 15 | 亚美尼亚共和国 |
| 16 - 20 | 经常预算 |
| 21 - 30 | 29 |
| 31 | Rc |
描述
maskg 指令从由通用寄存器 (GPR) RS 的第 27-31 位定义的起始点到由 GPR RB 的第 27-31 位定义的结束点生成掩码,并将该掩码存储在 GPR RA中。
使用 maskg 指令时,请考虑以下事项:
- 如果起始点位小于结束点位 + 1 ,那么将起始点和结束点之间的位 (包括起始点和结束点) 设置为 1。 所有其他位都设置为 0。
- 如果起点位与终点位 + 1 相同,那么所有 32 位都将设置为 1。
- 如果起始点位大于端点位 + 1 ,那么将端点位 + 1 和起始点位-1 之间的所有位 (包括端点位 + 和起始点位-) 设置为零。 所有其他位都设置为 1。
maskg 指令有两种语法形式。 每种语法形式对条件寄存器字段 0 都有不同的影响。
| 项 | 描述 | |||
|---|---|---|---|---|
| 语法表单 | 溢出 异常 (OE) | 固定点 异常寄存器 | 记录 位 (RC) | 条件 注册字段 0 |
| 面罩 | 无 | 无 | 0 | 无 |
| maskg。 | 无 | 无 | 1 | LT ,GT, EQ 和 SO |
maskg 指令的两种语法形式从不影响定点异常寄存器。 如果语法格式将记录 (Rc) 位设置为 1 ,那么指令会影响条件寄存器字段 0 中的 "小于 (LT) 0" , "大于 (GT) 0" , "等于 (EQ) 0" 和 "摘要溢出 (SO)" 位。
参数
| 项 | 描述 |
|---|---|
| RA | 指定存储操作结果的目标通用寄存器。 |
| RS | 指定用于启动掩码的源通用寄存器。 |
| 经常预算 | 指定掩码结束的源通用寄存器。 |
示例
- 以下代码生成 5 个掩码并将结果存储在 GPR 6 中:
# Assume GPR 4 contains 0x0000 0014. # Assume GPR 5 contains 0x0000 0010. maskg 6,5,4 # GPR 6 now contains 0x0000 F800. - 以下代码生成 6 零的掩码,其余位设置为 1 ,将结果存储在 GPR 6 中,并设置 "条件寄存器字段" 0 以反映操作结果:
# Assume GPR 4 contains 0x0000 0010. # Assume GPR 5 contains 0x0000 0017. # Assume CR = 0. maskg. 6,5,4 # GPR 6 now contains 0xFFFF 81FF. # CR now contains 0x8000 0000.