Operands and parameters
RegDst- Reg5 destination or discard
SrcL- left or sole Reg5 source
SrcR- right Reg5 source
SrcType- source carrier selector
FMIN applies the architecture-owned ordered minimum, NaN, and signed-zero rules to selected FP64 or FP32 carriers.
PTO-SCALAR-FMINfmin.{T} SrcL, SrcR, ->{t, u, Rd}| Field | Bits | Signedness | Architectural role | Encoded zero |
|---|---|---|---|---|
RegDst | 5 | encoding-defined | Reg5 destination or discard | Encoded zero discards the result. |
SrcL | 5 | encoding-defined | left or sole Reg5 source | Encoded zero reads the architectural zero GPR. |
SrcR | 5 | encoding-defined | right Reg5 source | Encoded zero reads the architectural zero GPR. |
SrcType | 2 | encoding-defined | source carrier selector | Encoded zero selects the 64-bit source carrier; it is not omission. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| Constant | 31:27 | 5'b00000 |
| SrcType | 26:25 | variable |
| SrcR | 24:20 | variable |
| SrcL | 19:15 | variable |
| Constant | 14:12 | 3'b111 |
| RegDst | 11:7 | variable |
| Constant | 6:0 | 7'b1011011 |
{
"reg": [
{
"bits": 7,
"name": "7'b1011011"
},
{
"bits": 5,
"name": "RegDst"
},
{
"bits": 3,
"name": "3'b111"
},
{
"bits": 5,
"name": "SrcL"
},
{
"bits": 5,
"name": "SrcR"
},
{
"bits": 2,
"name": "SrcType"
},
{
"bits": 5,
"name": "5'b00000"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}fmin.{T} SrcL, SrcR, ->{t, u, Rd}
RegDstSrcLSrcRSrcTypeThis Operation comes directly from the instruction owner; the page does not rewrite its behavior.
readonly func InstructionContractOperation_FMIN() => ScalarOperationbegin return ScalarOperation_FMIN;end;readonly func InstructionContractHandler_FMIN() => ScalarSemanticHandlerbegin return ScalarHandler_FloatingBinary;end;
pure func InstructionContractSourceTypeLegal_FMIN(encoded: bits(2)) => booleanbegin return encoded == '00' || encoded == '01';end;
pure func InstructionContractSourceCarrier_FMIN(encoded: bits(2)) => bits(5)begin assert InstructionContractSourceTypeLegal_FMIN(encoded); return ScalarFPSourceTypeCode(encoded);end;
pure func InstructionContractSourceArity_FMIN() => integer {1..3}begin return 2;end;
pure func InstructionContractUsesProfileFlags_FMIN() => booleanbegin return FALSE;end;
pure func InstructionContractUsesActiveRounding_FMIN() => booleanbegin return FALSE;end;
pure func InstructionContractBinaryOperation_FMIN() => FloatingBinaryOperationbegin return FloatingBinary_MIN;end;// PTO-INSTRUCTION: {"assembly":["fmin.{T} SrcL, SrcR, ->{t, u, Rd}"],"block":[],"catalog_indices":[107],"catalog_records":[{"asm":"fmin.{T} SrcL, SrcR, ->{t, u, Rd}","constraints":[{"field":"SrcType","operator":"one-of","values":[0,1]}],"encoding":[{"index":0,"mask":"0xf800707f","match":"0x0000705b","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":"SrcType","pieces":[{"instruction_lsb":25,"value_lsb":0,"width":2}],"signedness":"encoding-defined","width":2}],"form_id":"fmin_32_b5c106e5cd7e","length_bits":32,"mnemonic":"FMIN","semantic_family":"FSU","semantic_group":"FSU","semantic_handler":"FloatingBinary","semantic_summary":"FMIN applies the architecture-owned ordered minimum, NaN, and signed-zero rules to selected FP64 or FP32 carriers.","status":"accepted"}],"classification":["fsu"],"contract":{"block_composition":["none"],"canonical_assembly":["fmin.{T} SrcL, SrcR, ->{t, u, Rd}"],"defaults":["Every displayed operand field is encoded explicitly; encoded zero is a value and never denotes omission.","SrcType=0 selects an FP64 carrier and SrcType=1 selects the zero-extended low-word FP32 carrier. SrcType=2 and SrcType=3 are reserved."],"encoding_class":"standalone-encoded","examples":["fmin.fd a0, a1, ->a2","fmin.fs t#1, u#1, ->u"],"exceptions":["A fixed-bit mismatch, reserved SrcType, reserved DstType where present, or unavailable selected T/U source raises Fault_IllegalInstruction before source, profile, destination, flag, queue, or TPC effects.","Numeric profile flags update sticky status and do not themselves raise a synchronous PTO trap."],"field_contracts":{},"field_zero_meanings":{"RegDst":"Encoded zero discards the result.","SrcL":"Encoded zero reads the architectural zero GPR.","SrcR":"Encoded zero reads the architectural zero GPR.","SrcType":"Encoded zero selects the 64-bit source carrier; it is not omission."},"legality":["Every Reg5 source uses codes 0..23 for absolute GPRs, 24..27 for T#1..T#4, and 28..31 for U#1..U#4 without consumption.","Every Reg5 destination is assigned: codes 1..23 write GPRs, 30 pushes U, 31 pushes T, and 0 plus 24..29 discard only the result.","SrcType codes 0 and 1 are assigned; codes 2 and 3 are reserved."],"memory_effects":["none"],"operands":[{"field":"RegDst","role":"Reg5 destination or discard"},{"field":"SrcL","role":"left or sole Reg5 source"},{"field":"SrcR","role":"right Reg5 source"},{"field":"SrcType","role":"source carrier selector"}],"ordering":["Validate every encoded type before the first architectural source read or profile call.","Snapshot every explicit source before flag or destination effects; duplicate sources, destination aliases, and same-queue read-then-push observe pre-instruction values.","Accumulate produced flags, publish or discard the destination, and then advance TPC."],"standalone_opcode":true,"state_effects":["FMIN applies the architecture-owned ordered minimum, NaN, and signed-zero rules to selected FP64 or FP32 carriers.","One NaN returns the numeric input; two NaNs return the canonical quiet NaN; a signaling NaN records sticky NV; signed-zero ordering is architecture-owned.","Destination codes 1..23 write GPRs, 30 pushes U, 31 pushes T, and 0 plus 24..29 discard the result.","Successful execution advances TPC by four bytes."]},"depends_on":["PTO-SCALAR-MODEL-FSU-PROFILE"],"id":"PTO-SCALAR-FMIN","mnemonic":"FMIN","summary":"FMIN applies the architecture-owned ordered minimum, NaN, and signed-zero rules to selected FP64 or FP32 carriers.","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-FMIN-DECISION-BINDING-001// ndf: kind=contract level=L1 layer=scalar status=accepted// FMIN 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-FMIN-DECISION-BINDING-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_FMIN() => ScalarOperationbegin return ScalarOperation_FMIN;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_FMIN() => ScalarSemanticHandlerbegin return ScalarHandler_FloatingBinary;end;
pure func InstructionContractSourceTypeLegal_FMIN(encoded: bits(2)) => booleanbegin return encoded == '00' || encoded == '01';end;
pure func InstructionContractSourceCarrier_FMIN(encoded: bits(2)) => bits(5)begin assert InstructionContractSourceTypeLegal_FMIN(encoded); return ScalarFPSourceTypeCode(encoded);end;
pure func InstructionContractSourceArity_FMIN() => integer {1..3}begin return 2;end;
pure func InstructionContractUsesProfileFlags_FMIN() => booleanbegin return FALSE;end;
pure func InstructionContractUsesActiveRounding_FMIN() => booleanbegin return FALSE;end;
pure func InstructionContractBinaryOperation_FMIN() => FloatingBinaryOperationbegin return FloatingBinary_MIN;end;// DOC-END: operation
FMIN applies architecture-owned ordered minimum, NaN, and signed-zero rules to selected carriers.
SrcType=00 selects a complete FP64 carrier; SrcType=01 selects the zero-extended low 32-bit FP32 carrier.
One NaN selects the numeric operand; two NaNs select the width-specific canonical quiet NaN. A signaling NaN records sticky NV.
Signed-zero selection follows the architecture-owned FMIN rule.
RegDst selects the encoded destination or discard behavior.SrcL supplies the left scalar source.SrcR supplies the right scalar source.SrcType selects the source-carrier width.All explicit sources are snapshotted before numeric-status or destination effects.
Any architecture-produced NV is ORed into sticky numeric state before destination publication.
The result is published or discarded, then TPC advances by 4 bytes. The instruction has no memory or reservation effect.
SrcType=10 and SrcType=11 are reserved. Reserved types and unavailable T/U sources raise Fault_IllegalInstruction before source, profile, flag, queue, destination, or TPC effects.
Numeric flag updates do not themselves raise a synchronous PTO trap.
This example illustrates the current owner and does not define arithmetic independently of the normative rule or active profile.
fmin.fd a0, a1, ->a2 applies the architecture-owned special-value rule and publishes canonical output before advancing TPC.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
FMIN 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-FMIN-DECISION-BINDING-001asl/scalar/fsu/FMIN.asl2a92ddaf208c5e4d7d948f0c90292a9501a378879eca53600db800b7f55b178556be21a236d40ebfdeb5f917e07d43b6280a0ab8f8fab7a6401b63fbcbfdc18720 matching entries
PTO-AVS-FSU-FMIN-BOUND-001tests/asl/scalar/fsu/FMIN/scalar-bound-fmin-values-001.aslbbdb0488230beea6bc753a1c3fae1af34ac702c8c09d232d8c5d4227d412ccfePTO-AVS-FSU-FMIN-DST-001tests/asl/scalar/fsu/FMIN/scalar-exec-fmin-dst-001.asla3da0f2656b81eed0e326e337082504d48245dd57c919b969a7240114ea04852PTO-AVS-FSU-FMIN-EXEC-001tests/asl/scalar/fsu/FMIN/scalar-exec-fmin-direct-001.asl799666aaef3525a691e299c5cf95a78715c05fe0887a26faa6197646ca5d9a9fPTO-AVS-FSU-FMIN-FLAGS-001tests/asl/scalar/fsu/FMIN/scalar-state-fmin-flags-001.aslaa746dcc9b9015b995a328088259b450b53b7517cea9d954a0b7d7af1e112ba4PTO-AVS-FSU-FMIN-RSVD-001tests/asl/scalar/fsu/FMIN/scalar-fault-fmin-types-001.asl78efc6f71fc168bdab182dad3a813825a740f68f281e2b7cc6d40c0131996f9dPTO-AVS-FSU-FMIN-SNAP-001tests/asl/scalar/fsu/FMIN/scalar-exec-fmin-snap-001.asl81e2619753c50ab00db97281e64bd3f2fdaf91527e444677c978f156c31c1b46PTO-AVS-FSU-FMIN-SRC-001tests/asl/scalar/fsu/FMIN/scalar-exec-fmin-src-001.asl0a4b2c98af4f6f33328651ee9e89a026859b8b991e8ae2c35bb7b3c63ff18439PTO-AVS-FSU-FMIN-TYPE-001tests/asl/scalar/fsu/FMIN/scalar-bound-fmin-types-001.asl8b37fbb00157a1811f3ca4c878e1fe794549e4e52bfc774fb21081f636ad72d0PTO-AVS-SCALAR-FMIN-DECODE-001tests/asl/scalar/fsu/FMIN/scalar-decode-fmin-canonical-001.asl25663e264eb973c34004e757b9c328567fc313a144468b427522c08d3ee5c94ePTO-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-0028…
ADR-0028docs/status/decisions/0028-scalar-fsu-totality-and-profile-boundary.md1be39ca1ffda14b703ca03df9654f323d03b9cac620ba37d5cbe6ce8f3f9c486Loading ADR-0038…
ADR-0038docs/status/decisions/0038-scalar-numeric-flag-state-and-ownership.mdeac15c3bee955bb92833482b9af8b9f149fe17c13138e6f2b22f0ed1cf40fc07Loading ADR-0048…
ADR-0048docs/status/decisions/0048-numeric-format-value-classification.mdce3ecd1851e22b5517d07076ab8bd2db36b6b4582111c761db19240275853d9cLoading ADR-0050…
ADR-0050docs/status/decisions/0050-hardware-special-value-checkpoint.md08cfdeb16bf245980c9db849994e181e5079efc53475762cdad1df9f555993b5Loading 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": [
"fsu"
],
"documentation": "docs/scalar/fsu/FMIN.md",
"id": "PTO-SCALAR-FMIN",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "FMIN",
"ndf_clause": "PTO-INST-SCALAR-FMIN"
},
"mnemonic": "FMIN",
"readiness_subjects": [
"ADR-0028",
"ADR-0038",
"ADR-0048",
"ADR-0050",
"ADR-0059",
"ADR-0084"
],
"semantic_tests": [
"PTO-AVS-FSU-FMIN-BOUND-001",
"PTO-AVS-FSU-FMIN-DST-001",
"PTO-AVS-FSU-FMIN-EXEC-001",
"PTO-AVS-FSU-FMIN-FLAGS-001",
"PTO-AVS-FSU-FMIN-RSVD-001",
"PTO-AVS-FSU-FMIN-SNAP-001",
"PTO-AVS-FSU-FMIN-SRC-001",
"PTO-AVS-FSU-FMIN-TYPE-001"
],
"source": "asl/scalar/fsu/FMIN.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-FSU-FMIN-BOUND-001",
"PTO-AVS-FSU-FMIN-DST-001",
"PTO-AVS-FSU-FMIN-EXEC-001",
"PTO-AVS-FSU-FMIN-FLAGS-001",
"PTO-AVS-FSU-FMIN-RSVD-001",
"PTO-AVS-FSU-FMIN-SNAP-001",
"PTO-AVS-FSU-FMIN-SRC-001",
"PTO-AVS-FSU-FMIN-TYPE-001",
"PTO-AVS-SCALAR-FMIN-DECODE-001"
]
}0.58.5 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd868122a92ddaf208c5e4d7d948f0c90292a9501a378879eca53600db800b7f55b178502fb815d6469f391899113e590de3cbf15f0f3e828bcc0d3a2707e4100ac706basl/scalar/fsu/FMIN.aslasl/scalar/fsu/FMIN.aslasl/scalar/fsu/FMIN.asl