操作数与参数
RegDst- Reg5 destination: discard, R1..R23, push U, or push T
SSR_ID- system-register identifier
HL.SSRGET reads the complete encoded system-register address.
PTO-SCALAR-HL-SSRGEThl.ssrget SSR_ID, ->{t, u, Rd}| 字段 | 位宽 | 有符号性 | 架构角色 | 编码零 |
|---|---|---|---|---|
RegDst | 5 | encoding-defined | Reg5 destination: discard, R1..R23, push U, or push T | Encoded zero names the architectural zero GPR. |
SSR_ID | 24 | encoding-defined | system-register identifier | Encoded zero selects value zero of the system-register identifier. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| SSR_ID | 47:36 | variable |
| Constant | 35:28 | 8'b00000000 |
| RegDst | 27:23 | variable |
| Constant | 22:16 | 7'b0111011 |
| SSR_ID | 15:4 | variable |
| Constant | 3:0 | 4'b1110 |
{
"reg": [
{
"bits": 4,
"name": "4'b1110"
},
{
"bits": 12,
"name": "SSR_ID"
},
{
"bits": 7,
"name": "7'b0111011"
},
{
"bits": 5,
"name": "RegDst"
},
{
"bits": 8,
"name": "8'b00000000"
},
{
"bits": 12,
"name": "SSR_ID"
}
],
"config": {
"bits": 48,
"fontsize": 13,
"hspace": 900,
"lanes": 2,
"offset": 0
}
}hl.ssrget SSR_ID, ->{t, u, Rd}
RegDstSSR_ID下面是该指令所有者中的 Operation;页面没有重写这段行为。
readonly func InstructionContractOperation_HL_SSRGET() => ScalarOperationbegin return ScalarOperation_HL_SSRGET;end;readonly func InstructionContractHandler_HL_SSRGET() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteSystemRegisterGet;end;
pure func InstructionContractRequiresSystemBlock_HL_SSRGET() => booleanbegin return TRUE;end;
pure func InstructionContractSystemTransferKind_HL_SSRGET() => bits(2)begin return '00';end;
pure func InstructionContractSystemAddressWidth_HL_SSRGET() => integer {5,12,24}begin return 24;end;
pure func InstructionContractPushesTemporaryT_HL_SSRGET() => booleanbegin return FALSE;end;// PTO-INSTRUCTION: {"assembly":["hl.ssrget SSR_ID, ->{t, u, Rd}"],"block":[],"catalog_indices":[283],"catalog_records":[{"asm":"hl.ssrget SSR_ID, ->{t, u, Rd}","constraints":[],"encoding":[{"index":0,"mask":"0x000ff07f000f","match":"0x0000003b000e","width_bits":48}],"encoding_kind":"HL48","fields":[{"name":"RegDst","pieces":[{"instruction_lsb":23,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SSR_ID","pieces":[{"instruction_lsb":36,"value_lsb":0,"width":12},{"instruction_lsb":4,"value_lsb":12,"width":12}],"signedness":"encoding-defined","width":24}],"form_id":"hl_ssrget_48_fde37e58a3c4","length_bits":48,"mnemonic":"HL.SSRGET","semantic_family":"SYS","semantic_group":"SYS","semantic_handler":"ExecuteSystemRegisterGet","semantic_summary":"HL.SSRGET reads the complete encoded system-register address.","status":"accepted"}],"classification":["sys"],"contract":{"block_composition":["HL.SSRGET executes as one scalar operation in the body of an active SYS block."],"canonical_assembly":["hl.ssrget SSR_ID, ->{t, u, Rd}"],"defaults":["Every displayed operand is encoded explicitly. Encoded zero is an assigned value and never denotes omission."],"encoding_class":"standalone-encoded","examples":["hl.ssrget SSR_ID, ->{t, u, Rd}"],"exceptions":["Invalid block placement raises Illegal Block Exception before encoded-field legality or effects.","A reserved encoding or rejected access raises Illegal Instruction before destination, queue, system-state, or TPC effects."],"field_contracts":{},"field_zero_meanings":{"RegDst":"Encoded zero names the architectural zero GPR.","SSR_ID":"Encoded zero selects value zero of the system-register identifier."},"legality":["Every fixed bit and explicit field constraint is checked before operation semantics.","The complete encoded address is checked against its RO, WO, RW, unknown-address, and current-ACR access rules before effects."],"memory_effects":["none"],"operands":[{"field":"RegDst","role":"Reg5 destination: discard, R1..R23, push U, or push T"},{"field":"SSR_ID","role":"system-register identifier"}],"ordering":["Check block placement and encoded legality before source reads or architectural effects.","Snapshot every scalar source before the selected system effect, then advance TPC only after success."],"standalone_opcode":true,"state_effects":["Read the complete XLEN system-register value and publish it through the common Reg5 destination mapping.","A rejected read preserves the destination and queue state except for ordinary trap entry."]},"depends_on":["PTO-SCALAR-MODEL-SYS-REGISTERS"],"id":"PTO-SCALAR-HL-SSRGET","mnemonic":"HL.SSRGET","summary":"HL.SSRGET reads the complete encoded system-register address.","surface":"scalar"}// PTO-REVIEW: {"review_method":"formal-definition-read","outcome":"FORMAL-COMPLETE","reviewed_fields":["assembly","encoding","defaults","operation","state","memory","ordering","faults","reserved"]}// NDF-BEGIN: PTO-HL-SSRGET-DECISION-BINDING-001// ndf: kind=contract level=L1 layer=scalar status=accepted// HL.SSRGET MUST implement the mnemonic-local canonical assembly, encoded// legality, defaults, state and memory effects, ordering, and fault boundaries// declared in this owner. The operation region below is the executable binding// for every accepted decision that names this mnemonic.// NDF-END: PTO-HL-SSRGET-DECISION-BINDING-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_HL_SSRGET() => ScalarOperationbegin return ScalarOperation_HL_SSRGET;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_HL_SSRGET() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteSystemRegisterGet;end;
pure func InstructionContractRequiresSystemBlock_HL_SSRGET() => booleanbegin return TRUE;end;
pure func InstructionContractSystemTransferKind_HL_SSRGET() => bits(2)begin return '00';end;
pure func InstructionContractSystemAddressWidth_HL_SSRGET() => integer {5,12,24}begin return 24;end;
pure func InstructionContractPushesTemporaryT_HL_SSRGET() => booleanbegin return FALSE;end;// DOC-END: operation
HL.SSRGET 读取已分配的系统寄存器地址并发布完整 XLEN 值。
ASL DOC 区域选择 ScalarHandler_ExecuteSystemRegisterGet。读取源或改变系统状态之前,必须先检查位置和编码合法性。
该指令占用活动 SYS 块体中的一个标量操作位置。
RegDst 承载 Reg5 目的地:丢弃、R1..R23、压入 U 或压入 T;SSR_ID 承载系统寄存器标识符。
编码零是已分配的字段值,从不表示省略操作数。
地址与访问预检完成后,完整 XLEN 系统寄存器值通过通用 Reg5 目的地映射发布。
读取被拒绝时,除普通陷阱进入外,不会改变所选目的地或临时队列顺序。
完整地址必须先通过已分配访问类别和当前 ACR 权限检查,之后才能产生目的地或队列效果。
无效的 SYS 块位置会在字段检查之前被拒绝。保留编码或访问拒绝除普通陷阱包络外,不产生目的地、队列、系统状态或 TPC 效果。
该写法示例只用于说明;确切合法性与效果仍由下方生成契约定义。
可从 hl.ssrget SSR_ID, ->{t, u, Rd} 开始,先沿编码字段完成预检,再继续查看所选系统效果。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
HL.SSRGET MUST implement the mnemonic-local canonical assembly, encoded legality, defaults, state and memory effects, ordering, and fault boundaries declared in this owner. The operation region below is the executable binding for every accepted decision that names this mnemonic.
PTO-HL-SSRGET-DECISION-BINDING-001asl/scalar/sys/HL.SSRGET.asl132de06a47fc94316eaecf73b8aaad961e4806175a72e9dcc68bb7351703a46d4d6a18814a8f8cde8bea49b4e79814cf21c5423f619f7f24e0432293eed7116319 matching entries
PTO-AVS-SCALAR-HL-SSRGET-DECODE-001tests/asl/scalar/sys/HL.SSRGET/scalar-decode-hl-ssrget-canonical-001.asl7937deaeb1949d4031882009a07ad972a5f79ac95fc656def13d1cbc43eb7d85PTO-AVS-SYS-HL-SSRGET-ACCESS-001tests/asl/scalar/sys/HL.SSRGET/scalar-fault-hl-ssrget-access-001.asl27b408c998e054d25ed2a1cbea464f874e82398214a379b38101f79e1b4d2602PTO-AVS-SYS-HL-SSRGET-DISCARD-001tests/asl/scalar/sys/HL.SSRGET/scalar-exec-hl-ssrget-discard-001.asleea62027721b1cd7b0e80947de5e64e8624f49f9fe4db6786aaef421dfe776a9PTO-AVS-SYS-HL-SSRGET-EXEC-001tests/asl/scalar/sys/HL.SSRGET/scalar-exec-hl-ssrget-direct-001.asl03867cd02bd32c9065a8db0280a180b7decd1f928e3a1e98fa58791337416737PTO-AVS-SYS-HL-SSRGET-PLACE-001tests/asl/scalar/sys/HL.SSRGET/scalar-fault-hl-ssrget-place-001.asled4563e7815633a844d239ab416c5ef72b3361b1b44d78551bbe69c2cca93ec0PTO-AVS-SYS-HL-SSRGET-RING-001tests/asl/scalar/sys/HL.SSRGET/scalar-fault-hl-ssrget-ring-001.asl6c07e55c4ee52d2797fcff99b6bab211640b8f8706348bb4af438248c707c1e9PTO-AVS-SYS-HL-SSRGET-TDST-001tests/asl/scalar/sys/HL.SSRGET/scalar-exec-hl-ssrget-tdst-001.asl57f4cf7e73eb39693a5b65db9b4749d204dc5103804d49c9fb4f1a9814414167PTO-AVS-SYS-HL-SSRGET-UDST-001tests/asl/scalar/sys/HL.SSRGET/scalar-exec-hl-ssrget-udst-001.aslbcbe2521fc3fd9106dff53835d34518f094f950695ea14c2525a83a21737c6a7PTO-AVS-SYS-HL-SSRGET-UNKNOWN-001tests/asl/scalar/sys/HL.SSRGET/scalar-fault-hl-ssrget-unknown-001.aslf0caa54738db86874fb171f9ab3e3998a0ebddfe08c432d485b687fe0f4c00bdPTO-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-0003…
ADR-0003docs/status/decisions/0003-pto-owned-system-register-names.mdc6a5379776c3b29c25f0896bc56f84d8f5c15832bbba0859b822aa99a65e342dLoading ADR-0018…
ADR-0018docs/status/decisions/0018-pto-v0-trap-disposition.mdce33454ffd2a595425ebece5954c9990ea2b9c4890008ad700599f767d7b9716Loading ADR-0031…
ADR-0031docs/status/decisions/0031-scalar-sys-totality-and-profile-boundaries.md5680b3516be6c28a1ccb198c99f5efb66317c65330f6d87434173024d2795a7dLoading ADR-0059…
ADR-0059docs/status/decisions/0059-mnemonic-field-encoding-closure.mdf18d13f735cfaf9f2803c754c5818f4af33d1cc42c489f0d9ce060b07bb3a196Loading ADR-0084…
ADR-0084docs/status/decisions/0084-scalar-system-and-queue-operations.mde068992fa81e2c4ac46e492391a2f784141d68e041bf0b9e0586c37217d1e08c{
"classification": [
"sys"
],
"documentation": "docs/scalar/sys/HL.SSRGET.md",
"id": "PTO-SCALAR-HL-SSRGET",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "HL.SSRGET",
"ndf_clause": "PTO-INST-SCALAR-HL-SSRGET"
},
"mnemonic": "HL.SSRGET",
"readiness_subjects": [
"ADR-0003",
"ADR-0018",
"ADR-0031",
"ADR-0059",
"ADR-0084"
],
"semantic_tests": [
"PTO-AVS-SYS-HL-SSRGET-ACCESS-001",
"PTO-AVS-SYS-HL-SSRGET-DISCARD-001",
"PTO-AVS-SYS-HL-SSRGET-EXEC-001",
"PTO-AVS-SYS-HL-SSRGET-PLACE-001",
"PTO-AVS-SYS-HL-SSRGET-RING-001",
"PTO-AVS-SYS-HL-SSRGET-TDST-001",
"PTO-AVS-SYS-HL-SSRGET-UDST-001",
"PTO-AVS-SYS-HL-SSRGET-UNKNOWN-001"
],
"source": "asl/scalar/sys/HL.SSRGET.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-SCALAR-HL-SSRGET-DECODE-001",
"PTO-AVS-SYS-HL-SSRGET-ACCESS-001",
"PTO-AVS-SYS-HL-SSRGET-DISCARD-001",
"PTO-AVS-SYS-HL-SSRGET-EXEC-001",
"PTO-AVS-SYS-HL-SSRGET-PLACE-001",
"PTO-AVS-SYS-HL-SSRGET-RING-001",
"PTO-AVS-SYS-HL-SSRGET-TDST-001",
"PTO-AVS-SYS-HL-SSRGET-UDST-001",
"PTO-AVS-SYS-HL-SSRGET-UNKNOWN-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd86812132de06a47fc94316eaecf73b8aaad961e4806175a72e9dcc68bb7351703a46dea8256bd22a278d644585727924ab86cdab27a0f7bd8b4bd228bbc65f7a8ba47asl/scalar/sys/HL.SSRGET.aslasl/scalar/sys/HL.SSRGET.aslasl/scalar/sys/HL.SSRGET.asl