Skip to main content

B.ASSEMBLE

Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.

PTO-BLOCK-B-ASSEMBLE

Assembly syntax

B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode

Assembler symbols

Assembly fields and architectural roles
FieldBitsSignednessArchitectural roleEncoded zero
INIT1encoding-definedselects INIT versus MIDDLE/LAST formZero selects MIDDLE/LAST rather than INIT/INIT_LAST.
uimm1111unsignedunsigned XLEN addendZero is a real zero displacement.
RegSrc5encoding-definedabsolute GPR selectorZero names the architectural zero GPR.
LAST1encoding-definedmarks the final assembler carrierOne closes the modifier sequence at the semantic assembler.
ParentSizeCode4encoding-definedraw parent size codeZero is the MIDDLE/LAST-only no-parent-size encoding.

Encoding

Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.

Encoding fields as an accessible table
Generated encoding fields for B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode
Decoded itemBit rangeValue
INIT31variable
uimm1130:20variable
RegSrc19:15variable
Constant14:123'b001
LAST11variable
ParentSizeCode10:7variable
Constant6:07'b1010011
WaveJSON source
{
  "reg": [
    {
      "bits": 7,
      "name": "7'b1010011"
    },
    {
      "bits": 4,
      "name": "ParentSizeCode"
    },
    {
      "bits": 1,
      "name": "LAST"
    },
    {
      "bits": 3,
      "name": "3'b001"
    },
    {
      "bits": 5,
      "name": "RegSrc"
    },
    {
      "bits": 11,
      "name": "uimm11"
    },
    {
      "bits": 1,
      "name": "INIT"
    }
  ],
  "config": {
    "bits": 32,
    "fontsize": 13,
    "hspace": 900,
    "lanes": 1,
    "offset": 0
  }
}

B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode

Instruction contract

Operands and parameters

INIT
selects INIT versus MIDDLE/LAST form
LAST
marks the final assembler carrier
RegSrc
absolute GPR selector
uimm11
unsigned XLEN addend
ParentSizeCode
raw parent size code

Constraints, checks, and faults

  • RegSrc accepts only absolute GPR selectors 0..23.
  • ParentSizeCode raw values 0..12 are decoded; INIT/size combinations select INIT, MIDDLE, LAST, or INIT_LAST and contradictory combinations are BundleControl.
  • Local and Shared parent sizes 1..12 are accepted.
  • The modifier is legal only in the contiguous immediately preceding binder group and follows source roles.
  • Reserved funct3/opcode, RegSrc24..31, and ParentSizeCode13..15 raise Fault_IllegalInstruction before GPR reads, carrier updates, or TPC advance.
  • INIT=1 with ParentSizeCode=0 or INIT=0 with a nonzero ParentSizeCode raises Fault_BundleControl.
  • Missing, reversed, duplicate, intervening, or role-incompatible groups raise Fault_BundleControl.

State reads, writes, and result

  • Store raw INIT/LAST/RegSrc/uimm11/ParentSizeCode and the derived XLEN offset in the destination carrier of the open binder group.
  • PEMode=000 on the binder opens a discarded syntactic group; every raw-legal contiguous modifier advances TPC without reads, state, role, or fault effects.
  • none
  • Decode fixed/reserved fields and raw ranges before any GPR read; compute GPR[RegSrc]+ZeroExtend(uimm11) modulo 2^XLEN after group legality.

ASL pseudocode

Decode and Operation come directly from the instruction owner and remain separated by execution phase.

Decode ASL

readonly func InstructionContractMatches_B_ASSEMBLE(operation: CommandOperation) => booleanbegin    return operation == CommandOperation_b_assemble_32_122000000002;end;

Operation source binding

pure func InstructionContractParentSizeCodeIsRawLegal_B_ASSEMBLE(code: integer {0..15}) => booleanbegin    return code <= 12;end;
readonly func InstructionContractHandler_B_ASSEMBLE() => CommandSemanticHandlerbegin    return CommandHandler_ApplyBundleAssemble;end;
View the complete ASL owner
// PTO-INSTRUCTION: {"assembly":["B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode"],"block":[],"catalog_indices":[75],"catalog_records":[{"asm":"B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode","constraints":[{"field":"INIT","operator":"one-of","values":[0,1]},{"field":"RegSrc","operator":"one-of","values":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]},{"field":"ParentSizeCode","operator":"one-of","values":[0,1,2,3,4,5,6,7,8,9,10,11,12]}],"encoding":[{"index":0,"mask":"0x0000707f","match":"0x00001053","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"INIT","pieces":[{"instruction_lsb":31,"value_lsb":0,"width":1}],"signedness":"encoding-defined","width":1},{"name":"uimm11","pieces":[{"instruction_lsb":20,"value_lsb":0,"width":11}],"signedness":"unsigned","width":11},{"name":"RegSrc","pieces":[{"instruction_lsb":15,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"LAST","pieces":[{"instruction_lsb":11,"value_lsb":0,"width":1}],"signedness":"encoding-defined","width":1},{"name":"ParentSizeCode","pieces":[{"instruction_lsb":7,"value_lsb":0,"width":4}],"signedness":"encoding-defined","width":4}],"form_id":"b_assemble_32_122000000002","length_bits":32,"mnemonic":"B.ASSEMBLE","semantic_family":"CMD","semantic_group":"Bundle Range Modifier","semantic_handler":"ApplyBundleAssemble","semantic_summary":"Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.","status":"accepted"}],"classification":["operands"],"contract":{"block_composition":["Immediately follows B.IOT or B.IOS and is contiguous with the associated modifier group."],"canonical_assembly":["B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode"],"defaults":["uimm11 is unsigned and zero-extended. RegSrc zero names the architectural zero GPR. INIT=0 encodes MIDDLE/LAST; INIT=1 encodes INIT/INIT_LAST."],"encoding_class":"standalone-encoded","examples":["B.IOT T0, mask=1111, ->T1<1>; B.ASSEMBLE 1, 1, a0, 0, 10"],"exceptions":["Reserved funct3/opcode, RegSrc24..31, and ParentSizeCode13..15 raise Fault_IllegalInstruction before GPR reads, carrier updates, or TPC advance.","INIT=1 with ParentSizeCode=0 or INIT=0 with a nonzero ParentSizeCode raises Fault_BundleControl.","Missing, reversed, duplicate, intervening, or role-incompatible groups raise Fault_BundleControl."],"field_contracts":{},"field_zero_meanings":{"INIT":"Zero selects MIDDLE/LAST rather than INIT/INIT_LAST.","LAST":"One closes the modifier sequence at the semantic assembler.","uimm11":"Zero is a real zero displacement.","RegSrc":"Zero names the architectural zero GPR.","ParentSizeCode":"Zero is the MIDDLE/LAST-only no-parent-size encoding."},"legality":["RegSrc accepts only absolute GPR selectors 0..23.","ParentSizeCode raw values 0..12 are decoded; INIT/size combinations select INIT, MIDDLE, LAST, or INIT_LAST and contradictory combinations are BundleControl.","Local and Shared parent sizes 1..12 are accepted.","The modifier is legal only in the contiguous immediately preceding binder group and follows source roles."],"memory_effects":["none"],"operands":[{"field":"INIT","role":"selects INIT versus MIDDLE/LAST form"},{"field":"LAST","role":"marks the final assembler carrier"},{"field":"RegSrc","role":"absolute GPR selector"},{"field":"uimm11","role":"unsigned XLEN addend"},{"field":"ParentSizeCode","role":"raw parent size code"}],"ordering":["Decode fixed/reserved fields and raw ranges before any GPR read; compute GPR[RegSrc]+ZeroExtend(uimm11) modulo 2^XLEN after group legality."],"state_effects":["Store raw INIT/LAST/RegSrc/uimm11/ParentSizeCode and the derived XLEN offset in the destination carrier of the open binder group.","PEMode=000 on the binder opens a discarded syntactic group; every raw-legal contiguous modifier advances TPC without reads, state, role, or fault effects."],"standalone_opcode":true},"depends_on":["PTO-BLOCK-B-IOT","PTO-BLOCK-B-IOS","PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS"],"id":"PTO-BLOCK-B-ASSEMBLE","mnemonic":"B.ASSEMBLE","summary":"Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.","surface":"block"}// PTO-REVIEW: {"review_method":"formal-definition-read","outcome":"FORMAL-COMPLETE","reviewed_fields":["assembly","encoding","defaults","operation","state","memory","ordering","faults","reserved"]}// NDF-BEGIN: PTO-B-ASSEMBLE-RANGE-001// ndf: kind=contract level=L1 layer=block status=accepted// B.ASSEMBLE MUST decode the exact 0x53 form, preserve raw controls and the// XLEN-wrapped GPR-plus-uimm11 offset, and apply only to its preceding// contiguous B.IOT/B.IOS group.// NDF-END: PTO-B-ASSEMBLE-RANGE-001// DOC-BEGIN: decodereadonly func InstructionContractMatches_B_ASSEMBLE(operation: CommandOperation) => booleanbegin    return operation == CommandOperation_b_assemble_32_122000000002;end;// DOC-END: decode// DOC-BEGIN: operationpure func InstructionContractParentSizeCodeIsRawLegal_B_ASSEMBLE(code: integer {0..15}) => booleanbegin    return code <= 12;end;
readonly func InstructionContractHandler_B_ASSEMBLE() => CommandSemanticHandlerbegin    return CommandHandler_ApplyBundleAssemble;end;// DOC-END: operation

Behavior

purpose

What B.ASSEMBLE contributes

B.ASSEMBLE is a 32-bit block header command that attaches one assembler-range modifier to an open Local or Shared binder group. It changes pending block metadata rather than executing a tile body operation immediately.

mechanism

Placement and mechanism

The modifier is valid only while it remains contiguous with the B.IOT or B.IOS binder group that opened its carrier. Intervening, reversed, or duplicate modifiers are rejected before carrier state changes.

The command records its raw selector and range fields in the open binder carrier together with the derived XLEN offset. A binder whose decoded PE mask is zero keeps only a discarded syntactic group and performs no source read or role effect.

inputs outputs

Operands and header roles

  • INIT marks the first assembler carrier; its exact assigned domain remains in the generated contract below.
  • LAST marks the final assembler carrier; its exact assigned domain remains in the generated contract below.
  • RegSrc selects the named absolute GPR role; its exact assigned domain remains in the generated contract below.
  • uimm11 supplies the encoded offset or addend; its exact assigned domain remains in the generated contract below.
  • ParentSizeCode supplies the parent range size code; its exact assigned domain remains in the generated contract below.
effects

Pending state and completion

An accepted header command changes only its pending record or carrier. Architectural tile, Shared, GPR, memory, and completion effects remain deferred to the completed block unless this owner's contract explicitly identifies an immediate header-state update.

constraints

Legality and fault boundary

Reserved encodings are rejected before reads or pending-state changes. Placement, duplicate, role, or completed-schema mismatches fail before body effects.

example

illustrative worked example

This worked example is illustrative; it illustrates the current owner without replacing it.

B.IOT mask=PE_MASK, <last>, ->DstTile<SizeCode>
B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode

The destination form of B.IOT opens the exact destination carrier group. The immediately following B.ASSEMBLE applies its assembler range to that destination carrier; any intervening command breaks contiguity and makes the modifier group invalid.

NDF clauses

Bodies come from owning ASL. Dragging or buttons change only this page-session view order.

    1. surfaceBLOCK
    2. ownerB.ASSEMBLE
    3. categoryRANGE
    4. case001

    Normative contract

    contract · L1 · accepted

    B.ASSEMBLE MUST decode the exact 0x53 form, preserve raw controls and the XLEN-wrapped GPR-plus-uimm11 offset, and apply only to its preceding contiguous B.IOT/B.IOS group.

    Sources and references
    Complete stable ID
    PTO-B-ASSEMBLE-RANGE-001
    Source path
    asl/block/operands/B.ASSEMBLE.asl
    Affected units
    PTO-BLOCK-B-ASSEMBLE
    Source SHA-256
    78b3638e1d09e55d9ac1c45f0589c4c86cb5d355d4ae8b6e79c510a42b1a60e4
    Clause SHA-256
    756954057e8d2cafdc5b02551faa1a1ce5142a9f7f22ec2662c87bfdb1ebf8eb
    Open exact canonical source ↗

Evidence index

21 matching entries

Executable evidence14
  • Decoded Local generation faults reject replacement, identity, coverage, allocation, and replay violations without partial publication.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION
    3. categoryFAULT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-LOCAL-FAULTS-001
    Path
    tests/asl/block/model/operands/local-generation/block-fault-assemble-local-faults-001.asl
    Kind / role
    fault
    Requirements
    PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT
    Pass condition
    Missing or duplicate INIT, second-open, equal-range distinct-instance overlap, out-of-bounds, participant-mask, normalized-descriptor/object-name, no-modifier open-key, incomplete LAST, allocation failure, and writer-after-LAST cases report exact BundleControl/TileLegality/TileAllocation results; speculative state aborts while sources remain allocated and defined.
    SHA-256
    22cb556792488b42e40ec17571d961519e0cd66911c03434306e6920f170a61e
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-LOCAL-FAULTS-001
  • Decoded Local B.ASSEMBLE keeps one open generation across disjoint writers and publishes only at LAST.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-LOCAL-LIFECYCLE-001
    Path
    tests/asl/block/model/operands/local-generation/block-exec-assemble-local-lifecycle-001.asl
    Kind / role
    execution
    Requirements
    PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT
    Pass condition
    INIT opens one generation, an exact same-instance replay is idempotent, distinct MIDDLE writers reuse one destination without allocating another object, readiness and coverage accumulate out of order, and LAST closes and publishes atomically.
    SHA-256
    6127226a74cc6b1982898a62a35bd3e2145b9485bbe1cc858bd939d67132f511
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-LOCAL-LIFECYCLE-001
  • Decoded multi-output Local assembly preflights every writer before publication.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION
    3. categoryATOMICITY
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-MULTIOUTPUT-001
    Path
    tests/asl/block/model/operands/local-generation/block-atomic-assemble-multioutput-001.asl
    Kind / role
    atomicity
    Requirements
    PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-ASSEMBLE
    Pass condition
    Two independently bound output hands commit together with disjoint generation domains; when one output has incomplete coverage, neither destination allocates or advances.
    SHA-256
    0a936b30a2b754ac42dd93cd893a8377bb847f8d4c43cf26c785754e9f357b2a
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-MULTIOUTPUT-001
  • Decoded Local assembly binds portable range readiness, cancels wrong-path writers, and rejects a nonrollback producer before effects.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-PORTABLE-CARRIERS-001
    Path
    tests/asl/block/model/operands/portable-carriers/block-exec-assemble-portable-carriers-001.asl
    Kind / role
    execution
    Requirements
    PTO-B-ASSEMBLE-CONSUMER-READINESS-001, PTO-B-ASSEMBLE-SPECULATION-001, PTO-B-ASSEMBLE-PRODUCER-EFFECT-ELIGIBILITY-001, PTO-INST-BLOCK-BSTART, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-SUBVIEW, PTO-INST-BLOCK-B-ASSEMBLE
    Pass condition
    A decoded post-LAST range waits without a fault or temporary source effect until its selected cells become ready; decoded writer squash removes coverage and allocation while preserving sources; a decoded B.ASSEMBLE producer with a nonrollback handler raises Fault_TileLegality before effects.
    SHA-256
    11e59453724fa2271ae8b7528829da24f05d34eabc7fe8d3d2a71ecb2b3ef63f
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-PORTABLE-CARRIERS-001
  • Decoded INIT, MIDDLE, and LAST Local generation faults retain the original operation address, restart at INIT, and abort speculative state.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION
    3. categoryFAULT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-RESTART-001
    Path
    tests/asl/block/model/operands/local-generation/block-fault-assemble-restart-001.asl
    Kind / role
    fault
    Requirements
    PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT
    Pass condition
    Each decoded INIT, MIDDLE, and LAST fault reports the original operation address, restores the earliest INIT TPC, and leaves no open generation, partial coverage, readiness, or publication.
    SHA-256
    2811b86d9c533058a60ad7fb19f135755ca0e622e3951560429a9fa9d6bfbb54
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-RESTART-001
  • canonical B.ASSEMBLE catalog and ASL contract remain aligned
    1. surfaceBLOCK
    2. ownerB.ASSEMBLE
    3. categoryDECODE-POSITIVE
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-B-ASSEMBLE-DECODE-001
    Path
    tests/asl/block/operands/B.ASSEMBLE/block-decode-b-assemble-canonical-001.asl
    Kind / role
    decode-positive
    Requirements
    PTO-INST-BLOCK-B-ASSEMBLE
    Pass condition
    all canonical decode and contract assertions hold
    SHA-256
    1eb9e010027c0a8a3b5fa4de6813279314f02db8f0883777dba44dc99ae4b281
    Open exact source ↗ for PTO-AVS-BLOCK-B-ASSEMBLE-DECODE-001
  • B.ASSEMBLE executes every INIT/MIDDLE/LAST/INIT_LAST control, Local and Shared parent boundaries, and all raw-legality and contradictory-control faults.
    1. surfaceBLOCK
    2. ownerB.ASSEMBLE
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-B-ASSEMBLE-ENCODING-001
    Path
    tests/asl/block/operands/B.ASSEMBLE/block-exec-b-assemble-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-IOS
    Pass condition
    each legal control preserves exact fields and XLEN offset in the destination carrier; every reserved raw form, contradictory INIT/size class, and all Local/Shared parent codes 1..12 remain accepted
    SHA-256
    6ebdcb83b1ea48f8f5191133e52a0ce3d323866c4518102fd3caeb2a656616f3
    Open exact source ↗ for PTO-AVS-BLOCK-B-ASSEMBLE-ENCODING-001
  • B.SUBVIEW and B.ASSEMBLE execute only in the immediately preceding B.IOT/B.IOS group, consuming source0, source1, and destination roles in strict order.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS
    3. categoryFAULT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-RANGE-GROUP-ORDER-001
    Path
    tests/asl/block/model/operands/range-modifiers/block-fault-range-group-order-001.asl
    Kind / role
    fault
    Requirements
    PTO-INST-BLOCK-B-SUBVIEW, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-IOS
    Pass condition
    valid Local/Shared source and destination groups, omissions, duplicates, reverse/misordered/absent/intervening forms, B.IOT.L, and B.IOS source1 are each executed with the specified carrier or BundleControl result and no retroactive effect
    SHA-256
    8d6507c8048a569186bcca2ddca9e49e38f43538f3705a3544aa690fdd878284
    Open exact source ↗ for PTO-AVS-BLOCK-RANGE-GROUP-ORDER-001
  • PEMode=000 executes a broad raw-legal B.SUBVIEW/B.ASSEMBLE matrix as discarded syntactic groups while nonzero controls retain carriers and reserved forms remain illegal.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-RANGE-PEMODE-ZERO-001
    Path
    tests/asl/block/model/operands/range-modifiers/block-exec-range-pemode-zero-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-B-SUBVIEW, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-IOS
    Pass condition
    both source selectors, every legal subview size, every raw-legal assemble control/size, RegSrc/uimm extremes, Local/Shared zero groups, and matching nonzero controls execute with no zero-mode reads/effects/faults; every reserved encoding is IllegalInstruction with no effect
    SHA-256
    97391c16c8e7f937b1a1bb2e06dab80f8c66a2a4aed84f8ccda354b917cb7abf
    Open exact source ↗ for PTO-AVS-BLOCK-RANGE-PEMODE-ZERO-001
  • Shared TLSU loads and stores use per-PE size and LB stride defaults
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SHARED-TLSU-GM-EXEC-001
    Path
    tests/asl/block/model/dispatch/shared-tlsu/block-exec-shared-tlsu-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-B-ASSEMBLE, PTO-B-ASSEMBLE-SHARED-STANDALONE-001
    Pass condition
    collective GM-to-Shared assembly, Shared-to-GM, and LB2 stride assertions hold
    SHA-256
    cdcaba84f1436e4fdae6b5d2a8bd1c455aacc499ad0ce04870f19ce2d15ce95e
    Open exact source ↗ for PTO-AVS-BLOCK-SHARED-TLSU-GM-EXEC-001
  • Shared TLOAD resolves B.IOR base and stride independently in every selected PE GPR file.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SHARED-TLSU-PER-PE-GM-EXECUTION-001
    Path
    tests/asl/block/model/dispatch/shared-tlsu/block-exec-per-pe-gm-001.asl
    Kind / role
    execution
    Requirements
    PTO-ARCH-GM-ACCESS-001, PTO-INST-TILE-TLOAD, PTO-INST-BLOCK-B-ASSEMBLE, PTO-B-ASSEMBLE-SHARED-STANDALONE-001
    Pass condition
    Four fixed Shared quarters assemble from four PE-private base/stride pairs selected by the same encoded RegSrc fields.
    SHA-256
    b398421107121b5551c5e9cc77949c2ceed6275f03543a55a422925c0d6801aa
    Open exact source ↗ for PTO-AVS-BLOCK-SHARED-TLSU-PER-PE-GM-EXECUTION-001
  • Canonical TMOV publishes an assembled Shared parent and reads it through Function 2.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU
    3. categoryEXECUTION
    4. case003
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SHARED-TLSU-PUBLISH-EXEC-003
    Path
    tests/asl/block/model/dispatch/shared-tlsu/block-exec-shared-tlsu-publish-003.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-B-ASSEMBLE, PTO-B-ASSEMBLE-SHARED-STANDALONE-001
    Pass condition
    INIT_LAST publishes atomically and two canonical Shared-to-Local reads preserve the complete descriptor and payload.
    SHA-256
    683e9b44bbce3e0a7711243009be11f4637056b56ad8eb8a07ba1eb4b616fcc0
    Open exact source ↗ for PTO-AVS-BLOCK-SHARED-TLSU-PUBLISH-EXEC-003
  • Decoded Local CUBE M16, M32, and N8 subviews derive bounded descriptors and preserve parent lifetime before normal operation commit.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-SUBVIEW-DESCRIPTOR
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SUBVIEW-CUBE-DESCRIPTOR-001
    Path
    tests/asl/block/model/operands/subview-descriptor/block-exec-subview-cube-descriptor-001.asl
    Kind / role
    execution
    Requirements
    PTO-B-SUBVIEW-DESCRIPTOR-001, PTO-INST-BLOCK-B-SUBVIEW, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT
    Pass condition
    Decoded BSTART/B.IOT/B.SUBVIEW/B.ASSEMBLE reaches normal preflight and commit for M16 and M32 parents with N8 peers; the supplementary CELL-order matrix asserts interior, repeat-boundary, clipped-tail, min/max, selected values, and exact non-CUBE/zero-valid/OOB TileLegality faults.
    SHA-256
    1c39e0e37eee9c1d48681b747be931b5a2b4a19f8ef52a33bb77da3bbb536671
    Open exact source ↗ for PTO-AVS-BLOCK-SUBVIEW-CUBE-DESCRIPTOR-001
  • Shared TLOAD uses the selected PE-private base and byte-stride GPRs and updates only selected quarters.
    1. surfaceBLOCK
    2. ownerBSTART.TLOAD
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-TLOAD-SHARED-001
    Path
    tests/asl/block/execution/BSTART.TLOAD/block-exec-bstart-tload-shared-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-BSTART-TLOAD, PTO-INST-TILE-TLOAD, PTO-INST-BLOCK-B-ASSEMBLE, PTO-B-ASSEMBLE-SHARED-STANDALONE-001
    Pass condition
    Mask 0011 assembles quarters zero and one from PE0 and PE1 while the other Shared quarters remain uninitialized.
    SHA-256
    6e213a64db5143c6397695395febedda54f98992ef132c350b158b9fa9b372a3
    Open exact source ↗ for PTO-AVS-BLOCK-TLOAD-SHARED-001
Commit-scoped evidence5
  • spec/evidence/release-traceability-readiness.json · closedPTO-EVIDENCE-RELEASE-TRACEABILITY
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-TRACEABILITY
    Path
    spec/evidence/release-traceability-readiness.json
    Kind / role
    ASL/NDF/documentation/AVS traceability
    SHA-256
    c7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3e
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-TRACEABILITY
  • spec/evidence/instruction-contract-closure.json · closedPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Path
    spec/evidence/instruction-contract-closure.json
    Kind / role
    mnemonic and encoding contract closure
    SHA-256
    3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106a
    Open exact source ↗ for PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
  • spec/evidence/architecture-readiness.json · openPTO-EVIDENCE-ARCHITECTURE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-ARCHITECTURE-READINESS
    Path
    spec/evidence/architecture-readiness.json
    Kind / role
    architecture maturity and blockers
    SHA-256
    4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004
    Open exact source ↗ for PTO-EVIDENCE-ARCHITECTURE-READINESS
  • spec/evidence/release-gate-readiness.json · ready-for-exact-head-verificationPTO-EVIDENCE-RELEASE-GATE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-GATE-READINESS
    Path
    spec/evidence/release-gate-readiness.json
    Kind / role
    exact-head gate readiness
    SHA-256
    a0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-GATE-READINESS
  • spec/release-manifest.json · draftPTO-EVIDENCE-RELEASE-MANIFEST
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-MANIFEST
    Path
    spec/release-manifest.json
    Kind / role
    release content and encoding fingerprints
    SHA-256
    1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-MANIFEST
Decision history2
  • B.SUBVIEW and B.ASSEMBLE range-modifier association · accepted
    1. decision recordADR
    2. case0098

    Decision record

    Loading ADR-0098…

    Sources and references
    Complete stable ID
    ADR-0098
    Path
    docs/status/decisions/0098-b-range-modifiers.md
    Affected units
    PTO-ARCH-PROFILE-RESET, PTO-BLOCK-B-IOT, PTO-BLOCK-B-IOS, PTO-BLOCK-B-SUBVIEW, PTO-BLOCK-B-ASSEMBLE, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS, PTO-BLOCK-MODEL-OPERANDS-SHARED-BINDINGS, PTO-BLOCK-MODEL-OPERANDS-TILE-BINDINGS, PTO-BLOCK-MODEL-STATE-CONTROL-STATE, PTO-BLOCK-MODEL-STATE-DESCRIPTOR-STATE, PTO-BLOCK-MODEL-STATE-TYPES, PTO-ARCH-DATA-TYPES-TRAP-CONTEXT, PTO-ARCH-PROFILE-REFERENCE-PROFILE, PTO-ARCH-PROFILE-TRAP-CONTEXT-RECOVERY, PTO-ARCH-STATE-TRAP-CONTEXT, PTO-BLOCK-MODEL-DISPATCH-TILE-EXECUTION, PTO-BLOCK-MODEL-DISPATCH-TILE-SCHEMA, PTO-BLOCK-MODEL-FAULTS-ROLLBACK, PTO-BLOCK-MODEL-LIFECYCLE-RESET, PTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION, PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION, PTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS, PTO-BLOCK-MODEL-OPERANDS-SUBVIEW-DESCRIPTOR, PTO-BLOCK-MODEL-STATE-SHARED-GENERATION, PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
    Affected NDF
    PTO-B-IOT-STREAM-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-SUBVIEW-RANGE-001, PTO-B-ASSEMBLE-RANGE-001, PTO-B-SUBVIEW-DESCRIPTOR-001, PTO-BLOCK-TILE-OPERATION-APPLICABILITY-001, PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-B-ASSEMBLE-SHARED-GENERATION-001, PTO-B-ASSEMBLE-SHARED-STANDALONE-001, PTO-B-ASSEMBLE-CONSUMER-READINESS-001, PTO-B-ASSEMBLE-SPECULATION-001, PTO-B-ASSEMBLE-PRODUCER-EFFECT-ELIGIBILITY-001
    SHA-256
    e194ccc6b6922fd4b65066b533f5e4b0eba094e099970059bca8e25b4e466fba
    Open exact decision source ↗ for ADR-0098
  • PTO ISA 0.58.3 to 0.58.4 compatibility boundary · accepted
    1. decision recordADR
    2. case0099

    Decision record

    Loading ADR-0099…

    Sources and references
    Complete stable ID
    ADR-0099
    Path
    docs/status/decisions/0099-0583-to-0584-compatibility.md
    Affected units
    PTO-ARCH-PROGRAMMING-MODEL-CORE-PE-TOPOLOGY, PTO-BLOCK-B-IOT, PTO-BLOCK-B-IOS, PTO-BLOCK-B-SUBVIEW, PTO-BLOCK-B-ASSEMBLE, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS
    Affected NDF
    PTO-B-IOT-STREAM-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-SUBVIEW-RANGE-001, PTO-B-ASSEMBLE-RANGE-001
    SHA-256
    f130ce243d978a85dc641580d71505a950a34ce1a561402e74946ed6903ad2a0
    Open exact decision source ↗ for ADR-0099

Unit metadata

Open 11 generated metadata fields
assembly
[
  "B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode"
]
block
[]
catalog_indices
[
  75
]
catalog_records
[
  {
    "asm": "B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode",
    "constraints": [
      {
        "field": "INIT",
        "operator": "one-of",
        "values": [
          0,
          1
        ]
      },
      {
        "field": "RegSrc",
        "operator": "one-of",
        "values": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23
        ]
      },
      {
        "field": "ParentSizeCode",
        "operator": "one-of",
        "values": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12
        ]
      }
    ],
    "encoding": [
      {
        "index": 0,
        "mask": "0x0000707f",
        "match": "0x00001053",
        "width_bits": 32
      }
    ],
    "encoding_kind": "L32",
    "fields": [
      {
        "name": "INIT",
        "pieces": [
          {
            "instruction_lsb": 31,
            "value_lsb": 0,
            "width": 1
          }
        ],
        "signedness": "encoding-defined",
        "width": 1
      },
      {
        "name": "uimm11",
        "pieces": [
          {
            "instruction_lsb": 20,
            "value_lsb": 0,
            "width": 11
          }
        ],
        "signedness": "unsigned",
        "width": 11
      },
      {
        "name": "RegSrc",
        "pieces": [
          {
            "instruction_lsb": 15,
            "value_lsb": 0,
            "width": 5
          }
        ],
        "signedness": "encoding-defined",
        "width": 5
      },
      {
        "name": "LAST",
        "pieces": [
          {
            "instruction_lsb": 11,
            "value_lsb": 0,
            "width": 1
          }
        ],
        "signedness": "encoding-defined",
        "width": 1
      },
      {
        "name": "ParentSizeCode",
        "pieces": [
          {
            "instruction_lsb": 7,
            "value_lsb": 0,
            "width": 4
          }
        ],
        "signedness": "encoding-defined",
        "width": 4
      }
    ],
    "form_id": "b_assemble_32_122000000002",
    "length_bits": 32,
    "mnemonic": "B.ASSEMBLE",
    "semantic_family": "CMD",
    "semantic_group": "Bundle Range Modifier",
    "semantic_handler": "ApplyBundleAssemble",
    "semantic_summary": "Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.",
    "status": "accepted"
  }
]
classification
[
  "operands"
]
contract
{
  "block_composition": [
    "Immediately follows B.IOT or B.IOS and is contiguous with the associated modifier group."
  ],
  "canonical_assembly": [
    "B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode"
  ],
  "defaults": [
    "uimm11 is unsigned and zero-extended. RegSrc zero names the architectural zero GPR. INIT=0 encodes MIDDLE/LAST; INIT=1 encodes INIT/INIT_LAST."
  ],
  "encoding_class": "standalone-encoded",
  "examples": [
    "B.IOT T0, mask=1111, ->T1<1>; B.ASSEMBLE 1, 1, a0, 0, 10"
  ],
  "exceptions": [
    "Reserved funct3/opcode, RegSrc24..31, and ParentSizeCode13..15 raise Fault_IllegalInstruction before GPR reads, carrier updates, or TPC advance.",
    "INIT=1 with ParentSizeCode=0 or INIT=0 with a nonzero ParentSizeCode raises Fault_BundleControl.",
    "Missing, reversed, duplicate, intervening, or role-incompatible groups raise Fault_BundleControl."
  ],
  "field_contracts": {},
  "field_zero_meanings": {
    "INIT": "Zero selects MIDDLE/LAST rather than INIT/INIT_LAST.",
    "LAST": "One closes the modifier sequence at the semantic assembler.",
    "uimm11": "Zero is a real zero displacement.",
    "RegSrc": "Zero names the architectural zero GPR.",
    "ParentSizeCode": "Zero is the MIDDLE/LAST-only no-parent-size encoding."
  },
  "legality": [
    "RegSrc accepts only absolute GPR selectors 0..23.",
    "ParentSizeCode raw values 0..12 are decoded; INIT/size combinations select INIT, MIDDLE, LAST, or INIT_LAST and contradictory combinations are BundleControl.",
    "Local and Shared parent sizes 1..12 are accepted.",
    "The modifier is legal only in the contiguous immediately preceding binder group and follows source roles."
  ],
  "memory_effects": [
    "none"
  ],
  "operands": [
    {
      "field": "INIT",
      "role": "selects INIT versus MIDDLE/LAST form"
    },
    {
      "field": "LAST",
      "role": "marks the final assembler carrier"
    },
    {
      "field": "RegSrc",
      "role": "absolute GPR selector"
    },
    {
      "field": "uimm11",
      "role": "unsigned XLEN addend"
    },
    {
      "field": "ParentSizeCode",
      "role": "raw parent size code"
    }
  ],
  "ordering": [
    "Decode fixed/reserved fields and raw ranges before any GPR read; compute GPR[RegSrc]+ZeroExtend(uimm11) modulo 2^XLEN after group legality."
  ],
  "state_effects": [
    "Store raw INIT/LAST/RegSrc/uimm11/ParentSizeCode and the derived XLEN offset in the destination carrier of the open binder group.",
    "PEMode=000 on the binder opens a discarded syntactic group; every raw-legal contiguous modifier advances TPC without reads, state, role, or fault effects."
  ],
  "standalone_opcode": true
}
depends_on
[
  "PTO-BLOCK-B-IOT",
  "PTO-BLOCK-B-IOS",
  "PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS"
]
id
PTO-BLOCK-B-ASSEMBLE
mnemonic
B.ASSEMBLE
summary
Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.
surface
block
Open generated traceability record
{
  "classification": [
    "operands"
  ],
  "documentation": "docs/block/operands/B.ASSEMBLE.md",
  "id": "PTO-BLOCK-B-ASSEMBLE",
  "instruction_contract": {
    "artifact": "spec/evidence/instruction-contract-closure.json",
    "mnemonic": "B.ASSEMBLE",
    "ndf_clause": "PTO-INST-BLOCK-B-ASSEMBLE"
  },
  "mnemonic": "B.ASSEMBLE",
  "readiness_subjects": [
    "ADR-0098",
    "ADR-0099"
  ],
  "semantic_tests": [
    "PTO-AVS-BLOCK-B-ASSEMBLE-ENCODING-001"
  ],
  "source": "asl/block/operands/B.ASSEMBLE.asl",
  "surface": "block",
  "tests": [
    "PTO-AVS-BLOCK-B-ASSEMBLE-DECODE-001",
    "PTO-AVS-BLOCK-B-ASSEMBLE-ENCODING-001"
  ]
}

Sources and release identity

Show commit, paths, hashes, version, and canonical owners
Release
0.58.5 · Release candidate
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
78b3638e1d09e55d9ac1c45f0589c4c86cb5d355d4ae8b6e79c510a42b1a60e4
Generated documentation
docs/block/operands/B.ASSEMBLE.md · embedded in this page
Documentation SHA-256
8b5e3e09ca6e2da2061b4d699b72bc5504b7b15d606c01dc9bed43c461e26a47

Exact owners