操作数与参数
SrcL- left absolute GPR source
SrcZero- explicit zero-valued source selector
simm12- 12-bit signed immediate or displacement
JR - Jump to the scalar-register target.
PTO-SCALAR-JRjr SrcL, label| 字段 | 位宽 | 有符号性 | 架构角色 | 编码零 |
|---|---|---|---|---|
SrcL | 5 | encoding-defined | left absolute GPR source | Encoded zero names the architectural zero GPR. |
SrcZero | 5 | encoding-defined | explicit zero-valued source selector | Encoded zero selects value zero of the explicit zero-valued source selector. |
simm12 | 12 | signed | 12-bit signed immediate or displacement | Encoded zero supplies numeric zero for the 12-bit signed immediate or displacement. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| simm12 | 31:25 | variable |
| SrcZero | 24:20 | variable |
| SrcL | 19:15 | variable |
| Constant | 14:12 | 3'b110 |
| simm12 | 11:7 | variable |
| Constant | 6:0 | 7'b0100111 |
{
"reg": [
{
"bits": 7,
"name": "7'b0100111"
},
{
"bits": 5,
"name": "simm12"
},
{
"bits": 3,
"name": "3'b110"
},
{
"bits": 5,
"name": "SrcL"
},
{
"bits": 5,
"name": "SrcZero"
},
{
"bits": 7,
"name": "simm12"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}jr SrcL, label
SrcLSrcZerosimm12下面是该指令所有者中的 Operation;页面没有重写这段行为。
readonly func InstructionContractOperation_JR() => ScalarOperationbegin return ScalarOperation_JR;end;readonly func InstructionContractHandler_JR() => ScalarSemanticHandlerbegin return ScalarHandler_JumpRegister;end;
pure func InstructionContractRequiresEvenTarget_JR() => booleanbegin return TRUE;end;
pure func InstructionContractTarget_JR( register_value: Word, halfword_offset: Word) => Wordbegin return register_value + LSL(halfword_offset, 1);end;// PTO-INSTRUCTION: {"assembly":["jr SrcL, label"],"block":[],"catalog_indices":[307],"catalog_records":[{"asm":"jr SrcL, label","constraints":[],"encoding":[{"index":0,"mask":"0x0000707f","match":"0x00006027","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"SrcL","pieces":[{"instruction_lsb":15,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SrcZero","pieces":[{"instruction_lsb":20,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"simm12","pieces":[{"instruction_lsb":25,"value_lsb":0,"width":7},{"instruction_lsb":7,"value_lsb":7,"width":5}],"signedness":"signed","width":12}],"form_id":"jr_32_c4128e843b05","length_bits":32,"mnemonic":"JR","semantic_family":"BRU","semantic_group":"BRU","semantic_handler":"JumpRegister","semantic_summary":"JR - Jump to the scalar-register target.","status":"accepted"}],"classification":["bru"],"contract":{"block_composition":["none"],"canonical_assembly":["jr SrcL, label"],"defaults":["The selected assembly form determines which fields are present; every present field carries its encoded value and no encoded zero means omission."],"encoding_class":"standalone-encoded","examples":["jr SrcL, label"],"exceptions":["Reserved field encodings raise Fault_IllegalInstruction before effects; handler-specific arithmetic, memory, control-flow, system-register, and privilege faults follow the embedded normative ASL operation."],"field_contracts":{},"field_zero_meanings":{"SrcL":"Encoded zero names the architectural zero GPR.","SrcZero":"Encoded zero selects value zero of the explicit zero-valued source selector.","simm12":"Encoded zero supplies numeric zero for the 12-bit signed immediate or displacement."},"legality":["Every value in each unconstrained encoded field is assigned; constrained complements are reserved and reject before effects."],"memory_effects":["none"],"operands":[{"field":"SrcL","role":"left absolute GPR source"},{"field":"SrcZero","role":"explicit zero-valued source selector"},{"field":"simm12","role":"12-bit signed immediate or displacement"}],"ordering":["none"],"standalone_opcode":true,"state_effects":["JR - Jump to the scalar-register target.","After decode and legality checks, execute the normative JumpRegister ASL handler; no other architectural state is modified."]},"depends_on":["PTO-BLOCK-MODEL-SCHEMA-PROFILE-ENCODING"],"id":"PTO-SCALAR-JR","mnemonic":"JR","summary":"JR - Jump to the scalar-register target.","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-JR-DECISION-BINDING-001// ndf: kind=contract level=L1 layer=scalar status=accepted// JR 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-JR-DECISION-BINDING-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_JR() => ScalarOperationbegin return ScalarOperation_JR;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_JR() => ScalarSemanticHandlerbegin return ScalarHandler_JumpRegister;end;
pure func InstructionContractRequiresEvenTarget_JR() => booleanbegin return TRUE;end;
pure func InstructionContractTarget_JR( register_value: Word, halfword_offset: Word) => Wordbegin return register_value + LSL(halfword_offset, 1);end;// DOC-END: operation
JR 把控制流转移到寄存器基址加有符号半字位移形成的目标。
先对标量源取快照,再把有符号立即数左移 1 位,并将二者相加形成目标。
目标必须为偶数;奇数目标会引发 Fault_InstructionPC,且不会被写入 PC。
SrcL 提供左侧标量源。SrcZero 是该编码要求的显式零值选择器。simm12 提供有符号编码立即数。通过检查的目标会作为一次架构转换替换控制流 PC。
跳转没有标量目的位置,也不访问内存或保留状态。
编码和源可用性会在形成目标前检查;目标对齐会在更新 PC 前检查。
下面的示例只帮助理解当前所有者,不构成第二份语义定义。
jr SrcL, label 先按上述规则形成并检查目标,再替换 PC。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
JR 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-JR-DECISION-BINDING-001asl/scalar/bru/JR.asl37132582757b9bc513c330568c633cd4b990c91b9e03abc99cfc1dc15c39ccd7b88a55bb6acf7ba5fd2b820f7c2ed190209617c3ec784787112e3463f3d7d41212 matching entries
PTO-AVS-BRU-JR-ALIAS-001tests/asl/scalar/bru/JR/scalar-exec-jr-alias-001.asl2fcd2b2ae087bfa6ee342161a2df62adee761f639bb81f00a646b418d96d7d46PTO-AVS-BRU-JR-BOUND-001tests/asl/scalar/bru/JR/scalar-bound-jr-fields-001.asld0bd9249c526b75ebfcb52b94cb1ebc20f5049d0e3ca35c378467552b3c3d612PTO-AVS-BRU-JR-EXEC-001tests/asl/scalar/bru/JR/scalar-exec-jr-direct-001.aslfa9d8a18c4fef12808f16da777dc82161f525ed1517bbc431e494bb16094e3f8PTO-AVS-SCALAR-JR-DECODE-001tests/asl/scalar/bru/JR/scalar-decode-jr-canonical-001.asl65197a74b9f2c8ff215d0b0ceda26b5374fe5e9752a62c8cff01e1fbe64893a7PTO-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-0027…
ADR-0027docs/status/decisions/0027-scalar-bru-totality-and-target-legality.md9289112d250e31f4222dcd27d20bda791be7a1b57764af7ed9b187e767b7acedLoading 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": [
"bru"
],
"documentation": "docs/scalar/bru/JR.md",
"id": "PTO-SCALAR-JR",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "JR",
"ndf_clause": "PTO-INST-SCALAR-JR"
},
"mnemonic": "JR",
"readiness_subjects": [
"ADR-0027",
"ADR-0059",
"ADR-0084"
],
"semantic_tests": [
"PTO-AVS-BRU-JR-ALIAS-001",
"PTO-AVS-BRU-JR-BOUND-001",
"PTO-AVS-BRU-JR-EXEC-001"
],
"source": "asl/scalar/bru/JR.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-BRU-JR-ALIAS-001",
"PTO-AVS-BRU-JR-BOUND-001",
"PTO-AVS-BRU-JR-EXEC-001",
"PTO-AVS-SCALAR-JR-DECODE-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd8681237132582757b9bc513c330568c633cd4b990c91b9e03abc99cfc1dc15c39ccd72884e0463d2fbaa77bcbe49fca80d59cb8c8c74a3187d8f1e35f63214687870dasl/scalar/bru/JR.aslasl/scalar/bru/JR.aslasl/scalar/bru/JR.asl