ATI R700 Technology
9-22 Control Flow (CF) Instructions
Copyright © 2009 Advanced Micro Devices, Inc. All rights reserved.
Start Loop
Instructions
LOOP_START
Description Begin a loop. The instruction pushes the internal loop state onto the stack. A condition test
is computed. All pixels fail the test if the loop count is zero. Pixels that fail the test become
inactive. If all pixels fail the test, the instruction does not enter the loop, and it pops
POP_COUNT entries (can be zero) from the stack.
The instruction reads one of 32 constants, specified by the CF_CONST field, to get the loop’s
trip count (maximum number of loop iterations), beginning value (loop index initializer), and
increment (step), which are maintained by hardware. The instruction jumps to the address
specified in the instruction’s ADDR field if the initial loop index value is zero. Software normally
sets the ADDR field to the instruction following the matching LOOP_END instruction. Control
jumps to the specified address if the initial loop count is zero. If LOOP_START does not jump,
it sets up the hardware-maintained loop state.
Loop register-relative addressing is well-defined only within the loop. If multiple loops are
nested, relative addressing refers to the state of the innermost loop. The state of the next-
outer loop is automatically restored when the innermost loop exits.
Microcode
Format CF_DWORD0 (page 10-3) and CF_DWORD1 (page 10-4).
Instruction Field CF_INST == CF_INST_LOOP_START, opcode 4 (0x4).
B
W
Q
M
CF_INST
V
P
M
E
O
P
Rsvd CALL_COUNT COUNT COND CF_CONST PC +4
ADDR
+0
Comments to this Manuals