Operands and parameters
SrcD- Reg5 first store-data source
SrcD1- Reg5 second store-data source
SrcR- Reg5 address-base source
simm17- signed address displacement
HL.SDIP snapshots its scalar sources, forms its encoded address, and stores two adjacent aligned little-endian 8-byte values.
PTO-SCALAR-HL-SDIPhl.sdip SrcD, SrcD1, [SrcR, simm]| Field | Bits | Signedness | Architectural role | Encoded zero |
|---|---|---|---|---|
SrcD | 5 | encoding-defined | Reg5 first store-data source | Encoded zero reads the architectural zero GPR. |
SrcD1 | 5 | encoding-defined | Reg5 second store-data source | Encoded zero reads the architectural zero GPR. |
SrcR | 5 | encoding-defined | Reg5 address-base source | Encoded zero reads the architectural zero GPR. |
simm17 | 17 | signed | signed address displacement | Encoded zero supplies a zero displacement; it does not denote omission. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| simm17 | 47:41 | variable |
| SrcR | 40:36 | variable |
| SrcD | 35:31 | variable |
| Constant | 30:28 | 3'b011 |
| simm17 | 27:23 | variable |
| Constant | 22:16 | 7'b1011001 |
| simm17 | 15:11 | variable |
| SrcD1 | 10:6 | variable |
| Constant | 5:0 | 6'b011110 |
{
"reg": [
{
"bits": 6,
"name": "6'b011110"
},
{
"bits": 5,
"name": "SrcD1"
},
{
"bits": 5,
"name": "simm17"
},
{
"bits": 7,
"name": "7'b1011001"
},
{
"bits": 5,
"name": "simm17"
},
{
"bits": 3,
"name": "3'b011"
},
{
"bits": 5,
"name": "SrcD"
},
{
"bits": 5,
"name": "SrcR"
},
{
"bits": 7,
"name": "simm17"
}
],
"config": {
"bits": 48,
"fontsize": 13,
"hspace": 900,
"lanes": 2,
"offset": 0
}
}hl.sdip SrcD, SrcD1, [SrcR, simm]
SrcDSrcD1SrcRsimm17This Operation comes directly from the instruction owner; the page does not rewrite its behavior.
readonly func InstructionContractOperation_HL_SDIP() => ScalarOperationbegin return ScalarOperation_HL_SDIP;end;readonly func InstructionContractHandler_HL_SDIP() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteScalarStorePair;end;
pure func InstructionContractAGUAction_HL_SDIP() => ScalarAGUActionbegin return ScalarAGU_StorePair;end;
pure func InstructionContractAGUAddressKind_HL_SDIP() => ScalarAGUAddressKindbegin return ScalarAGU_Immediate;end;
pure func InstructionContractAGUSizeBytes_HL_SDIP() => integer {1,2,4,8}begin return 8;end;
pure func InstructionContractAGUOffsetScale_HL_SDIP() => integer {0..3}begin return 3;end;
pure func InstructionContractAGUUpdateMode_HL_SDIP() => AddressUpdateModebegin return AddressUpdate_None;end;
pure func InstructionContractAGUSignedLoad_HL_SDIP() => booleanbegin return FALSE;end;
pure func InstructionContractAGUPrefetchReturnsAddress_HL_SDIP() => booleanbegin return FALSE;end;// PTO-INSTRUCTION: {"assembly":["hl.sdip SrcD, SrcD1, [SrcR, simm]"],"block":[],"catalog_indices":[255],"catalog_records":[{"agu":{"action":"StorePair","address_kind":"Immediate","offset_scale":3,"prefetch_returns_address":false,"signed_load":false,"size_bytes":8,"update_mode":"None"},"asm":"hl.sdip SrcD, SrcD1, [SrcR, simm]","constraints":[],"encoding":[{"index":0,"mask":"0x0000707f003f","match":"0x00003059001e","width_bits":48}],"encoding_kind":"HL48","fields":[{"name":"SrcD","pieces":[{"instruction_lsb":31,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SrcD1","pieces":[{"instruction_lsb":6,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SrcR","pieces":[{"instruction_lsb":36,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"simm17","pieces":[{"instruction_lsb":41,"value_lsb":0,"width":7},{"instruction_lsb":23,"value_lsb":7,"width":5},{"instruction_lsb":11,"value_lsb":12,"width":5}],"signedness":"signed","width":17}],"form_id":"hl_sdip_48_6d622cf167ca","length_bits":48,"mnemonic":"HL.SDIP","semantic_family":"AGU","semantic_group":"STA/PAIR","semantic_handler":"ExecuteScalarStorePair","semantic_summary":"HL.SDIP snapshots its scalar sources, forms its encoded address, and stores two adjacent aligned little-endian 8-byte values.","status":"accepted"}],"classification":["agu"],"contract":{"block_composition":["none"],"canonical_assembly":["hl.sdip SrcD, SrcD1, [SrcR, simm]"],"defaults":["Every displayed operand field is encoded explicitly; encoded zero is a value and never denotes omission."],"encoding_class":"standalone-encoded","examples":["hl.sdip SrcD, SrcD1, [SrcR, simm]"],"exceptions":["A fixed-bit mismatch, reserved field value, or unavailable selected T/U source raises Fault_IllegalInstruction before instruction effects.","A misaligned 8-byte address raises Fault_DataAlignment before translation or permission. A later permission or bounded-memory failure raises Fault_DataPage at the original address.","A fault emits no successful memory event, performs no partial memory or destination effect, preserves pending writeback, and leaves TPC at the faulting instruction.","Recovery performs a full reissue: every address, source snapshot, preflight, memory operation, and destination is recomputed with no retained progress."],"field_contracts":{},"field_zero_meanings":{"SrcD":"Encoded zero reads the architectural zero GPR.","SrcD1":"Encoded zero reads the architectural zero GPR.","SrcR":"Encoded zero reads the architectural zero GPR.","simm17":"Encoded zero supplies a zero displacement; it does not denote omission."},"legality":["Every encoded Reg5 source uses the complete domain: codes 0..23 select absolute GPRs, codes 24..27 select T#1..T#4, and codes 28..31 select U#1..U#4 without consumption.","simm17 assigns every signed 17-bit value -65536..65535; the encoded byte displacement is that value multiplied by 8.","Each memory address must be aligned to the 8-byte access size; a 8-byte access is the complete transfer unit."],"memory_effects":["Preflight both adjacent 8-byte addresses before either store; on success record two relaxed store events in address order.","Successful overlapping stores invalidate an overlapping reservation only after complete pair preflight."],"operands":[{"field":"SrcD","role":"Reg5 first store-data source"},{"field":"SrcD1","role":"Reg5 second store-data source"},{"field":"SrcR","role":"Reg5 address-base source"},{"field":"simm17","role":"signed address displacement"}],"ordering":["Snapshot all explicit and implicit scalar sources before destination or memory effects; duplicate and source/destination aliases observe pre-instruction values.","Preflight both addresses, commit the two relaxed 8-byte operations in address order, publish ordered results if any, then advance TPC."],"standalone_opcode":true,"state_effects":["Sign-extend simm17, multiply it by 8, and add it modulo 2^PTO_XLEN to the SrcR base.","The pair addresses are address and address plus 8; the instruction performs no base writeback.","Snapshot every store-data source before any memory effect or destination publication.","Successful execution advances TPC by 6 bytes; a rejected or faulting attempt does not retire."]},"depends_on":["PTO-BLOCK-MODEL-SCHEMA-PROFILE-ENCODING"],"id":"PTO-SCALAR-HL-SDIP","mnemonic":"HL.SDIP","summary":"HL.SDIP snapshots its scalar sources, forms its encoded address, and stores two adjacent aligned little-endian 8-byte values.","surface":"scalar"}// PTO-REVIEW: {"review_method":"formal-definition-read","outcome":"FORMAL-COMPLETE","reviewed_fields":["assembly","encoding","defaults","operation","state","memory","ordering","faults","reserved"]}// DOC-BEGIN: decodereadonly func InstructionContractOperation_HL_SDIP() => ScalarOperationbegin return ScalarOperation_HL_SDIP;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_HL_SDIP() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteScalarStorePair;end;
pure func InstructionContractAGUAction_HL_SDIP() => ScalarAGUActionbegin return ScalarAGU_StorePair;end;
pure func InstructionContractAGUAddressKind_HL_SDIP() => ScalarAGUAddressKindbegin return ScalarAGU_Immediate;end;
pure func InstructionContractAGUSizeBytes_HL_SDIP() => integer {1,2,4,8}begin return 8;end;
pure func InstructionContractAGUOffsetScale_HL_SDIP() => integer {0..3}begin return 3;end;
pure func InstructionContractAGUUpdateMode_HL_SDIP() => AddressUpdateModebegin return AddressUpdate_None;end;
pure func InstructionContractAGUSignedLoad_HL_SDIP() => booleanbegin return FALSE;end;
pure func InstructionContractAGUPrefetchReturnsAddress_HL_SDIP() => booleanbegin return FALSE;end;// DOC-END: operation
HL.SDIP is a standalone 48-bit AGU instruction that forms a signed-immediate address and stores two adjacent aligned little-endian 8-byte values.
HL.SDIP sign-extends simm17 from its complete -65536..65535 domain, multiplies it by 8, and adds the displacement modulo 2^PTO_XLEN to the snapshotted SrcR base.
The instruction preflights two adjacent 8-byte addresses, then stores the two snapshotted data values in increasing-address order.
This form performs no base-register writeback; its effective address is used only by the selected memory operation.
SrcR supplies the base; simm17 supplies the signed displacement. Every encoded Reg5 source among SrcD, SrcD1, SrcR uses codes 0..23 for GPRs, 24..27 for T#1..T#4, and 28..31 for U#1..U#4 without consumption.SrcD supplies first store value; SrcD1 supplies second store value.simm17 assigns every signed value from -65536 through 65535; encoded zero is a zero displacement, not omission.All explicit and implicit scalar sources are snapshotted before memory or destination effects, so aliases observe pre-instruction values.
After both addresses pass preflight, success records two relaxed store events in address order, updates overlapping reservation state only after complete preflight, and advances TPC by 6 bytes.
Each effective address must satisfy 8-byte alignment. Misalignment raises Fault_DataAlignment before translation; a later permission or bounded-memory failure raises Fault_DataPage at the original address.
A fault records no successful memory event, performs no partial memory, destination, or writeback effect, preserves pending writeback, and leaves the faulting TPC available for full reissue.
A fixed-bit mismatch, reserved field value, or unavailable selected T/U source raises Fault_IllegalInstruction before instruction effects.
This example demonstrates the address calculation only; exact behavior remains in the current ASL and instruction contract.
With the base set to 0x100 and the signed immediate set to 2, the displacement is 16 and base plus displacement is 0x110. The memory access uses 0x110. The second 8-byte store uses 0x118 after both addresses pass preflight.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
No NDF clause is attached to this unit.
12 matching entries
PTO-AVS-AGU-HL-SDIP-ALIAS-001tests/asl/scalar/agu/HL.SDIP/scalar-exec-hl-sdip-registers-001.aslb5daa941e89d86439ca66630b879e94f6b55f39c87a9f97bc2bee8020914b162PTO-AVS-AGU-HL-SDIP-BOUND-001tests/asl/scalar/agu/HL.SDIP/scalar-bound-hl-sdip-address-001.aslf02fcc29031dce88c91702b8c2b60f429275aadc85ea0a4bd2a52ce10ea2bc22PTO-AVS-AGU-HL-SDIP-EXEC-001tests/asl/scalar/agu/HL.SDIP/scalar-exec-hl-sdip-direct-001.aslb5ab99264e8e7c9df024a7f5fa77f24a8733197bd3600043a13cbc99cc2bdc61PTO-AVS-AGU-HL-SDIP-FAULT-001tests/asl/scalar/agu/HL.SDIP/scalar-fault-hl-sdip-precise-001.aslae25055bbf5dfa74a569d1122f9ee32706d2758635fe34c275183aac807a024dPTO-AVS-SCALAR-HL-SDIP-DECODE-001tests/asl/scalar/agu/HL.SDIP/scalar-decode-hl-sdip-canonical-001.asl4e5ff8e2986a5f30628adba8aa0557e946a0f649f303e1856fd2fd1308fb1f79PTO-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-0029…
ADR-0029docs/status/decisions/0029-scalar-agu-totality-and-restart.md778e7bc53a5ae6487c051d66d0f84b6d697d6302628716bf5c745166ce982eefLoading ADR-0059…
ADR-0059docs/status/decisions/0059-mnemonic-field-encoding-closure.mdf18d13f735cfaf9f2803c754c5818f4af33d1cc42c489f0d9ce060b07bb3a196{
"classification": [
"agu"
],
"documentation": "docs/scalar/agu/HL.SDIP.md",
"id": "PTO-SCALAR-HL-SDIP",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "HL.SDIP",
"ndf_clause": "PTO-INST-SCALAR-HL-SDIP"
},
"mnemonic": "HL.SDIP",
"readiness_subjects": [
"ADR-0029",
"ADR-0059"
],
"semantic_tests": [
"PTO-AVS-AGU-HL-SDIP-ALIAS-001",
"PTO-AVS-AGU-HL-SDIP-BOUND-001",
"PTO-AVS-AGU-HL-SDIP-EXEC-001",
"PTO-AVS-AGU-HL-SDIP-FAULT-001"
],
"source": "asl/scalar/agu/HL.SDIP.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-AGU-HL-SDIP-ALIAS-001",
"PTO-AVS-AGU-HL-SDIP-BOUND-001",
"PTO-AVS-AGU-HL-SDIP-EXEC-001",
"PTO-AVS-AGU-HL-SDIP-FAULT-001",
"PTO-AVS-SCALAR-HL-SDIP-DECODE-001"
]
}0.58.5 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd8681265fb645de7d2629ed3d97e1b3ee0741ca63aa87ae0c9e89458ff6c36fc87ba3a853afa64eed8e1a756ba81b0a6f71962521bdf43f548a4fd4258753676cfcec3asl/scalar/agu/HL.SDIP.aslasl/scalar/agu/HL.SDIP.asl