Chinaunix首页 | 论坛 | 博客
  • 博客访问: 580069
  • 博文数量: 65
  • 博客积分: 2844
  • 博客等级: 上尉
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-02 12:01
文章分类

全部博文(65)

文章存档

2014年(7)

2012年(20)

2011年(35)

2010年(3)

分类: 嵌入式

2012-05-20 14:54:04

   4 X-Form类指令

E500内核中X-Form类指令的数量最多。D-Form类指令和DS-From类指令中的每一条指令对应一条在X-Form类指令中的指令。除此之外,X-Form类指令还有一些专用的指令。X-Form类指令格式如下:

 

0~5

6~10

11~15

16~20

21~30

31

OPCD

RS/RT

RA

RB

XO

Rc

 

RBRS字段存放源操作数寄存器的索引,RT字段存放目的操作数的索引,而RA字段既可以存放源操作数寄存器的索引,也可以存放目的操作数寄存器的索引。XO字段存放X-Form类指令扩展的IPCDRc字段为1表示当前指令的运行结果将改变CR寄存器,具有“.”后缀的指令其Rc位为1

X-Form类的典型指令如下:

1)存储器访问指令。如lbzxlhzxlhaxstbxsthxstwxlbzuxlhzuxlwzuxstbuxsthuxstwux等。

2)字节序列交换指令。lhbrxlwbrxsthbrxstwbrx指令。这一类指令主要作用是调整字节序列。如“lhbrx RTRARB”指令是将RA+RB地址存放的16位数据的高8位和低8位进行交换,然后将结果存放入RT寄存器中。

3)字符串操作指令。lswilswxstswistswx指令。使用此类指令时需要注意,这些指令将隐士的使用一些连续的通用寄存器资源。

4)比较类和Trap指令。如cmpcmpltw指令。这些指令与D-Form类的同类指令对应。

5)逻辑算术运算指令。andorxornandnoreqv等等。这些指令与D-Form类的同类指令对应。

6)“cntlzw RARS”指令。该指令用来找出RS寄存器中第一个不是0的位,然后将此位的位序存入RA中。该指令可以用来实现LOG2N运算。

7)“popcntb RARS”指令。该指令计算RS寄存器中存放的8个字节中每一个字节里有多少个去,并将相应的结果存放在RA的对应字节中。E500内核不支持该指令。

8)移位类指令。如sldslw指令等。注意D-Form类没有移位类指令。

阅读(1702) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~