AMD ATI CTM Technical Reference Manual page 41

Table of Contents

Advertisement

• FC_OP_ENDLOOP = Increment counter and aL if jump, else pop loop stack
• FC_OP_REP = Initialize counter, and push loop stack if stay
• FC_OP_ENDREP = Increment counter if jump, else pop loop stack
• FC_OP_BREAKLOOP = Pop loop stack if jump
• FC_OP_BREAKREP = Pop loop stack if jump
• FC_OP_CONTINUE = Disable processors until end of current loop
You should use FC_OP_BREAKLOOP if the innermost looping construct is LOOP, and FC_OP_BREAKREP if the
innermost looping construct is REP.
A_OP - Address Stack Operations.
• FC_A_OP_NONE = None
• FC_A_OP_POP = Pop address stack if jump (overrides JUMP_ADDR given in instruction)
• FC_A_OP_PUSH = Push address stack if jump
B_OP0 - Branch stack Operations if stay.
• FC_B_OP_NONE = None
• FC_B_OP_DECR = Decrement branch counter for inactive processors by amount in B_POP_CNT. Activate
processors which go negative.
• FC_B_OP_INCR = Increment branch counter for inactive processors by 1. Deactivate processors which
disagree with the jump decision (by deciding to jump) and set their branch counter to 0.
B_OP1 - Branch stack Operations if jump.
• FC_B_OP_NONE = None
• FC_B_OP_DECR = Decrement branch counter for inactive processors by amount in B_POP_CNT. Activate
processors which go negative.
• FC_B_OP_INCR = Increment branch counter for inactive processors by 1. Deactivate processors which
disagree with the jump decision (by deciding not to jump) and set their branch counter to 0.
B_POP_CNT - Branch Stack Pop Count.
How much to decrement the branch counters by when appropriate B_OP* field says to decrement.
B_ELSE - Branch Stack Else
• false = None
• true = Activate processors whose branch count is zero (processors deactivated by the innermost cond itional
block), and deactivate all processors that were active.
Special Cases
When the iteration count is zero, LOOP/REP ignore JUMP_FUNC and jump.
When the iteration count is zero, ENDLOOP/ENDREP ignore JUMP_FUNC and don't jump.
Any processors deactivated by B_ELSE "want to jump" regardless of JUMP_FUNC.
Any processors deactivated by a branching statement (if, else) will inhibit a decision to jump by a BREAK or
CONTINUE statement.
Any processors deactivated by a CONTINUE statement will inhibit a decision to jump by a BREAK statement; they
will not inhibit a decision to jump by another CONTINUE statement.
Processors deactivated by other flow control are indifferent to the decision to jump by a BREAK or CONTINUE
statement.
Address Fields
BOOL_ADDR - Which of 32 constant booleans to use for jump condition.
© 2006 Advanced Micro Devices, Inc.
Fields 37
ATI CTM Guide v. 1.01

Advertisement

Table of Contents
loading

Table of Contents