分类: 嵌入式
2012-05-20 14:56:57
XL-Form类指令支持条件转移指令,与B-Form类条件转移不同,此类指令使用LR寄存器或者CTR寄存器,而不是使用16位立即数进行跳转,因此可以用来实现32位长指令。XL-Form类条件转移指令格式如下:
0~5 |
6~10 |
11~15 |
16~18 |
19~20 |
21~30 |
31 |
OPCD |
BO |
BI |
~ |
BH |
16或者528 |
LK |
支持的指令有以下几种:
l bclr BO,BI,BH // LK=0,第21~30字段位16
l bclrl BO,BI,BH // LK=1,第21~30字段位16
l bcctr BO,BI,BH // LK=0,第21~30字段位528
l bcctrl BO,BI,BH // LK=1,第21~30字段位528
XL-Form类指令的BO和BI字段与B-Form类指令中的BO和BI的定义相同,LK位为1时表示跳转指令执行后,LR寄存器指向下一条指令的地址(当前指令地址+4),BH字段用于静态分支预测,E500内核的XL-Form类指令不支持这一字段。
当条件满足时,bclr和bclrl指令使用LR寄存器进行长跳转,而bcctr和bcctrl指令使用CTR寄存器进行长跳转。