具有相同操作码和功能的指令

POWER ® 系列和 PowerPC® 中提供的指示信息共享相同的操作码和功能,但具有不同的助记符和输入操作数格式。

下表中列出的指示信息在 POWER ® 系列和 PowerPC®中提供。 这些指令共享相同的操作码和函数,但具有不同的助记符和输入操作数格式。 由于生成的二进制代码相同,因此汇编程序仍将其置于 POWER®family/PowerPC®®交叉区。 如果使用 -s 选项,那么不会提供交叉引用,因为从 POWER ® 系列迁移到 PowerPC®时需要更改源代码,反之亦然。

表 1. 具有相同 Op 代码和功能的指示信息
POWER ® 系列 PowerPC®
cal addi
mtsri mtsrin
svca sc
cau addis
注意:
  1. lilcal的扩展助记符, liaddi的扩展助记符。 由于操作码,函数和输入操作数格式相同,因此汇编程序提供了 lilli的交叉引用。
  2. liucau的扩展助记符, lisaddis的扩展助记符。 由于输入操作数格式不同,因此汇编程序不会提供 liulis的交叉引用。
  3. cau 指令的直接值是 16 位无符号整数,而 addis 指令的直接值是 16 位有符号整数。 汇编程序对以下对象执行 (0 , 65535) 值范围检查:UI字段和 (-32768 , 32767) 值范围检查SI:NONE.

    为了保持 cauaddis 指令的源兼容性,汇编程序将 addis 指令的值范围检查扩展到 (-65536 , 65535)。 符号位被忽略,汇编程序仅确保立即值适合 16 位。 此扩展不会影响 32 位实现的行为。

    对于 64 位实现,如果设置了 32 位,那么将通过 64 位通用寄存器 (GPR) 的 32 位上限进行传播。 因此,如果在 32 位方式下将范围 (32768 , 65535) 或 (-65536 , -32767) 内的直接值用于 addis 指令,那么此直接值可能不会直接移植到 64 位方式。