目的与范围
用途与范围
本单元拥有五个架构可见的数值状态标志,以及成功数值操作之后应用的粘滞更新规则。
PTO-ARCH-STATE-NUMERIC-STATUS下面直接显示完整的 ASL 所有者。
// PTO-UNIT: {"id":"PTO-ARCH-STATE-NUMERIC-STATUS","surface":"arch","classification":["state","numeric-status"],"depends_on":["PTO-ARCH-SYSTEM-REGISTERS-ADDRESSING"]}// NDF-BEGIN: PTO-NUMERIC-STATUS-STICKY-001// ndf: kind=contract level=L1 layer=architecture status=accepted// Numeric execution flags MUST map to CORE_STATE[36:32] as NV, DZ, OF, UF,// and NX, and a successful numeric operation MUST OR its produced flags into// the existing sticky status without clearing an earlier flag.// NDF-END: PTO-NUMERIC-STATUS-STICKY-001// DOC-BEGIN: statereadonly func NumericStatusFlags() => bits(5)begin return _SystemRegisters.core_state[36:32];end;
func RecordNumericStatusFlags(flags: bits(5))begin _SystemRegisters.core_state[36:32] = NumericStatusFlags() OR flags;end;// DOC-END: state
本单元拥有五个架构可见的数值状态标志,以及成功数值操作之后应用的粘滞更新规则。
NumericStatusFlags 读取 CORE_STATE[36:32]。从位 36 到位 32,五个标志依次是 NV、DZ、OF、UF 和 NX。
RecordNumericStatusFlags 把给定五位值与当前状态进行 OR,并把结果写回 CORE_STATE[36:32]。
因此,成功的数值操作可以设置标志,但不能清除先前操作已经设置的标志。
本所有者定义状态布局和累积操作,但不决定哪个数值操作产生 NV、DZ、OF、UF 或 NX;该决定属于数值操作的当前 ASL 所有者,以及适用时的配置档钩子。
如果当前五位状态是 10000,之后一次成功操作提供 00001,记录值将变成 10001。随后提供 00000 时,10001 保持不变。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
Numeric execution flags MUST map to CORE_STATE[36:32] as NV, DZ, OF, UF, and NX, and a successful numeric operation MUST OR its produced flags into the existing sticky status without clearing an earlier flag.
PTO-NUMERIC-STATUS-STICKY-001asl/arch/state/numeric-status.asl3d3fe1709c7e2903bca96d50e9671a6a484c442ff08ce4a8340168cdb38ac6d9726594cdc2b4175fe94b32f63471549fab32de6dcf2cf0272ecf2845684ffb778 matching entries
PTO-AVS-ARCH-NUMERIC-STATUS-001tests/asl/arch/state/numeric-status/arch-state-numeric-status-001.asl73c82a0e416a7635964e18f0b52a0330df6edcb3292f9eb65937b9ace7d9948dPTO-AVS-ARCH-STATE-NUMERIC-STATUS-STATIC-001tests/asl/arch/state/numeric-status/arch-static-numeric-status-contract-001.asl98f5b7e8fe831e27ddfd019b142755a3675e04ff9fe7224a881f3f5d28eca221PTO-EVIDENCE-RELEASE-TRACEABILITYPTO-EVIDENCE-RELEASE-TRACEABILITYspec/evidence/release-traceability-readiness.jsonc7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3ePTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSUREPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSUREspec/evidence/instruction-contract-closure.json3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106aPTO-EVIDENCE-ARCHITECTURE-READINESSPTO-EVIDENCE-ARCHITECTURE-READINESSspec/evidence/architecture-readiness.json4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004PTO-EVIDENCE-RELEASE-GATE-READINESSPTO-EVIDENCE-RELEASE-GATE-READINESSspec/evidence/release-gate-readiness.jsona0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0PTO-EVIDENCE-RELEASE-MANIFESTPTO-EVIDENCE-RELEASE-MANIFESTspec/release-manifest.json1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8Loading ADR-0038…
ADR-0038docs/status/decisions/0038-scalar-numeric-flag-state-and-ownership.mdeac15c3bee955bb92833482b9af8b9f149fe17c13138e6f2b22f0ed1cf40fc07{
"classification": [
"state",
"numeric-status"
],
"documentation": "docs/arch/state/numeric-status.md",
"id": "PTO-ARCH-STATE-NUMERIC-STATUS",
"mnemonic": null,
"readiness_subjects": [
"ADR-0038"
],
"semantic_tests": [
"PTO-AVS-ARCH-NUMERIC-STATUS-001"
],
"source": "asl/arch/state/numeric-status.asl",
"surface": "arch",
"tests": [
"PTO-AVS-ARCH-NUMERIC-STATUS-001",
"PTO-AVS-ARCH-STATE-NUMERIC-STATUS-STATIC-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd868123d3fe1709c7e2903bca96d50e9671a6a484c442ff08ce4a8340168cdb38ac6d91ac9ad9edb2c9ff4c681f40e8a10c70d38d2d27bd2a829623d0c4278be03d5e4asl/arch/state/numeric-status.aslasl/arch/state/numeric-status.asl