diff options
author | Brian <[email protected]> | 2007-02-05 11:28:15 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2007-02-05 11:28:15 -0700 |
commit | 01001d80e26143ac768115ccb2266db2b24d4fa0 (patch) | |
tree | 193823bef28d0fb428e7ad42317811ed4116316a /src/mesa/shader/slang/slang_ir.h | |
parent | dd34fe8679fa200e55cfaf8e80bbecdecea084e3 (diff) |
Initial support of loop and subroutine instructions.
New high-level flow-control instructions, both at IR level and GPU instructions
for looping and subroutines.
Diffstat (limited to 'src/mesa/shader/slang/slang_ir.h')
-rw-r--r-- | src/mesa/shader/slang/slang_ir.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/mesa/shader/slang/slang_ir.h b/src/mesa/shader/slang/slang_ir.h index 5fd72be36a0..ac1ea4dbb4a 100644 --- a/src/mesa/shader/slang/slang_ir.h +++ b/src/mesa/shader/slang/slang_ir.h @@ -46,15 +46,27 @@ typedef enum IR_NOP = 0, IR_SEQ, /* sequence (eval left, then right) */ IR_SCOPE, /* new variable scope (one child) */ + IR_LABEL, /* target of a jump or cjump */ IR_JUMP, /* unconditional jump */ IR_CJUMP0, /* conditional jump if zero */ IR_CJUMP1, /* conditional jump if one (or non-zero) */ - IR_COND, /* conditional expression */ + IR_COND, /* conditional expression/predicate */ + IR_IF, /* high-level IF */ IR_ELSE, /* high-level ELSE */ IR_ENDIF, /* high-level ENDIF */ - IR_CALL, /* call subroutine */ + + IR_BEGIN_SUB, /* begin subroutine */ + IR_END_SUB, /* end subroutine */ + IR_RETURN, /* return from subroutine */ + IR_CALL, /* call subroutine */ + + IR_BEGIN_LOOP,/* begin loop */ + IR_END_LOOP, /* end loop */ + IR_CONT, /* continue loop */ + IR_BREAK, /* break loop */ + IR_MOVE, IR_ADD, IR_SUB, @@ -90,17 +102,22 @@ typedef enum IR_NOISE3, /* noise(x, y, z) */ IR_NOISE4, /* noise(x, y, z, w) */ IR_NOT, /* logical not */ + IR_VAR, /* variable reference */ IR_VAR_DECL,/* var declaration */ + IR_ELEMENT, /* array element */ + IR_FIELD, /* struct field */ IR_SWIZZLE, /* swizzled storage access */ + IR_TEX, /* texture lookup */ IR_TEXB, /* texture lookup with LOD bias */ IR_TEXP, /* texture lookup with projection */ + IR_FLOAT, - IR_FIELD, IR_I_TO_F, /* int[4] to float[4] conversion */ IR_F_TO_I, /* float[4] to int[4] conversion */ + IR_KILL /* fragment kill/discard */ } slang_ir_opcode; |