Skip to content

LinxISA v0.57.1 Encoding Decisions

This page records the Linx projection of the normative PTO ISA 0.57.1 assignments. Encodings not named here remain defined by the canonical v0.57 opcode catalog and the locked PTO truth source.

Stability Rule

Established byte encodings, decode legality, and reserved behavior remain stable for every form not listed here. Legacy compatibility spellings are not revived; active sources accept only canonical v0.57 spellings.

TMA Function Window

All rows below use the TMA header pattern:

31..27=DataType, 26..25=00, 24..20=Function, 19..15=00010, 14..0 fixed block-split tail.

The mask excludes DataType and includes the function selector and fixed tail: mask=0x07ffffff.

Function Alias Match Decision
0 BSTART.TLOAD 0x00011181 canonical
1 BSTART.TSTORE 0x00111181 canonical
2 BSTART.TMOV 0x00211181 canonical
3 BSTART.TPREFETCH 0x00311181 new v0.57 selector
4 BSTART.MGATHER 0x00411181 new v0.57 selector
5 BSTART.MSCATTER 0x00511181 new v0.57 selector
6 BSTART.MGATHER.MASK 0x00611181 new v0.57 selector
7 BSTART.MSCATTER.MASK 0x00711181 new v0.57 selector
8 BSTART.MGATHER.CAS 0x00811181 new v0.57 selector
9..31 reserved illegal instruction

BSTART.TPREFETCH deliberately occupies the adjacent function slot after TLOAD, TSTORE, and TMOV. It is not allocated in a distant extension window.

TPREFETCH Encoding Contract

BSTART.TPREFETCH is encoded as TMA Function=3:

  • mask: 0x07ffffff
  • match: 0x00311181
  • DataType remains the existing 5-bit TMA data-type field.

Architecturally, TPREFETCH is TLOAD without destinations. It uses the same address-generation and memory contract as TLOAD, but it must not allocate or write a tile destination.

PTO selector manifest rule

The exact 120-operation PTO map (98 TEPL, 9 TMA, and 13 CUBE) is the reviewed projection in:

isa/v0.57/state/pto_encoding_map.json

Its normative input is the commit and hashes frozen by isa/v0.57/pto-spec.lock.json; no workbook allocates an encoding. TEPL uses the raw two-bit Mode plus five-bit Function fields, so the logical selector is (Mode << 5) | Function. Exactly 98 of the 128 selector positions are accepted and the other 30 are reserved. The generator rejects any attempt to recover the retired 10-bit selector ABI.

CUBE Function Map

The PTO matrix rows use the inherited CUBE family plus named aliases:

Function Canonical alias PTO spelling
0 BSTART.TMATMUL TMATMUL
1 BSTART.TMATMUL.BIAS TMATMUL_BIAS
2 BSTART.TMATMUL.ACC TMATMUL_ACC
4 BSTART.TMATMULMX TMATMUL_MX
5 BSTART.TMATMULMX.BIAS TMATMUL_MX_BIAS
6 BSTART.TMATMULMX.ACC TMATMUL_MX_ACC
8 BSTART.ACCCVT ACCCVT
16 BSTART.TGEMV TGEMV
17 BSTART.TGEMV.BIAS TGEMV_BIAS
18 BSTART.TGEMV.ACC TGEMV_ACC
20 BSTART.TGEMVMX TGEMV_MX
21 BSTART.TGEMVMX.BIAS TGEMV_MX_BIAS
22 BSTART.TGEMVMX.ACC TGEMV_MX_ACC

Only these 13 assigned named CUBE functions are legal. Every unassigned function is an illegal instruction; there is no generic executable BSTART.CUBE Function, DataType form. ACC is implicit architectural state and is never named by a B.IOT source or destination field.

Scalar Encoding Evidence

v0.57 adds the following 32-bit encodings from LinxISA/linx-isa#139 while leaving the existing 48-bit HL.CAS* forms unchanged:

Form Mask Match v0.57 decision
CASB 0x0000707f 0x0000001b 32-bit local byte compare-and-swap
CASH 0x0000707f 0x0000101b 32-bit local halfword compare-and-swap
CASW 0x0000707f 0x0000201b 32-bit local word compare-and-swap
CASD 0x0000707f 0x0000301b 32-bit local doubleword compare-and-swap
DMA 0xfe007fff 0x0000700b 32-bit encoding of the inherited fixed 64-byte copy

For DMA, SrcL remains the source address and SrcR remains the destination address. PR #139 does not allocate a control-word format; its provisional “control parameters” wording is non-normative.

Rejection Rules

Assemblers, decoders, and tests must reject:

  • generic mixed TMA source forms,
  • unassigned TMA functions,
  • all 30 reserved TEPL Mode/Function selectors,
  • generic BSTART.CUBE and BSTART.FIXP,
  • the retired B.ARG Tile descriptor carrier,
  • TFMA, TFMOD, TFMODS, TADDC, TSUBC, TADDSC, TSUBSC, TLRELU, and TRANDOM,
  • retired compatibility spellings from pre-v0.57 sources,
  • PTO operations not present in the frozen 0.57.1 manifest.