summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_codegen.c
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2007-01-16 14:15:05 -0700
committerBrian <brian@yutani.localnet.net>2007-01-16 14:15:05 -0700
commitd90c655b0571c474785fa94b4c64ab099a2229a2 (patch)
tree4760c1405c4fe64e186869ddce3fd2dae59599c5 /src/mesa/shader/slang/slang_codegen.c
parent99e788fe561b1dd54ce083d3f05e6895fb91953a (diff)
implement logical or, xor, not
Diffstat (limited to 'src/mesa/shader/slang/slang_codegen.c')
-rw-r--r--src/mesa/shader/slang/slang_codegen.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index bd49a265b2..635f47c20e 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -2006,11 +2006,19 @@ _slang_gen_operation(slang_assemble_ctx * A, slang_operation *oper)
return n;
}
case slang_oper_logicalor:
- printf("OR\n");
- abort();
+ {
+ slang_ir_node *n;
+ assert(oper->num_children == 2);
+ n = _slang_gen_function_call_name(A, "__logicalOr", oper, NULL);
+ return n;
+ }
case slang_oper_logicalxor:
- printf("XOR\n");
- abort();
+ {
+ slang_ir_node *n;
+ assert(oper->num_children == 2);
+ n = _slang_gen_function_call_name(A, "__logicalXor", oper, NULL);
+ return n;
+ }
case slang_oper_logicaland:
{
slang_ir_node *n;
@@ -2018,13 +2026,13 @@ _slang_gen_operation(slang_assemble_ctx * A, slang_operation *oper)
n = _slang_gen_function_call_name(A, "__logicalAnd", oper, NULL);
return n;
}
-#if 0
- printf("AND\n");
- return _slang_gen_logical_and(A, oper);
-#endif
case slang_oper_not:
- printf("NOT\n");
- abort();
+ {
+ slang_ir_node *n;
+ assert(oper->num_children == 1);
+ n = _slang_gen_function_call_name(A, "__logicalNot", oper, NULL);
+ return n;
+ }
case slang_oper_asm:
return _slang_gen_asm(A, oper, NULL);