as: TILE-Gx Syntax
1
1 9.47.2 Syntax
1 -------------
1
1 Block comments are delimited by '/*' and '*/'. End of line comments may
1 be introduced by '#'.
1
1 Instructions consist of a leading opcode or macro name followed by
1 whitespace and an optional comma-separated list of operands:
1
1 OPCODE [OPERAND, ...]
1
1 Instructions must be separated by a newline or semicolon.
1
1 There are two ways to write code: either write naked instructions,
1 which the assembler is free to combine into VLIW bundles, or specify the
1 VLIW bundles explicitly.
1
1 Bundles are specified using curly braces:
1
1 { ADD r3,r4,r5 ; ADD r7,r8,r9 ; LW r10,r11 }
1
1 A bundle can span multiple lines. If you want to put multiple
1 instructions on a line, whether in a bundle or not, you need to separate
1 them with semicolons as in this example.
1
1 A bundle may contain one or more instructions, up to the limit
1 specified by the ISA (currently three). If fewer instructions are
1 specified than the hardware supports in a bundle, the assembler inserts
1 'fnop' instructions automatically.
1
1 The assembler will prefer to preserve the ordering of instructions
1 within the bundle, putting the first instruction in a lower-numbered
1 pipeline than the next one, etc. This fact, combined with the optional
1 use of explicit 'fnop' or 'nop' instructions, allows precise control
1 over which pipeline executes each instruction.
1
1 If the instructions cannot be bundled in the listed order, the
1 assembler will automatically try to find a valid pipeline assignment.
1 If there is no way to bundle the instructions together, the assembler
1 reports an error.
1
1 The assembler does not yet auto-bundle (automatically combine
1 multiple instructions into one bundle), but it reserves the right to do
1 so in the future. If you want to force an instruction to run by itself,
1 put it in a bundle explicitly with curly braces and use 'nop'
1 instructions (not 'fnop') to fill the remaining pipeline slots in that
1 bundle.
1
Menu