Operands and parameters
SrcL- left absolute GPR source
shamt- shift amount
simm24- 24-bit signed immediate or displacement
HL.SETC.LTI - Compare scalar operands and update the bundle commit condition.
PTO-SCALAR-HL-SETC-LTIhl.setc.lti SrcL, simm| Field | Bits | Signedness | Architectural role | Encoded zero |
|---|---|---|---|---|
SrcL | 5 | encoding-defined | left absolute GPR source | Encoded zero names the architectural zero GPR. |
shamt | 5 | encoding-defined | shift amount | Encoded zero performs no shift. |
simm24 | 24 | signed | 24-bit signed immediate or displacement | Encoded zero supplies numeric zero for the 24-bit signed immediate or displacement. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| simm24 | 47:36 | variable |
| SrcL | 35:31 | variable |
| Constant | 30:28 | 3'b100 |
| shamt | 27:23 | variable |
| Constant | 22:16 | 7'b1110101 |
| simm24 | 15:4 | variable |
| Constant | 3:0 | 4'b1110 |
{
"reg": [
{
"bits": 4,
"name": "4'b1110"
},
{
"bits": 12,
"name": "simm24"
},
{
"bits": 7,
"name": "7'b1110101"
},
{
"bits": 5,
"name": "shamt"
},
{
"bits": 3,
"name": "3'b100"
},
{
"bits": 5,
"name": "SrcL"
},
{
"bits": 12,
"name": "simm24"
}
],
"config": {
"bits": 48,
"fontsize": 13,
"hspace": 900,
"lanes": 2,
"offset": 0
}
}hl.setc.lti SrcL, simm
SrcLshamtsimm24This Operation comes directly from the instruction owner; the page does not rewrite its behavior.
readonly func InstructionContractOperation_HL_SETC_LTI() => ScalarOperationbegin return ScalarOperation_HL_SETC_LTI;end;readonly func InstructionContractHandler_HL_SETC_LTI() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteSetCommit;end;
pure func InstructionContractCondition_HL_SETC_LTI() => ScalarConditionbegin return ScalarCondition_LT;end;
pure func InstructionContractCommitResult_HL_SETC_LTI( left: Word, right: Word) => booleanbegin return ConditionHolds( InstructionContractCondition_HL_SETC_LTI(), left, right);end;// PTO-INSTRUCTION: {"assembly":["hl.setc.lti SrcL, simm"],"block":[],"catalog_indices":[263],"catalog_records":[{"asm":"hl.setc.lti SrcL, simm","constraints":[],"encoding":[{"index":0,"mask":"0x0000707f000f","match":"0x00004075000e","width_bits":48}],"encoding_kind":"HL48","fields":[{"name":"SrcL","pieces":[{"instruction_lsb":31,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"shamt","pieces":[{"instruction_lsb":23,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"simm24","pieces":[{"instruction_lsb":36,"value_lsb":0,"width":12},{"instruction_lsb":4,"value_lsb":12,"width":12}],"signedness":"signed","width":24}],"form_id":"hl_setc_lti_48_ad4ffebe877c","length_bits":48,"mnemonic":"HL.SETC.LTI","semantic_family":"BRU","semantic_group":"BRU","semantic_handler":"ExecuteSetCommit","semantic_summary":"HL.SETC.LTI - Compare scalar operands and update the bundle commit condition.","status":"accepted"}],"classification":["bru"],"contract":{"block_composition":["Applicable only in the body of an active block whose BARG.TYPE is Conditional. Across the entire SETC condition-setting family, at most one occurrence may complete successfully in that block."],"canonical_assembly":["hl.setc.lti SrcL, simm"],"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":["hl.setc.lti SrcL, simm"],"exceptions":["Wrong block placement or a second successful SETC condition setter raises Illegal Block Exception before scalar source readiness or any architectural or pending-block effect.","A fixed-bit mismatch or unavailable selected relative source raises Fault_IllegalInstruction before commit state, BARG, queues, or TPC effects."],"field_contracts":{},"field_zero_meanings":{"SrcL":"Encoded zero names the architectural zero GPR.","shamt":"Encoded zero performs no shift.","simm24":"Encoded zero supplies numeric zero for the 24-bit signed immediate or displacement."},"legality":["All SETC condition setters share one block-private successful-occurrence marker; a failed first occurrence does not consume it."],"memory_effects":["none"],"operands":[{"field":"SrcL","role":"left absolute GPR source"},{"field":"shamt","role":"shift amount"},{"field":"simm24","role":"24-bit signed immediate or displacement"}],"ordering":["Check Conditional-block applicability and the shared occurrence marker before scalar source readiness or reads.","Snapshot all sources, compute the canonical zero-or-one condition, then atomically update the commit argument, BARG.TAKEN, and the occurrence marker."],"standalone_opcode":true,"state_effects":["Compute HL.SETC.LTI's local comparison or logical condition from source snapshots and canonicalize it to zero or one.","Atomically write that value to the commit argument and BARG.TAKEN, then mark the block condition as set. Preserve BARG.BPC, BARG.BPCN, BARG.BlockType, and BARG.TYPE.","No memory, reservation, descriptor, numeric-status, or destination-register effect occurs. Successful execution advances TPC by the encoded instruction length."]},"depends_on":["PTO-BLOCK-MODEL-SCHEMA-PROFILE-ENCODING"],"id":"PTO-SCALAR-HL-SETC-LTI","mnemonic":"HL.SETC.LTI","summary":"HL.SETC.LTI - Compare scalar operands and update the bundle commit condition.","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-SETC-LTI-CONDITIONAL-SETTER-001// ndf: kind=contract level=L1 layer=scalar status=accepted// HL.SETC.LTI MUST be applicable only in one active Conditional block.// Across all SETC condition setters, only the first successful occurrence in// that block may snapshot sources and atomically update CommitArgument and// BARG.TAKEN. A rejected occurrence MUST NOT consume the shared marker.// NDF-END: PTO-HL-SETC-LTI-CONDITIONAL-SETTER-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_HL_SETC_LTI() => ScalarOperationbegin return ScalarOperation_HL_SETC_LTI;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_HL_SETC_LTI() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteSetCommit;end;
pure func InstructionContractCondition_HL_SETC_LTI() => ScalarConditionbegin return ScalarCondition_LT;end;
pure func InstructionContractCommitResult_HL_SETC_LTI( left: Word, right: Word) => booleanbegin return ConditionHolds( InstructionContractCondition_HL_SETC_LTI(), left, right);end;// DOC-END: operation
HL.SETC.LTI evaluates signed less-than and publishes the result as the current Conditional bundle commit decision.
Placement and the single-setter rule are checked before source readiness or reads.
The decoded immediate is logically shifted left by shamt before the condition is evaluated.
The snapshotted operands are evaluated for signed less-than and canonicalized to XLEN one or zero.
SrcL supplies the left scalar source.shamt supplies the encoded shift amount.simm24 supplies a signed encoded immediate.The canonical condition is written atomically to _CommitArgument and BARG.TAKEN, and the condition-set marker becomes true.
On success, HL.SETC.LTI advances TPC by 6 bytes. It has no scalar destination and no memory or reservation effect.
The instruction is valid only in the applicable Conditional bundle context, and only one successful condition setter may occur.
Wrong placement or a repeated setter raises an Illegal Block Exception before source reads; encoding or unavailable-source failures raise Fault_IllegalInstruction before commit or TPC effects.
This example illustrates the current owner and does not create a second semantic definition.
hl.setc.lti SrcL, simm evaluates the described condition, writes the canonical decision to commit state, and advances TPC only after that update.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
HL.SETC.LTI MUST be applicable only in one active Conditional block. Across all SETC condition setters, only the first successful occurrence in that block may snapshot sources and atomically update CommitArgument and BARG.TAKEN. A rejected occurrence MUST NOT consume the shared marker.
PTO-HL-SETC-LTI-CONDITIONAL-SETTER-001asl/scalar/bru/HL.SETC.LTI.asldbe05caa32c4a83498b6dffddac37d0b4eb0dbc18129b363456127bd22dfbd4b2637f42ce8f2f3a31786a63430f221fbf4dc9570527871c91e98a82dfeb8903211 matching entries
PTO-AVS-BRU-HL-SETC-LTI-BOUND-001tests/asl/scalar/bru/HL.SETC.LTI/scalar-bound-hl-setc-lti-fields-001.asl035507cb9e56779a545b208fc494f8626aa4f6a4f8cd618a85420267b35fc4e7PTO-AVS-BRU-HL-SETC-LTI-EXEC-001tests/asl/scalar/bru/HL.SETC.LTI/scalar-exec-hl-setc-lti-direct-001.asl27763d972b9608226c1962a094d7d476a6c731ecfe0fc176994ac4e4b4dd813aPTO-AVS-SCALAR-HL-SETC-LTI-DECODE-001tests/asl/scalar/bru/HL.SETC.LTI/scalar-decode-hl-setc-lti-canonical-001.asl70c9590213364648f1fcd8cc69050cc72140d4f82f031c5c19c6f2e1b7287731PTO-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/HL.SETC.LTI.md",
"id": "PTO-SCALAR-HL-SETC-LTI",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "HL.SETC.LTI",
"ndf_clause": "PTO-INST-SCALAR-HL-SETC-LTI"
},
"mnemonic": "HL.SETC.LTI",
"readiness_subjects": [
"ADR-0027",
"ADR-0059",
"ADR-0084"
],
"semantic_tests": [
"PTO-AVS-BRU-HL-SETC-LTI-BOUND-001",
"PTO-AVS-BRU-HL-SETC-LTI-EXEC-001"
],
"source": "asl/scalar/bru/HL.SETC.LTI.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-BRU-HL-SETC-LTI-BOUND-001",
"PTO-AVS-BRU-HL-SETC-LTI-EXEC-001",
"PTO-AVS-SCALAR-HL-SETC-LTI-DECODE-001"
]
}0.58.5 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd86812dbe05caa32c4a83498b6dffddac37d0b4eb0dbc18129b363456127bd22dfbd4b6fcc89fee8355b7b8d536a9e82d40ae0635c58e59ae2a740dd70234341f39361asl/scalar/bru/HL.SETC.LTI.aslasl/scalar/bru/HL.SETC.LTI.aslasl/scalar/bru/HL.SETC.LTI.asl