Power伊萨中是否有一个标志寄存器,类似于x86机器中的EFLAGS?它可以有一些其他的名称,例如,它可以被称为“状态寄存器”或类似的名称,但它的目的是保存最后一条指令执行的一些一般属性,例如算术运算中的溢出和进位标志或者在进行条件转移之前比较两个整数的结果。我知道,SPARC和ARM处理器有这样一个寄存器,而MIPS和RISC-V ISA则没有。(从PowerPC到Power 10)?该架构采用了什么方法,关于标志和这个寄存器?当两个无符号的64位整数相加时,如何检查溢出?比较两个整数以及根据比较结果进行条件分支在此处理器中的伊萨级别是如何组织的?
有没有人能列举出所有流行的通用RISC架构,并通知哪些有标志(或状态)寄存器,哪些没有?
1条答案
按热度按时间js81xvg61#
在PowerPC上,它们被称为条件寄存器。
2.3.1条件寄存器
条件寄存器(CR)是一个32位寄存器,它反映了某些操作的结果,并提供了一种测试(和分支)机制。
条件寄存器中的位分为8个4位字段,分别命名为CR字段0(CR 0)、...、CR字段7(CR 7),这些字段通过以下方式之一设置。
Power架构具有多组标志:8个4位条件代码CR 0-CR 7,集中保存在一个32位条件寄存器中-使用比较指令与分支指令时,您可以选择以哪个4位标志字段为目标。某些指令隐式以CR 0或CR 1为目标。