U
读写在 U 模式选择记录控制转移。该字段必须实现且可写。
这个字段控制什么
- - 在 U 模式选择记录控制转移。该字段必须实现且可写。
常见取值
不选择 U 模式记录。
选择 U 模式记录。
mctrctl(0x34E)是 Smctr v1.0 的 64 位机器级控制 CSR,用于选择记录的特权模式、控制外部陷阱/冻结行为和过滤控制转移类型。
在 U 模式选择记录控制转移。该字段必须实现且可写。
不选择 U 模式记录。
选择 U 模式记录。
在 S/HS 模式选择记录控制转移。该字段必须实现且可写。
不选择 S/HS 模式记录。
选择 S/HS 模式记录。
在 M 模式选择记录控制转移。该字段必须实现且可写。
不选择 M 模式记录。
选择 M 模式记录。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
启用返回地址栈(RAS)仿真模式;置 1 时记录调用、弹出函数返回、以返回加调用处理协程交换、禁止其他转移类型,并忽略 47:32 类型过滤位和 xTE。
使用普通 CTR 记录行为。
启用 RAS 仿真记录行为,并忽略类型过滤位与外部陷阱使能位。
当 S=0 时,允许记录陷入 S 模式的外部陷阱。
不额外允许记录到 S 模式的外部陷阱。
允许记录到 S 模式的外部陷阱。
当 M=0 时,允许记录陷入 M 模式的外部陷阱。
不额外允许记录到 M 模式的外部陷阱。
允许记录到 M 模式的外部陷阱。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
断点异常陷入 M 或 S 模式时置 sctrstatus.FROZEN。该字段必须实现且可写。
断点陷阱不触发该自动冻结。
符合条件的断点陷阱置 FROZEN。
本地计数器溢出中断陷入 M 或 S 模式时置 sctrstatus.FROZEN;实现 Sscofpmf 时该位必须可写。
LCOFI 陷阱不触发该自动冻结。
符合条件的 LCOFI 陷阱置 FROZEN。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
禁止记录异常,但不影响已通过 xTE 启用的外部陷阱记录。
不按此位禁止异常记录。
禁止记录异常;已通过 xTE 启用的外部陷阱不受此位影响。
禁止记录中断,但不影响已通过 xTE 启用的外部陷阱记录。
不按此位禁止中断记录。
禁止记录中断;已通过 xTE 启用的外部陷阱不受此位影响。
禁止记录陷阱返回。
不按此位禁止陷阱返回记录。
禁止记录陷阱返回。
启用记录未采用分支;这是使能位而不是 inhibit 位。
不记录未采用分支。
记录符合条件的未采用分支。
禁止记录采用分支。
不按此位禁止采用分支记录。
禁止记录采用分支。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
禁止记录间接调用。
不按此位禁止间接调用记录。
禁止记录间接调用。
禁止记录直接调用。
不按此位禁止直接调用记录。
禁止记录直接调用。
禁止记录不带链接的间接跳转。
不按此位禁止该类跳转记录。
禁止记录不带链接的间接跳转。
禁止记录不带链接的直接跳转。
不按此位禁止该类跳转记录。
禁止记录不带链接的直接跳转。
禁止记录协程交换。
不按此位禁止协程交换记录。
禁止记录协程交换。
禁止记录函数返回。
不按此位禁止函数返回记录。
禁止记录函数返回。
禁止记录其他带链接的间接跳转。
不按此位禁止该类跳转记录。
禁止记录其他带链接的间接跳转。
禁止记录其他带链接的直接跳转。
不按此位禁止该类跳转记录。
禁止记录其他带链接的直接跳转。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
供自定义使用的 WARL 位;值 0 必须对应标准行为。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
mctrctl 是 64 位 CTR 总控制寄存器:低 13 位选择记录模式、RAS、外部陷阱和冻结,高半部主要过滤要记录的控制转移类型;RV32 无法显式访问 63:32。
确认实现 Smctr、S 模式和 Sscsrind。
读取 mctrctl,识别实现字段并保留 WPRI 位。
配置 M/S/U、冻结/外部陷阱策略与需要的类型过滤。
写入后把下一条记录的 CCV=0 纳入处理。
不能。RV32 显式访问只到 31:0,Smctr v1.0 没有定义 mctrctlh,因此 63:32 无法由 RV32 软件显式访问。
不是。只有 M、S、U、BPFRZ 必须实现;其他字段可选且未实现时只读 0。实现 Sscofpmf 时 LCOFIFRZ 必须可写。