针对 POWER ® 系列和 PowerPC® 的 32 位旋转和移位扩展助记符

旋转和轮班指令的扩展助记符位于 POWER ® 系列和 PowerPC® 交叉区域中。

旋转和移位指令的扩展助记符位于 POWER ® 系列和 PowerPC® 交叉区域 (com 组装方式) 中。 一组旋转和移位扩展助记符提供了以下操作:

描述
抽取 选择源寄存器中从位位置 B 开始的 N 位的字段。 此字段在目标寄存器中为右对齐或左对齐。 目标寄存器的所有其他位将清除为 0。
插入 在源寄存器中选择一个左对齐或右对齐的 N 位字段。 此字段是从目标寄存器的位位置 B 开始插入的。 目标寄存器的其他位未更改。 在对双词进行操作时,未提供用于插入左对齐字段的扩展助记符,因为此类插入需要一个以上的指令。
旋转 在不屏蔽的情况下旋转寄存器右侧或左侧 N 位的内容。
Shift 将寄存器的内容向右或向左移动 N 位。 空位清除为 0 (逻辑移位)。
清除 将寄存器的最左边或最右边的 N 位清除为 0。
清除左移和左移 清除寄存器的最左边的 B 位,然后按 N 位来移动寄存器。 此操作可用于将已知的非负数组下标按元素的宽度进行缩放。

下表中显示了旋转和换档扩展助记符。 N 操作数指定要抽取,插入,旋转或移动的位的数量。 因为表达式是在扩展助记符映射到基本助记符时引入的,所以会施加某些限制以防止该表达式的结果导致 SHMBME 操作数中出现溢出。

为了保持与先前版本的 AIX®的兼容性, n 不限于值 0。 如果 N 为 0 ,那么汇编程序会将 32-N 视为值 0。

表 1。 针对 PowerPC® 的 32 位旋转和 Shift 扩展助记符
操作 扩展助记符 相当于 限制
抽取并左对齐立即执行 特德尔维 RA , RS , n , b rlwinm RA , RS , b , 0n-1 32 > N > 0
立即抽取并右对齐 外威 RA , RS , n , b 勒温姆 亚美尼亚共和国,塞尔维亚共和国, b+n , 32-n , 31 32 > N > 0 & B+N =< 32
从左立即插入 因斯利维 RA , RS , n , b 勒温姆 共和国管理局,塞尔维亚共和国, 32-b , b , (b + n)-1 B+N <=32 & 32>N > 0 & 32 > B >= 0
从右侧立即插入 因斯尔维 RA , RS , n , b 勒温姆 共和国管理局,塞尔维亚共和国, 32-(b + n) , b , (b + n))-1 B+N <= 32 & 32>N > 0
立即向左旋转 罗特勒维 RA , RS , n 勒温姆 RA , RS , n , 0, 31 32 > N >= 0
立即向右旋转 罗特维 RA , RS , n 勒温姆 共和国管理局,塞尔维亚共和国, 32-N, 0, 31 32 > N >= 0
向左旋转 罗特卢 亚美尼亚共和国,塞尔维亚共和国, b 勒温姆 共和国,共和国,经常预算, 0, 31
立即左移 斯卢维 RA , RS , n 勒温姆 RA , RS , n , 0, 31-N 32 > N >= 0
立即右移 斯尔维 RA , RS , n 勒温姆 共和国管理局,塞尔维亚共和国, 32-n , n, 31 32 > N >= 0
立即清除左 克莱尔维 RA , RS , n 勒温姆 共和国管理局,塞尔维亚共和国, 0, n , 31 32 > N >= 0
立即清除右侧 克莱尔维 RA , RS , n 勒温姆 共和国管理局,塞尔维亚共和国, 0, 0, 31-N 32 > N >= 0
清除左移并立即移动 克勒斯尔维 RA , RS , b , n 勒温姆 RA , RS , b-n , 31-N B-N >= 0 & 32 > N >= 0 & 32 > B>= 0
注意:
  1. 在 POWER ® 系列中,助记符 斯卢维[.] 为 斯利[.]。 mnemonic 斯尔维[.] 为 斯里[.]。
  2. 所有这些扩展助记符都可以用 final 进行编码。 (句点) ,使 Rc 位在底层指令中被设置。