U
读写在 U 模式选择记录控制转移。该字段通过 sctrctl 可访问且必须实现为可写。
这个字段控制什么
- - 在 U 模式选择记录控制转移。该字段通过 sctrctl 可访问且必须实现为可写。
sctrctl(0x14E)是 Supervisor Control Transfer Records control CSR,提供对 64 位 mctrctl 子集的 S 模式访问;RV32 不能访问 xctrctl[63:32]。
在 U 模式选择记录控制转移。该字段通过 sctrctl 可访问且必须实现为可写。
在 S/HS 模式选择记录控制转移。该字段通过 sctrctl 可访问且必须实现为可写。
mctrctl.M 不能通过 sctrctl 访问;sctrctl bit 2 固定读为 0。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
启用返回地址栈(RAS)仿真模式;置 1 时记录调用、弹出函数返回、以返回加调用处理协程交换、禁止其他转移类型,并忽略 47:32 类型过滤位和 xTE。
当 S=0 时,允许记录陷入 S 模式的外部陷阱。
mctrctl.MTE 不能通过 sctrctl 访问;sctrctl bit 9 固定读为 0。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
断点异常陷入 M 或 S 模式时置 sctrstatus.FROZEN。该字段通过 sctrctl 可访问且必须实现为可写。
本地计数器溢出中断陷入 M 或 S 模式时置 sctrstatus.FROZEN;实现 Sscofpmf 时该位必须可写。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
禁止记录异常,但不影响已通过 xTE 启用的外部陷阱记录。
禁止记录中断,但不影响已通过 xTE 启用的外部陷阱记录。
禁止记录陷阱返回。
启用记录未采用分支;这是使能位而不是 inhibit 位。
禁止记录采用分支。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
禁止记录间接调用。
禁止记录直接调用。
禁止记录不带链接的间接跳转。
禁止记录不带链接的直接跳转。
禁止记录协程交换。
禁止记录函数返回。
禁止记录其他带链接的间接跳转。
禁止记录其他带链接的直接跳转。
保留位。软件读取时忽略并在写入时保留;未定义实现为只读 0。
供自定义使用的 WARL 位;值 0 必须对应标准行为。
sctrctl 是 64 位 CTR 控制寄存器的 S 模式视图,但不是完整 mctrctl 镜像:M 和 MTE 字段固定只读 0,RV32 也不能显式访问 xctrctl[63:32]。
确认实现 Smctr/Ssctr,并确定需要记录的控制转移类型。
通过 sctrctl 配置 S/U 相关记录、过滤和冻结策略;不要试图通过它访问 M、MTE 或 RV32 不可访问的 xctrctl[63:32]。
结合 sctrstatus 和 sctrdepth 读取或维护 CTR buffer。
不是。它属于 Control Transfer Records(Smctr/Ssctr),用于控制控制转移记录。
不能。Smctr 明确 RV32 不能访问 xctrctl[63:32];当前没有 sctrctlh。