summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_emit.c
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2007-02-05 11:28:15 -0700
committerBrian <brian@yutani.localnet.net>2007-02-05 11:28:15 -0700
commit01001d80e26143ac768115ccb2266db2b24d4fa0 (patch)
tree193823bef28d0fb428e7ad42317811ed4116316a /src/mesa/shader/slang/slang_emit.c
parentdd34fe8679fa200e55cfaf8e80bbecdecea084e3 (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.c29
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]);