Structure of ISR assembly code

To aid programming, and support instruction co-issue, program instruction groups are used.

Instruction co-issue is where multiple instructions are issued, in a single clock cycle, to run in the multiple phases of the Unified Shading Cluster (USC) Pipeline Datapath (USCPD).

The Arithmetic Logic Unit (ALU) pipeline allows up to 6 instructions (1 per phase + backend) to be issued within a clock. These instructions are presented to the assembler as a "group" of instructions.

The general layout of an instruction group can be seen below:

[n] : [if (cond)] # n is group number (if is optional)
 [Op 0] # First op 
 [Op 1] # Second op (optional)
 [Op N] # Nth operation (optional)

Note: Some of the commands are removed in the interest of clarity. However, the main instructions are still there, so it is sufficient to optimise code based on the disassembly output.