操作数与参数
RegDst- Reg5 updated-base destination or discard
SrcD- Reg5 first store-data source
SrcL- Reg5 address-base source
SrcR- Reg5 register-offset source
SrcRType- register-offset transformation selector
HL.SD.UPR snapshots its scalar sources, forms its encoded address, and stores one aligned little-endian 8-byte value.
PTO-SCALAR-HL-SD-UPRhl.sd.upr SrcD, [SrcL, SrcR<{.sw,.uw,.neg}>], ->{t, u, Rd}| 字段 | 位宽 | 有符号性 | 架构角色 | 编码零 |
|---|---|---|---|---|
RegDst | 5 | encoding-defined | Reg5 updated-base destination or discard | Encoded zero discards this result without suppressing the instruction's other effects. |
SrcD | 5 | encoding-defined | Reg5 first store-data source | Encoded zero reads the architectural zero GPR. |
SrcL | 5 | encoding-defined | Reg5 address-base source | Encoded zero reads the architectural zero GPR. |
SrcR | 5 | encoding-defined | Reg5 register-offset source | Encoded zero reads the architectural zero GPR. |
SrcRType | 2 | encoding-defined | register-offset transformation selector | Encoded zero leaves the complete PTO_XLEN register-offset value unchanged. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| SrcD | 47:43 | variable |
| SrcRType | 42:41 | variable |
| SrcR | 40:36 | variable |
| SrcL | 35:31 | variable |
| Constant | 30:16 | 15'b111000001001001 |
| RegDst | 15:11 | variable |
| Constant | 10:0 | 11'b00000101110 |
{
"reg": [
{
"bits": 11,
"name": "11'b00000101110"
},
{
"bits": 5,
"name": "RegDst"
},
{
"bits": 15,
"name": "15'b111000001001001"
},
{
"bits": 5,
"name": "SrcL"
},
{
"bits": 5,
"name": "SrcR"
},
{
"bits": 2,
"name": "SrcRType"
},
{
"bits": 5,
"name": "SrcD"
}
],
"config": {
"bits": 48,
"fontsize": 13,
"hspace": 900,
"lanes": 2,
"offset": 0
}
}hl.sd.upr SrcD, [SrcL, SrcR<{.sw,.uw,.neg}>], ->{t, u, Rd}
RegDstSrcDSrcLSrcRSrcRType下面是该指令所有者中的 Operation;页面没有重写这段行为。
readonly func InstructionContractOperation_HL_SD_UPR() => ScalarOperationbegin return ScalarOperation_HL_SD_UPR;end;readonly func InstructionContractHandler_HL_SD_UPR() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteScalarStore;end;
pure func InstructionContractAGUAction_HL_SD_UPR() => ScalarAGUActionbegin return ScalarAGU_Store;end;
pure func InstructionContractAGUAddressKind_HL_SD_UPR() => ScalarAGUAddressKindbegin return ScalarAGU_Register;end;
pure func InstructionContractAGUSizeBytes_HL_SD_UPR() => integer {1,2,4,8}begin return 8;end;
pure func InstructionContractAGUOffsetScale_HL_SD_UPR() => integer {0..3}begin return 0;end;
pure func InstructionContractAGUUpdateMode_HL_SD_UPR() => AddressUpdateModebegin return AddressUpdate_PreIndex;end;
pure func InstructionContractAGUSignedLoad_HL_SD_UPR() => booleanbegin return FALSE;end;
pure func InstructionContractAGUPrefetchReturnsAddress_HL_SD_UPR() => booleanbegin return FALSE;end;// PTO-INSTRUCTION: {"assembly":["hl.sd.upr SrcD, [SrcL, SrcR<{.sw,.uw,.neg}>], ->{t, u, Rd}"],"block":[],"catalog_indices":[248],"catalog_records":[{"agu":{"action":"Store","address_kind":"Register","offset_scale":0,"prefetch_returns_address":false,"signed_load":false,"size_bytes":8,"update_mode":"PreIndex"},"asm":"hl.sd.upr SrcD, [SrcL, SrcR<{.sw,.uw,.neg}>], ->{t, u, Rd}","constraints":[],"encoding":[{"index":0,"mask":"0x00007fff07ff","match":"0x00007049002e","width_bits":48}],"encoding_kind":"HL48","fields":[{"name":"RegDst","pieces":[{"instruction_lsb":11,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SrcD","pieces":[{"instruction_lsb":43,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SrcL","pieces":[{"instruction_lsb":31,"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":"SrcRType","pieces":[{"instruction_lsb":41,"value_lsb":0,"width":2}],"signedness":"encoding-defined","width":2}],"form_id":"hl_sd_upr_48_af7118270a90","length_bits":48,"mnemonic":"HL.SD.UPR","semantic_family":"AGU","semantic_group":"STA/PRE_INDEX","semantic_handler":"ExecuteScalarStore","semantic_summary":"HL.SD.UPR snapshots its scalar sources, forms its encoded address, and stores one aligned little-endian 8-byte value.","status":"accepted"}],"classification":["agu"],"contract":{"block_composition":["none"],"canonical_assembly":["hl.sd.upr SrcD, [SrcL, SrcR<{.sw,.uw,.neg}>], ->{t, u, Rd}"],"defaults":["Every displayed operand field is encoded explicitly; encoded zero is a value and never denotes omission.","SrcRType=0 leaves SrcR unchanged, SrcRType=1 sign-extends SrcR[31:0], SrcRType=2 zero-extends SrcR[31:0], and SrcRType=3 negates the full PTO_XLEN value. Encoded shamt zero performs no shift."],"encoding_class":"standalone-encoded","examples":["hl.sd.upr SrcD, [SrcL, SrcR<{.sw,.uw,.neg}>], ->{t, u, Rd}"],"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":{"RegDst":"Encoded zero discards this result without suppressing the instruction's other effects.","SrcD":"Encoded zero reads the architectural zero GPR.","SrcL":"Encoded zero reads the architectural zero GPR.","SrcR":"Encoded zero reads the architectural zero GPR.","SrcRType":"Encoded zero leaves the complete PTO_XLEN register-offset value unchanged."},"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.","Every Reg5 destination is assigned: codes 1..23 write GPRs, code 30 pushes U, code 31 pushes T, and codes 0 and 24..29 discard only that result.","All four SrcRType values and all shamt values 0..31 are assigned; apply the modifier before the shift.","Each memory address must be aligned to the 8-byte access size; a 8-byte access is the complete transfer unit."],"memory_effects":["After complete preflight, perform one little-endian 8-byte store and record one relaxed store event.","A successful overlapping store invalidates the overlapping reservation; a nonoverlapping reservation remains valid."],"operands":[{"field":"RegDst","role":"Reg5 updated-base destination or discard"},{"field":"SrcD","role":"Reg5 first store-data source"},{"field":"SrcL","role":"Reg5 address-base source"},{"field":"SrcR","role":"Reg5 register-offset source"},{"field":"SrcRType","role":"register-offset transformation selector"}],"ordering":["Snapshot all explicit and implicit scalar sources before destination or memory effects; duplicate and source/destination aliases observe pre-instruction values.","Complete the relaxed 8-byte memory operation, publish any result or writeback, and then advance TPC."],"standalone_opcode":true,"state_effects":["Form offset = LSL(Modify(SrcR, SrcRType), 0) and add it modulo 2^PTO_XLEN to the SrcL base.","Pre-index mode accesses the updated base and publishes that same updated base only after successful memory completion.","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-SD-UPR","mnemonic":"HL.SD.UPR","summary":"HL.SD.UPR snapshots its scalar sources, forms its encoded address, and stores one aligned little-endian 8-byte value.","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-SD-UPR-DECISION-BINDING-001// ndf: kind=contract level=L1 layer=scalar status=accepted// HL.SD.UPR 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-SD-UPR-DECISION-BINDING-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_HL_SD_UPR() => ScalarOperationbegin return ScalarOperation_HL_SD_UPR;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_HL_SD_UPR() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteScalarStore;end;
pure func InstructionContractAGUAction_HL_SD_UPR() => ScalarAGUActionbegin return ScalarAGU_Store;end;
pure func InstructionContractAGUAddressKind_HL_SD_UPR() => ScalarAGUAddressKindbegin return ScalarAGU_Register;end;
pure func InstructionContractAGUSizeBytes_HL_SD_UPR() => integer {1,2,4,8}begin return 8;end;
pure func InstructionContractAGUOffsetScale_HL_SD_UPR() => integer {0..3}begin return 0;end;
pure func InstructionContractAGUUpdateMode_HL_SD_UPR() => AddressUpdateModebegin return AddressUpdate_PreIndex;end;
pure func InstructionContractAGUSignedLoad_HL_SD_UPR() => booleanbegin return FALSE;end;
pure func InstructionContractAGUPrefetchReturnsAddress_HL_SD_UPR() => booleanbegin return FALSE;end;// DOC-END: operation
HL.SD.UPR 是一条独立的 48 位 AGU 指令;它形成寄存器偏移地址,并存储一个对齐的小端 8 字节值。
HL.SD.UPR 按 SrcRType 转换 SrcR,不再缩放,并将结果按 2^PTO_XLEN 取模后加到快照中的 SrcL 基址。
完成全部预检后,该指令从已快照的存储数据源执行一次小端 8 字节存储。
前索引模式访问更新后的基址,并且只在内存操作成功完成后发布同一个更新后基址。
SrcL 提供基址;SrcR 提供寄存器偏移量;SrcRType 提供偏移量转换方式。其中的 Reg5 源 SrcD、SrcL、SrcR 使用完整编码域:0..23 选择 GPR,24..27 选择 T#1..T#4,28..31 选择 U#1..U#4,且读取不会消费队列项。SrcD 提供存储数据;RegDst 接收更新后基址;目的端编码 1..23 写 GPR,30 压入 U,31 压入 T,0 与 24..29 只丢弃该结果。SrcRType 的 0..3 均已分配;先执行所选转换,再执行该形式的固定缩放。所有显式和隐式标量源都在内存或目的端效果之前完成快照,因此别名观察到的是指令执行前的值。
成功执行会记录一个 relaxed 存储事件,使重叠保留失效但保留不重叠的保留,并将 TPC 前移 6 字节。
每个有效地址都必须满足 8 字节对齐。未对齐会在地址转换前引发 Fault_DataAlignment;之后的权限或有界内存失败会在原始地址引发 Fault_DataPage。
发生故障时不会记录成功的内存事件,也不会产生部分内存、目的端或回写效果;待处理回写保持不变,故障 TPC 保留以供完整重发。
固定比特不匹配、字段取保留值或所选 T/U 源不可用,都会在指令效果之前引发 Fault_IllegalInstruction。
该示例只演示地址计算;精确行为仍由当前 ASL 与指令契约定义。
若基址为 0x100、偏移源为不经转换的 8,并采用固定左移 0 位,对齐位移就是 8,基址加位移为 0x108。内存访问使用 0x108。若权限允许,指令在该对齐地址存储 8 字节。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
HL.SD.UPR 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-SD-UPR-DECISION-BINDING-001asl/scalar/agu/HL.SD.UPR.asl443660796f0c10107fab1aa9a13a5a048e3ccc70b230961cf65f3e4b3d5cf0bd3adee617a73c635a459c3a48ad46c6ea64e06c646304d2b658a7a59dce2277f914 matching entries
PTO-AVS-AGU-HL-SD-UPR-ALIAS-001tests/asl/scalar/agu/HL.SD.UPR/scalar-exec-hl-sd-upr-registers-001.asl3812f9fad352ed76251f221b9bed6801ddc97dac769e2b349757a4ce8ff0d3a0PTO-AVS-AGU-HL-SD-UPR-BOUND-001tests/asl/scalar/agu/HL.SD.UPR/scalar-bound-hl-sd-upr-address-001.asle1cca2a6aba10091489c7725d5ce12bc09615a04063958dda2660ae1a1132bc9PTO-AVS-AGU-HL-SD-UPR-EXEC-001tests/asl/scalar/agu/HL.SD.UPR/scalar-exec-hl-sd-upr-direct-001.asl0fd7fb863e2cd971db4a5ebc31b5cf2caba1b06ed0aeeb0f8ed696a5860751a3PTO-AVS-AGU-HL-SD-UPR-FAULT-001tests/asl/scalar/agu/HL.SD.UPR/scalar-fault-hl-sd-upr-precise-001.aslc487d99f9eb49aa32abca0aed63182e86fd068e8cb773583098fb6cd59ef8cf8PTO-AVS-SCALAR-HL-SD-UPR-DECODE-001tests/asl/scalar/agu/HL.SD.UPR/scalar-decode-hl-sd-upr-canonical-001.aslb79a9599c0a4d6ef30635f1b8f618d9b14bf1ea20d8d9948f399e17e6342272dPTO-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-0024…
ADR-0024docs/status/decisions/0024-pc-relative-and-unscaled-agu-addressing.md36dc4f1fbe1714d4eb522f69ccca4216e7a233f55a44cc3f03cb36346911445eLoading ADR-0029…
ADR-0029docs/status/decisions/0029-scalar-agu-totality-and-restart.md778e7bc53a5ae6487c051d66d0f84b6d697d6302628716bf5c745166ce982eefLoading 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": [
"agu"
],
"documentation": "docs/scalar/agu/HL.SD.UPR.md",
"id": "PTO-SCALAR-HL-SD-UPR",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "HL.SD.UPR",
"ndf_clause": "PTO-INST-SCALAR-HL-SD-UPR"
},
"mnemonic": "HL.SD.UPR",
"readiness_subjects": [
"ADR-0024",
"ADR-0029",
"ADR-0059",
"ADR-0084"
],
"semantic_tests": [
"PTO-AVS-AGU-HL-SD-UPR-ALIAS-001",
"PTO-AVS-AGU-HL-SD-UPR-BOUND-001",
"PTO-AVS-AGU-HL-SD-UPR-EXEC-001",
"PTO-AVS-AGU-HL-SD-UPR-FAULT-001"
],
"source": "asl/scalar/agu/HL.SD.UPR.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-AGU-HL-SD-UPR-ALIAS-001",
"PTO-AVS-AGU-HL-SD-UPR-BOUND-001",
"PTO-AVS-AGU-HL-SD-UPR-EXEC-001",
"PTO-AVS-AGU-HL-SD-UPR-FAULT-001",
"PTO-AVS-SCALAR-HL-SD-UPR-DECODE-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd86812443660796f0c10107fab1aa9a13a5a048e3ccc70b230961cf65f3e4b3d5cf0bd7b3c434448bc7a53bed1a888a0253f85b3d545a914449395242b52810c380c8dasl/scalar/agu/HL.SD.UPR.aslasl/scalar/agu/HL.SD.UPR.aslasl/scalar/agu/HL.SD.UPR.asl