diff options
author | Brian <brian@yutani.localnet.net> | 2007-02-05 11:28:15 -0700 |
---|---|---|
committer | Brian <brian@yutani.localnet.net> | 2007-02-05 11:28:15 -0700 |
commit | 01001d80e26143ac768115ccb2266db2b24d4fa0 (patch) | |
tree | 193823bef28d0fb428e7ad42317811ed4116316a /src/mesa/shader/slang/slang_emit.c | |
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_emit.c')
-rw-r--r-- | src/mesa/shader/slang/slang_emit.c | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c index 01fb5a41da..756bbe9587 100644 --- a/src/mesa/shader/slang/slang_emit.c +++ b/src/mesa/shader/slang/slang_emit.c @@ -297,6 +297,32 @@ slang_print_ir(const slang_ir_node *n, int indent) printf("ENDIF\n"); break; + case IR_BEGIN_SUB: + printf("BEGIN_SUB\n"); + break; + case IR_END_SUB: + printf("END_SUB\n"); + break; + case IR_RETURN: + printf("RETURN\n"); + break; + case IR_CALL: + printf("CALL\n"); + break; + + case IR_BEGIN_LOOP: + printf("BEGIN_LOOP\n"); + break; + case IR_END_LOOP: + printf("END_LOOP\n"); + break; + case IR_CONT: + printf("CONT\n"); + break; + case IR_BREAK: + printf("BREAK\n"); + break; + case IR_VAR: printf("VAR %s%s at %s store %p\n", (n->Var ? (char *) n->Var->a_name : "TEMP"), @@ -313,9 +339,6 @@ slang_print_ir(const slang_ir_node *n, int indent) printf("FIELD %s of\n", n->Target); slang_print_ir(n->Children[0], indent+3); break; - case IR_CALL: - printf("ASMCALL %s(%d args)\n", n->Target, 0/*XXX*/); - break; case IR_FLOAT: printf("FLOAT %f %f %f %f\n", n->Value[0], n->Value[1], n->Value[2], n->Value[3]); |