Operands and parameters
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}| Field | Bits | Signedness | Architectural role | Encoded zero |
|---|---|---|---|---|
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_IDRegDstThis Operation comes directly from the instruction owner; the page does not rewrite its behavior.
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 reads an assigned word from the active BARG view and publishes it through Reg5 destination mapping.
The ASL DOC region selects ScalarHandler_ExecuteLocalStateRegisterGet. Placement and encoded legality are checked before sources or system state can change.
The instruction occupies one scalar operation position in any active block for which the selected BARG word is applicable.
LSR_ID carries the active BARG word identifier; RegDst carries the Reg5 destination: discard, R1..R23, push U, or push T.
Encoded zero is an assigned field value, never an omitted operand.
Assigned IDs select BARG.BPC, BARG.BPCN, or the canonical packed BARG control word and publish it through RegDst.
The read leaves BARG and system-register state unchanged; publication occurs only after applicability checks.
IDs 0, 1, and 2 are assigned; 1 applies only to Standard and Floating blocks, and higher IDs are reserved.
An inactive body, an unassigned ID, or a selected BARG word that does not apply to the active block raises Illegal Block Exception before destination, queue, system-state, or TPC effects.
This spelling example is illustrative; exact legality and effects remain in the generated contract below.
Start with lsrget LSR_ID, ->{t, u, Rd} and trace the selected BARG word through applicability checks before publication.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
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 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd8681265a273c22dac0d11987a0b444e99d4f2ffa2639ec43509039c625402a560476ff8331a497d76cf70b7e8e42e84aee2ab26831020fba8c14088024f1e7aa7aff1asl/scalar/sys/LSRGET.aslasl/scalar/sys/LSRGET.aslasl/scalar/sys/LSRGET.asl