操作数与参数
LSR_ID- active BARG word identifier
RegDst- Reg5 destination: discard, R1..R23, push U, or push T
LSRGET reads one assigned word from the active block BARG view.
PTO-SCALAR-LSRGETlsrget LSR_ID, ->{t, u, Rd}| 字段 | 位宽 | 有符号性 | 架构角色 | 编码零 |
|---|---|---|---|---|
LSR_ID | 12 | encoding-defined | active BARG word identifier | Encoded zero selects BARG.BPC; it is not omission. |
RegDst | 5 | encoding-defined | Reg5 destination: discard, R1..R23, push U, or push T | Encoded zero names the architectural zero GPR. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| LSR_ID | 31:20 | variable |
| Constant | 19:12 | 8'b00000011 |
| RegDst | 11:7 | variable |
| Constant | 6:0 | 7'b0111011 |
{
"reg": [
{
"bits": 7,
"name": "7'b0111011"
},
{
"bits": 5,
"name": "RegDst"
},
{
"bits": 8,
"name": "8'b00000011"
},
{
"bits": 12,
"name": "LSR_ID"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}lsrget LSR_ID, ->{t, u, Rd}
LSR_IDRegDst下面是该指令所有者中的 Operation;页面没有重写这段行为。
readonly func InstructionContractOperation_LSRGET() => ScalarOperationbegin return ScalarOperation_LSRGET;end;readonly func InstructionContractHandler_LSRGET() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteLocalStateRegisterGet;end;
pure func InstructionContractRequiresSystemBlock_LSRGET() => booleanbegin return FALSE;end;
pure func InstructionContractLocalRegisterIDLegal_LSRGET( identifier: bits(12)) => booleanbegin return UInt(identifier) <= 2;end;
pure func InstructionContractBPCNApplicable_LSRGET( kind: BundleKind) => booleanbegin return kind == BundleKind_Standard || kind == BundleKind_Floating;end;
pure func InstructionContractReadsBARG_LSRGET() => booleanbegin return TRUE;end;// PTO-INSTRUCTION: {"assembly":["lsrget LSR_ID, ->{t, u, Rd}"],"block":[],"catalog_indices":[338],"catalog_records":[{"asm":"lsrget LSR_ID, ->{t, u, Rd}","constraints":[],"encoding":[{"index":0,"mask":"0x000ff07f","match":"0x0000303b","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"LSR_ID","pieces":[{"instruction_lsb":20,"value_lsb":0,"width":12}],"signedness":"encoding-defined","width":12},{"name":"RegDst","pieces":[{"instruction_lsb":7,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5}],"form_id":"lsrget_32_448b17d7c20a","length_bits":32,"mnemonic":"LSRGET","semantic_family":"SYS","semantic_group":"SYS","semantic_handler":"ExecuteLocalStateRegisterGet","semantic_summary":"LSRGET reads one assigned word from the active block BARG view.","status":"accepted"}],"classification":["sys"],"contract":{"block_composition":["LSRGET is legal in any active block body for which the selected BARG word exists."],"canonical_assembly":["lsrget LSR_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":["lsrget LSR_ID, ->{t, u, Rd}"],"exceptions":["Invalid block placement raises Illegal Block Exception before encoded-field legality or effects.","An unassigned or block-inapplicable BARG word raises Illegal Block Exception before destination, queue, system-state, or TPC effects."],"field_contracts":{},"field_zero_meanings":{"LSR_ID":"Encoded zero selects BARG.BPC; it is not omission.","RegDst":"Encoded zero names the architectural zero GPR."},"legality":["IDs 0, 1, and 2 select BPC, BPCN, and the packed BARG control word; IDs 3 through 4095 are reserved.","ID 1 is applicable only to Standard and Floating blocks because other block types have no selecting BPCN."],"memory_effects":["none"],"operands":[{"field":"LSR_ID","role":"active BARG word identifier"},{"field":"RegDst","role":"Reg5 destination: discard, R1..R23, push U, or push T"}],"ordering":["Check active-body placement, ID assignment, and selected-word applicability before any destination or queue effect.","Snapshot the BARG word, publish it through RegDst, and then advance TPC."],"standalone_opcode":true,"state_effects":["ID 0 returns BARG.BPC; ID 1 returns BARG.BPCN; ID 2 returns the canonical packed control word.","The packed word contains BlockType, applicable TYPE and TAKEN, atomic, acquire, release, far, and dimension-reduction fields, with all higher bits zero.","LSRGET does not modify BARG or the system-register file."]},"depends_on":["PTO-BLOCK-MODEL-STATE-BARG"],"id":"PTO-SCALAR-LSRGET","mnemonic":"LSRGET","summary":"LSRGET reads one assigned word from the active block BARG view.","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-LSRGET-BARG-001// ndf: kind=contract level=L1 layer=scalar status=accepted// LSRGET MUST read the active BARG view: ID 0 is BPC, ID 1 is BPCN for// Standard/Floating blocks, and ID 2 is the canonical packed control word.// IDs 3 through 4095 and inapplicable ID 1 MUST reject before destination effects.// NDF-END: PTO-LSRGET-BARG-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_LSRGET() => ScalarOperationbegin return ScalarOperation_LSRGET;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_LSRGET() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteLocalStateRegisterGet;end;
pure func InstructionContractRequiresSystemBlock_LSRGET() => booleanbegin return FALSE;end;
pure func InstructionContractLocalRegisterIDLegal_LSRGET( identifier: bits(12)) => booleanbegin return UInt(identifier) <= 2;end;
pure func InstructionContractBPCNApplicable_LSRGET( kind: BundleKind) => booleanbegin return kind == BundleKind_Standard || kind == BundleKind_Floating;end;
pure func InstructionContractReadsBARG_LSRGET() => booleanbegin return TRUE;end;// DOC-END: operation
LSRGET 从活动 BARG 视图读取一个已分配字,并通过 Reg5 目的地映射发布。
ASL DOC 区域选择 ScalarHandler_ExecuteLocalStateRegisterGet。读取源或改变系统状态之前,必须先检查位置和编码合法性。
只要所选 BARG 字适用于当前活动块,该指令就可以占用其中一个标量操作位置。
LSR_ID 承载活动 BARG 字标识符;RegDst 承载 Reg5 目的地:丢弃、R1..R23、压入 U 或压入 T。
编码零是已分配的字段值,从不表示省略操作数。
已分配的 ID 选择 BARG.BPC、BARG.BPCN 或规范打包的 BARG 控制字,并通过 RegDst 发布。
读取不会改变 BARG 或系统寄存器状态;只有适用性检查通过后才会发布。
ID 0、1、2 已分配;1 只适用于 Standard 与 Floating 块,更高 ID 都是保留值。
块体未激活、ID 未分配或所选 BARG 字不适用于当前活动块时,会在产生目的地、队列、系统状态或 TPC 效果之前触发 Illegal Block Exception。
该写法示例只用于说明;确切合法性与效果仍由下方生成契约定义。
可从 lsrget LSR_ID, ->{t, u, Rd} 开始,沿所选 BARG 字完成适用性检查,再查看发布行为。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
LSRGET MUST read the active BARG view: ID 0 is BPC, ID 1 is BPCN for Standard/Floating blocks, and ID 2 is the canonical packed control word. IDs 3 through 4095 and inapplicable ID 1 MUST reject before destination effects.
PTO-LSRGET-BARG-001asl/scalar/sys/LSRGET.asl65a273c22dac0d11987a0b444e99d4f2ffa2639ec43509039c625402a560476f6092fdd43baa1ed7c977e27c299725db779b7d60d9f880bb2ff1e611b491e43019 matching entries
PTO-AVS-SCALAR-LSRGET-DECODE-001tests/asl/scalar/sys/LSRGET/scalar-decode-lsrget-canonical-001.asldbff595068075a5708a1dc74f554f9b02651b189aca80a0282b1147057e38cafPTO-AVS-SYS-LSRGET-APPLICABLE-001tests/asl/scalar/sys/LSRGET/scalar-fault-lsrget-applicable-001.asl491c4b4cf6701da7e408d4b6c37f5f23400f2c57bc060e2e07a165b8469b0c60PTO-AVS-SYS-LSRGET-BPCN-001tests/asl/scalar/sys/LSRGET/scalar-exec-lsrget-bpcn-001.asl5a8d817c555a2c930bad89269dbb77e10c95a385e1381328880ce928502beb53PTO-AVS-SYS-LSRGET-CONTROL-001tests/asl/scalar/sys/LSRGET/scalar-exec-lsrget-control-001.asl862420f1352e09e4821e541fb719764fcc0efc3d8b0f0a7e263794681c2f5c35PTO-AVS-SYS-LSRGET-DISCARD-001tests/asl/scalar/sys/LSRGET/scalar-exec-lsrget-discard-001.asl0fcf6f43310743a4987012c57b98df27783289fa3d6be48e59ea9e6435b1c06bPTO-AVS-SYS-LSRGET-EXEC-001tests/asl/scalar/sys/LSRGET/scalar-exec-lsrget-direct-001.asl97d266ec7114327e517e0aab1d824d9a1d60c0dc378f5cb4ff965deced362cf7PTO-AVS-SYS-LSRGET-PLACE-001tests/asl/scalar/sys/LSRGET/scalar-fault-lsrget-place-001.asl7829443da0977714b860f531177e7069387f5b11c80de5f044581e6009144827PTO-AVS-SYS-LSRGET-RSVD-001tests/asl/scalar/sys/LSRGET/scalar-fault-lsrget-reserved-001.asl7fa3a50cbb2f01e5d4eb728a9e87ba51f78aa438d08caf943e794c21915d927cPTO-AVS-SYS-LSRGET-TDST-001tests/asl/scalar/sys/LSRGET/scalar-exec-lsrget-tdst-001.asl19ddc3e2bfbc4441a05084954d3dce5a241241f4bfb1e235cbdb1d7fb696ba71PTO-AVS-SYS-LSRGET-UDST-001tests/asl/scalar/sys/LSRGET/scalar-exec-lsrget-udst-001.aslf7593fe1c90a2a2eef124625064cbe26e7498502b08f540bcae5e7b8c1451aabPTO-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-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/LSRGET.md",
"id": "PTO-SCALAR-LSRGET",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "LSRGET",
"ndf_clause": "PTO-INST-SCALAR-LSRGET"
},
"mnemonic": "LSRGET",
"readiness_subjects": [
"ADR-0018",
"ADR-0031",
"ADR-0059",
"ADR-0084"
],
"semantic_tests": [
"PTO-AVS-SYS-LSRGET-APPLICABLE-001",
"PTO-AVS-SYS-LSRGET-BPCN-001",
"PTO-AVS-SYS-LSRGET-CONTROL-001",
"PTO-AVS-SYS-LSRGET-DISCARD-001",
"PTO-AVS-SYS-LSRGET-EXEC-001",
"PTO-AVS-SYS-LSRGET-PLACE-001",
"PTO-AVS-SYS-LSRGET-RSVD-001",
"PTO-AVS-SYS-LSRGET-TDST-001",
"PTO-AVS-SYS-LSRGET-UDST-001"
],
"source": "asl/scalar/sys/LSRGET.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-SCALAR-LSRGET-DECODE-001",
"PTO-AVS-SYS-LSRGET-APPLICABLE-001",
"PTO-AVS-SYS-LSRGET-BPCN-001",
"PTO-AVS-SYS-LSRGET-CONTROL-001",
"PTO-AVS-SYS-LSRGET-DISCARD-001",
"PTO-AVS-SYS-LSRGET-EXEC-001",
"PTO-AVS-SYS-LSRGET-PLACE-001",
"PTO-AVS-SYS-LSRGET-RSVD-001",
"PTO-AVS-SYS-LSRGET-TDST-001",
"PTO-AVS-SYS-LSRGET-UDST-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd8681265a273c22dac0d11987a0b444e99d4f2ffa2639ec43509039c625402a560476f7cebf9417809109d9933231fae6ee618464c60b182c0ea3bf0d449c79fa78aebasl/scalar/sys/LSRGET.aslasl/scalar/sys/LSRGET.aslasl/scalar/sys/LSRGET.asl