Operands and parameters
RegDst- absolute GPR destination
SrcL- left absolute GPR source
SrcR- right absolute GPR source
SrcRType- right-source modifier selector
CMP.GEU - Compare scalar operands and write the encoded boolean result.
PTO-SCALAR-CMP-GEUcmp.geu SrcL, SrcR<{.sw, .uw}>, ->{t, u, Rd}| Field | Bits | Signedness | Architectural role | Encoded zero |
|---|---|---|---|---|
RegDst | 5 | encoding-defined | absolute GPR destination | Encoded zero names the architectural zero GPR. |
SrcL | 5 | encoding-defined | left absolute GPR source | Encoded zero names the architectural zero GPR. |
SrcR | 5 | encoding-defined | right absolute GPR source | Encoded zero names the architectural zero GPR. |
SrcRType | 2 | encoding-defined | right-source modifier selector | Encoded zero selects value zero of the right-source modifier selector. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| Constant | 31:27 | 5'b00000 |
| SrcRType | 26:25 | variable |
| SrcR | 24:20 | variable |
| SrcL | 19:15 | variable |
| Constant | 14:12 | 3'b111 |
| RegDst | 11:7 | variable |
| Constant | 6:0 | 7'b1000101 |
{
"reg": [
{
"bits": 7,
"name": "7'b1000101"
},
{
"bits": 5,
"name": "RegDst"
},
{
"bits": 3,
"name": "3'b111"
},
{
"bits": 5,
"name": "SrcL"
},
{
"bits": 5,
"name": "SrcR"
},
{
"bits": 2,
"name": "SrcRType"
},
{
"bits": 5,
"name": "5'b00000"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}cmp.geu SrcL, SrcR<{.sw, .uw}>, ->{t, u, Rd}
RegDstSrcLSrcRSrcRTypeThis Operation comes directly from the instruction owner; the page does not rewrite its behavior.
readonly func InstructionContractOperation_CMP_GEU() => ScalarOperationbegin return ScalarOperation_CMP_GEU;end;readonly func InstructionContractHandler_CMP_GEU() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteCompare;end;
pure func InstructionContractCondition_CMP_GEU() => ScalarConditionbegin return ScalarCondition_GEU;end;
pure func InstructionContractCompareResult_CMP_GEU( left: Word, right: Word) => booleanbegin return ConditionHolds( InstructionContractCondition_CMP_GEU(), left, right);end;// PTO-INSTRUCTION: {"assembly":["cmp.geu SrcL, SrcR<{.sw, .uw}>, ->{t, u, Rd}"],"block":[],"catalog_indices":[61],"catalog_records":[{"asm":"cmp.geu SrcL, SrcR<{.sw, .uw}>, ->{t, u, Rd}","constraints":[],"encoding":[{"index":0,"mask":"0xf800707f","match":"0x00007045","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"RegDst","pieces":[{"instruction_lsb":7,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SrcL","pieces":[{"instruction_lsb":15,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SrcR","pieces":[{"instruction_lsb":20,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"SrcRType","pieces":[{"instruction_lsb":25,"value_lsb":0,"width":2}],"signedness":"encoding-defined","width":2}],"form_id":"cmp_geu_32_0c002dc415ef","length_bits":32,"mnemonic":"CMP.GEU","semantic_family":"BRU","semantic_group":"BRU","semantic_handler":"ExecuteCompare","semantic_summary":"CMP.GEU - Compare scalar operands and write the encoded boolean result.","status":"accepted"}],"classification":["bru"],"contract":{"block_composition":["none"],"canonical_assembly":["cmp.geu SrcL, SrcR<{.sw, .uw}>, ->{t, u, Rd}"],"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":["cmp.geu SrcL, SrcR<{.sw, .uw}>, ->{t, u, Rd}"],"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":{"RegDst":"Encoded zero names the architectural zero GPR.","SrcL":"Encoded zero names the architectural zero GPR.","SrcR":"Encoded zero names the architectural zero GPR.","SrcRType":"Encoded zero selects value zero of the right-source modifier selector."},"legality":["Every value in each unconstrained encoded field is assigned; constrained complements are reserved and reject before effects."],"memory_effects":["none"],"operands":[{"field":"RegDst","role":"absolute GPR destination"},{"field":"SrcL","role":"left absolute GPR source"},{"field":"SrcR","role":"right absolute GPR source"},{"field":"SrcRType","role":"right-source modifier selector"}],"ordering":["none"],"standalone_opcode":true,"state_effects":["CMP.GEU - Compare scalar operands and write the encoded boolean result.","After decode and legality checks, execute the normative ExecuteCompare ASL handler; no other architectural state is modified."]},"depends_on":["PTO-BLOCK-MODEL-SCHEMA-PROFILE-ENCODING"],"id":"PTO-SCALAR-CMP-GEU","mnemonic":"CMP.GEU","summary":"CMP.GEU - Compare scalar operands and write the encoded boolean result.","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_CMP_GEU() => ScalarOperationbegin return ScalarOperation_CMP_GEU;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_CMP_GEU() => ScalarSemanticHandlerbegin return ScalarHandler_ExecuteCompare;end;
pure func InstructionContractCondition_CMP_GEU() => ScalarConditionbegin return ScalarCondition_GEU;end;
pure func InstructionContractCompareResult_CMP_GEU( left: Word, right: Word) => booleanbegin return ConditionHolds( InstructionContractCondition_CMP_GEU(), left, right);end;// DOC-END: operation
CMP.GEU evaluates unsigned greater-than-or-equal over decoded scalar operands and publishes canonical XLEN one or zero.
The instruction snapshots its operands, prepares the decoded right source, and then evaluates unsigned greater-than-or-equal.
A true relation becomes XLEN one; a false relation becomes XLEN zero.
RegDst selects the encoded destination or discard behavior.SrcL supplies the left scalar source.SrcR supplies the right scalar source.SrcRType selects the right-source transformation.The canonical boolean is published through the encoded destination, then TPC advances by 4 bytes.
The instruction does not modify commit state and does not access memory or reservation state.
Encoding, reserved field values, and source availability are checked before destination, control, or TPC effects.
This example illustrates the current owner and does not create a second semantic definition.
cmp.geu SrcL, SrcR<{.sw, .uw}>, ->{t, u, Rd} publishes XLEN one when its condition is true and XLEN zero otherwise.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
No NDF clause is attached to this unit.
10 matching entries
PTO-AVS-BRU-CMP-GEU-BOUND-001tests/asl/scalar/bru/CMP.GEU/scalar-bound-cmp-geu-fields-001.asl5dee56654994bcc8942dc9e3246dd18a1c83248fd006552bcf1bca4b67a577dbPTO-AVS-BRU-CMP-GEU-EXEC-001tests/asl/scalar/bru/CMP.GEU/scalar-exec-cmp-geu-direct-001.asl8dfc1db8f505f411c03c560575037c0d208f05bb54ce3874534aaeaa861f6e7fPTO-AVS-SCALAR-CMP-GEU-DECODE-001tests/asl/scalar/bru/CMP.GEU/scalar-decode-cmp-geu-canonical-001.asl65cfe3ced3e1d66f30c0f54917d86f5735239fdca368a24e3974b097697d82bePTO-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.mdf18d13f735cfaf9f2803c754c5818f4af33d1cc42c489f0d9ce060b07bb3a196{
"classification": [
"bru"
],
"documentation": "docs/scalar/bru/CMP.GEU.md",
"id": "PTO-SCALAR-CMP-GEU",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "CMP.GEU",
"ndf_clause": "PTO-INST-SCALAR-CMP-GEU"
},
"mnemonic": "CMP.GEU",
"readiness_subjects": [
"ADR-0027",
"ADR-0059"
],
"semantic_tests": [
"PTO-AVS-BRU-CMP-GEU-BOUND-001",
"PTO-AVS-BRU-CMP-GEU-EXEC-001"
],
"source": "asl/scalar/bru/CMP.GEU.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-BRU-CMP-GEU-BOUND-001",
"PTO-AVS-BRU-CMP-GEU-EXEC-001",
"PTO-AVS-SCALAR-CMP-GEU-DECODE-001"
]
}0.58.5 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd86812a2754fea7520987f0d6215040ad18663f3a1fd844c25518610dbbfd64d874770472bc227e992e326f854bc936ee06e54d5d2b3131ea559177df0dfa3f0c228abasl/scalar/bru/CMP.GEU.aslasl/scalar/bru/CMP.GEU.asl