Operands and parameters
DstType- destination carrier selector
RegDst- Reg5 destination or discard
SrcL- left or sole Reg5 source
SrcType- source carrier selector
UCVTF converts an unsigned 64-bit or zero-extended unsigned 32-bit source to floating carrier code 0 through 14 through the active numeric profile.
PTO-SCALAR-UCVTFucvtf.{srcT2dstT} SrcL, ->{t, u, Rd}| Field | Bits | Signedness | Architectural role | Encoded zero |
|---|---|---|---|---|
DstType | 5 | encoding-defined | destination carrier selector | Encoded zero selects the 64-bit destination carrier; it is not omission. |
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. |
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 |
|---|---|---|
| DstType | 31:27 | variable |
| SrcType | 26:25 | variable |
| Constant | 24:20 | 5'b00000 |
| SrcL | 19:15 | variable |
| Constant | 14:12 | 3'b111 |
| RegDst | 11:7 | variable |
| Constant | 6:0 | 7'b1101011 |
{
"reg": [
{
"bits": 7,
"name": "7'b1101011"
},
{
"bits": 5,
"name": "RegDst"
},
{
"bits": 3,
"name": "3'b111"
},
{
"bits": 5,
"name": "SrcL"
},
{
"bits": 5,
"name": "5'b00000"
},
{
"bits": 2,
"name": "SrcType"
},
{
"bits": 5,
"name": "DstType"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}ucvtf.{srcT2dstT} SrcL, ->{t, u, Rd}
DstTypeRegDstSrcLSrcTypeThis Operation comes directly from the instruction owner; the page does not rewrite its behavior.
readonly func InstructionContractOperation_UCVTF() => ScalarOperationbegin return ScalarOperation_UCVTF;end;readonly func InstructionContractHandler_UCVTF() => ScalarSemanticHandlerbegin return ScalarHandler_ConvertFloatingEncoding;end;
pure func InstructionContractSourceTypeLegal_UCVTF(encoded: bits(2)) => booleanbegin return encoded == '00' || encoded == '01';end;
pure func InstructionContractSourceCarrier_UCVTF(encoded: bits(2)) => bits(5)begin assert InstructionContractSourceTypeLegal_UCVTF(encoded); return ScalarUnsignedIntegerSourceTypeCode(encoded);end;
pure func InstructionContractDestinationTypeLegal_UCVTF(encoded: bits(5)) => booleanbegin return UInt(encoded) <= 14;end;
pure func InstructionContractSourceArity_UCVTF() => integer {1..3}begin return 1;end;
pure func InstructionContractUsesProfileFlags_UCVTF() => booleanbegin return TRUE;end;
pure func InstructionContractUsesActiveRounding_UCVTF() => booleanbegin return TRUE;end;// PTO-INSTRUCTION: {"assembly":["ucvtf.{srcT2dstT} SrcL, ->{t, u, Rd}"],"block":[],"catalog_indices":[461],"catalog_records":[{"asm":"ucvtf.{srcT2dstT} SrcL, ->{t, u, Rd}","constraints":[{"field":"SrcType","operator":"one-of","values":[0,1]},{"field":"DstType","operator":"one-of","values":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}],"encoding":[{"index":0,"mask":"0x01f0707f","match":"0x0000706b","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"DstType","pieces":[{"instruction_lsb":27,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"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":"SrcType","pieces":[{"instruction_lsb":25,"value_lsb":0,"width":2}],"signedness":"encoding-defined","width":2}],"form_id":"ucvtf_32_987f4e019c32","length_bits":32,"mnemonic":"UCVTF","semantic_family":"FSU","semantic_group":"FSU","semantic_handler":"ConvertFloatingEncoding","semantic_summary":"UCVTF converts an unsigned 64-bit or zero-extended unsigned 32-bit source to floating carrier code 0 through 14 through the active numeric profile.","status":"accepted"}],"classification":["fsu"],"contract":{"block_composition":["none"],"canonical_assembly":["ucvtf.{srcT2dstT} SrcL, ->{t, u, Rd}"],"defaults":["Every displayed operand field is encoded explicitly; encoded zero is a value and never denotes omission.","SrcType=0 selects unsigned 64-bit and SrcType=1 selects unsigned 32-bit with zero extension. SrcType=2 and SrcType=3 are reserved.","DstType codes 0..14 are assigned carrier widths and codes 15..31 are reserved."],"encoding_class":"standalone-encoded","examples":["ucvtf.ud2fd a0, ->a1","ucvtf.uw2fs t#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":{"DstType":"Encoded zero selects the 64-bit destination carrier; it is not omission.","RegDst":"Encoded zero discards the result.","SrcL":"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.","DstType codes 0 through 14 are assigned; codes 15 through 31 are reserved."],"memory_effects":["none"],"operands":[{"field":"DstType","role":"destination carrier selector"},{"field":"RegDst","role":"Reg5 destination or discard"},{"field":"SrcL","role":"left or sole 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":["UCVTF converts an unsigned 64-bit or zero-extended unsigned 32-bit source to floating carrier code 0 through 14 through the active numeric profile.","The selected numeric profile returns an exact NV, DZ, OF, UF, NX vector which is ORed into existing sticky CORE_STATE flags.","For pto-v0, zero-normalize the source, retain the selected floating carrier width, and return zero flags. This executable reference behavior is not target floating-point conformance.","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-UCVTF","mnemonic":"UCVTF","summary":"UCVTF converts an unsigned 64-bit or zero-extended unsigned 32-bit source to floating carrier code 0 through 14 through the active numeric profile.","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-UCVTF-DECISION-BINDING-001// ndf: kind=contract level=L1 layer=scalar status=accepted// UCVTF 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-UCVTF-DECISION-BINDING-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_UCVTF() => ScalarOperationbegin return ScalarOperation_UCVTF;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_UCVTF() => ScalarSemanticHandlerbegin return ScalarHandler_ConvertFloatingEncoding;end;
pure func InstructionContractSourceTypeLegal_UCVTF(encoded: bits(2)) => booleanbegin return encoded == '00' || encoded == '01';end;
pure func InstructionContractSourceCarrier_UCVTF(encoded: bits(2)) => bits(5)begin assert InstructionContractSourceTypeLegal_UCVTF(encoded); return ScalarUnsignedIntegerSourceTypeCode(encoded);end;
pure func InstructionContractDestinationTypeLegal_UCVTF(encoded: bits(5)) => booleanbegin return UInt(encoded) <= 14;end;
pure func InstructionContractSourceArity_UCVTF() => integer {1..3}begin return 1;end;
pure func InstructionContractUsesProfileFlags_UCVTF() => booleanbegin return TRUE;end;
pure func InstructionContractUsesActiveRounding_UCVTF() => booleanbegin return TRUE;end;// DOC-END: operation
UCVTF converts unsigned 64-bit or 32-bit integer input to floating carrier code 0..14 through the active numeric profile.
SrcType=00 selects an unsigned 64-bit integer carrier; SrcType=01 selects the zero-extended low 32-bit unsigned integer carrier.
The active profile receives snapshotted operands and the mnemonic-selected operation, then returns a result and exact NV, DZ, OF, UF, NX vector.
In the pto-v0 reference profile, normalized source bits are retained in the selected destination-carrier width. This deterministic reference rule is not an IEEE-754 or target-hardware claim.
DstType selects the destination-carrier code.RegDst selects the encoded destination or discard behavior.SrcL supplies the left scalar source.SrcType selects the source-carrier width.All explicit sources are snapshotted before numeric-status or destination effects.
All five profile-returned flags are ORed into sticky numeric state; the operation cannot clear an existing flag.
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.
Destination carrier codes 0..14 are assigned; 15..31 are reserved and reject before effects.
The portable instruction contract owns carrier selection, snapshots, flag accumulation, publication, and fault order; the active named profile owns the numeric result and produced flags.
This example illustrates the current owner and does not define arithmetic independently of the normative rule or active profile.
ucvtf.ud2fd a0, ->a1 selects its carriers, snapshots its sources, invokes the active profile, accumulates returned flags, publishes the result, and then advances TPC.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
UCVTF 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-UCVTF-DECISION-BINDING-001asl/scalar/fsu/UCVTF.aslcdf211505af4682cfe88e1a2574ccf7648c1e5f7caf575d22d2dd6659b3ab6d6c8b507c05414bcc5c29d1b374646c1ae0acd14a0ef6f54c8ef2fb59ce51692a019 matching entries
PTO-AVS-FSU-UCVTF-BOUND-001tests/asl/scalar/fsu/UCVTF/scalar-bound-ucvtf-values-001.asl2b8c33a1a30660d8a90f3dff2725509a4ad04d3b32f811d85e53c67f93d8810fPTO-AVS-FSU-UCVTF-DST-001tests/asl/scalar/fsu/UCVTF/scalar-exec-ucvtf-dst-001.asld1155f22c2b6df1f1e32f0315f378b63aa59e48e9410d4b4bf291543ee3f3d0cPTO-AVS-FSU-UCVTF-EXEC-001tests/asl/scalar/fsu/UCVTF/scalar-exec-ucvtf-direct-001.aslb2f3a34533cad70595c57bddf0fb2852aef7d7ca6930d97f55b392a85fb7bd45PTO-AVS-FSU-UCVTF-FLAGS-001tests/asl/scalar/fsu/UCVTF/scalar-state-ucvtf-flags-001.asl97827bf19aeea1da5767cd6f8968882adcaa0de0d1e2b9ee55b56af61f550f8bPTO-AVS-FSU-UCVTF-ROUND-001tests/asl/scalar/fsu/UCVTF/scalar-bound-ucvtf-round-001.asl7294ee5bdc839a9f011cac00f383250fb16bd99d43fa7fb3266d134756516f65PTO-AVS-FSU-UCVTF-RSVD-001tests/asl/scalar/fsu/UCVTF/scalar-fault-ucvtf-types-001.asle6e20ee406db1987c4948edff60904290c9d3499c9779d0120dd7616618f7a7ePTO-AVS-FSU-UCVTF-SNAP-001tests/asl/scalar/fsu/UCVTF/scalar-exec-ucvtf-snap-001.aslf53e96a959b345eee6cc55ad6536856d22e52ab8bf989085db146bb13d529961PTO-AVS-FSU-UCVTF-SRC-001tests/asl/scalar/fsu/UCVTF/scalar-exec-ucvtf-src-001.asl9df4d2fd1a8881fceb73e2b3f2ae2b127d682e3ab556fd54d562dd0d4a2f9edfPTO-AVS-FSU-UCVTF-TYPE-001tests/asl/scalar/fsu/UCVTF/scalar-bound-ucvtf-types-001.asl2329096467f8602c9aff7f8c09578437b8c0265b64fdb9d4c85754bda04d0116PTO-AVS-SCALAR-UCVTF-DECODE-001tests/asl/scalar/fsu/UCVTF/scalar-decode-ucvtf-canonical-001.asla3abc93b7e2f530e87ccbe86619953db42bcecfd309f9aa9c5c6a9d666ca2d1dPTO-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-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/UCVTF.md",
"id": "PTO-SCALAR-UCVTF",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "UCVTF",
"ndf_clause": "PTO-INST-SCALAR-UCVTF"
},
"mnemonic": "UCVTF",
"readiness_subjects": [
"ADR-0028",
"ADR-0038",
"ADR-0059",
"ADR-0084"
],
"semantic_tests": [
"PTO-AVS-FSU-UCVTF-BOUND-001",
"PTO-AVS-FSU-UCVTF-DST-001",
"PTO-AVS-FSU-UCVTF-EXEC-001",
"PTO-AVS-FSU-UCVTF-FLAGS-001",
"PTO-AVS-FSU-UCVTF-ROUND-001",
"PTO-AVS-FSU-UCVTF-RSVD-001",
"PTO-AVS-FSU-UCVTF-SNAP-001",
"PTO-AVS-FSU-UCVTF-SRC-001",
"PTO-AVS-FSU-UCVTF-TYPE-001"
],
"source": "asl/scalar/fsu/UCVTF.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-FSU-UCVTF-BOUND-001",
"PTO-AVS-FSU-UCVTF-DST-001",
"PTO-AVS-FSU-UCVTF-EXEC-001",
"PTO-AVS-FSU-UCVTF-FLAGS-001",
"PTO-AVS-FSU-UCVTF-ROUND-001",
"PTO-AVS-FSU-UCVTF-RSVD-001",
"PTO-AVS-FSU-UCVTF-SNAP-001",
"PTO-AVS-FSU-UCVTF-SRC-001",
"PTO-AVS-FSU-UCVTF-TYPE-001",
"PTO-AVS-SCALAR-UCVTF-DECODE-001"
]
}0.58.5 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd86812cdf211505af4682cfe88e1a2574ccf7648c1e5f7caf575d22d2dd6659b3ab6d6801b8fe2b415a13403285cb3c458b93e99d7496336de66cd9bd356fced1a4fb1asl/scalar/fsu/UCVTF.aslasl/scalar/fsu/UCVTF.aslasl/scalar/fsu/UCVTF.asl