处理器系列之PowerPC指令集

嵌入式系统 时间:2018-01-12来源:网络

  PowerPC 应用级指令集

  表 1 列出了不同的指令类别以及每类的指令类型。

  表 1. 指令类别

    

 

    

 

  指令解析

  所有指令的编码长度都是 32 位。PowerPC 的位编号方式与大部分其他定义相反:第 0 位是最重要的位,第 31 位是最不重要的位。指令首先由一个字段中较高的 6 位进行解码,这 6 位称为 主要操作码(primary opcode)。其余 26 位包含的字段分别是操作数说明、立即(immediate)操作数以及扩展的操作码(opcode),而且这些还可能是保留的位或字段。表 2 列出了 PowerPC 定义的基本指令格式。

  表 2. PowerPC 指令格式

    

 

  D-form

  这一指令格式提供至多两个寄存器作为源操作数,一个立即源,至多两个寄存器作为目的操作数。这一指令格式的一些变种使用部分目的和源寄存器操作数说明符作为立即字段或作为扩展的操作码。

  X-form

  这一指令格式提供至多两个寄存器作为源操作数,至多两个目的操作数。这一指令格式的一些变种使用部分目的和源寄存器操作数说明符作为立即字段或作为扩展的操作码。

  A-form

  这一指令格式提供至多三个寄存器作为源操作数,以及一个目的操作数。这一指令格式的一些变种使用部分目的和源寄存器操作数说明符作为立即字段或作为扩展的操作码。

  BD-form

  条件转移指令使用的是这一指令格式。BO 指令字段指定了条件的类型;BI 指令字段指定了以哪个 CR 位作为条件;BD 字段用作转移位置。AA 位指定了转移是绝对转移还是相对转移。换名话说,转移目标地址是立即字段的值,还是立即字段的值与转移地址的和。LK 位指定了下一个顺序指令的地址是否作为子例程调用的返回地址保存在链接寄存器中。

  I-form

  无条件转移指令使用这一指令格式。由于是无条件的,BD 格式中的 BO 和 BI 字段改变为另外的转移位置,以构成 LI 指令字段。同 BD 格式一样,这一指令格式也支持 AA 和 LK 位。

  如前所述,这些指令格式各有其变种。不过,这些格式是对大部分 PowerPC 指令集编码结构的最好描述。

  转移指令

  PowerPC 为控制流程提供了一组指令,包括:

  条件和无条件转移指令。

  “递减计数和如果是零或者非零时转移”的能力。

  绝对转移和相对转移。

  使用链接寄存器或计数寄存器来指定转移目标地址的转移指令。

  所有的转移指令都具备保存后继顺序指令地址的能力,包括到链接寄存器的转移。条件寄存器 32 位中的任意一位都可以指定为条件转移的条件,并可以指定 CR 位是否必须为 0 或 1 时转移条件才成立。

  条件寄存器指令

  PowerPC 提供了一组用于对 CR 的特定位执行布尔操作和对 CR 字段进行拷贝的指令。它允许组合多个转移条件,这样可以减少代价高昂的条件转移的数量。表 3 列出了 PowerPC CR 逻辑指令。

1 2 3 4

关键词: 处理器 PowerPC

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章


用户评论

请文明上网,做现代文明人
验证码:
查看电脑版