CSTATE¶
公共状态寄存器(Common State Register)中保存处理器的公共状态信息,用于调度器管理各个核心和线程的执行状态。
- ACR:此字段始终读取为当前ACR,是只读的(RO)。
- I:中断使能位。如果此位清零,则禁止对ACR的中断,此字段是可读写的(RW)。
- E:端序控制位。此位控制内存访问的端序是小端(E=0)或大端(E=1),但不会控制指令读取的端序,指令读取总是小端。此字段是只读的(RO)。
- P:Supervisor用户内存访问使能。此位更改内存访问的行为,当该位被清除时,分配给具有较低权限的ACR的某些内存区域可能无法用于当前ACR,此字段是可读写的(RW)。
- FFLAGS: 累积的浮点异常标志,表示该字段自上次被软件重置以来在任何浮点算术指令上出现的异常条件。表示各类浮点操作NV、DZ、OF、UF、NX例外的产生情况。
- FRM: 浮点计算舍入模式,用于动态控制浮点运算操作的结果舍入模式。包含RNE、RTZ、RDN、RUP四种模式。
FFLAGS字段每一位的含义如下:
| FFLAGS字段 | 标识符 | 解释 |
|---|---|---|
| bit[0] | NV | 非法操作 |
| bit[1] | DZ | 除零 |
| bit[2] | OF | 上溢 |
| bit[3] | UF | 下溢 |
| bit[4] | NX | 不精确 |
FRM字段不同编码的含义如下:
| FRM | 标识符 | 解释 |
|---|---|---|
| 000 | RNE | 向最近偶数舍入(Round to Nearest, ties to Even) |
| 001 | RTZ | 向零舍入(Round towards Zero) |
| 010 | RDN | 向负无穷舍入(Round Down/towards -∞) |
| 011 | RUP | 向正无穷舍入(Round Up/towards +∞) |
| RESERVE |
注意
P位不能用作安全保护。当前ACR始终可以更改它。
备注¶
该寄存器的SSRID为0x0020。