summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2007-03-07 11:26:47 -0700
committerBrian <brian@yutani.localnet.net>2007-03-07 11:26:47 -0700
commit5b5a80d011d143f1bbd9be39dc4ca6a0af4bad7c (patch)
treeafd256ae5d4dadda81c54547e08ac5de50c04b7d /src/mesa/shader/slang
parentab673c852724e81365ab9d979881da7464131854 (diff)
s/equal/EQUAL/, fix bugs in logical or/and code.
Diffstat (limited to 'src/mesa/shader/slang')
-rw-r--r--src/mesa/shader/slang/slang_codegen.c12
-rw-r--r--src/mesa/shader/slang/slang_compile.c4
-rw-r--r--src/mesa/shader/slang/slang_compile_operation.c3
-rw-r--r--src/mesa/shader/slang/slang_compile_operation.h4
-rw-r--r--src/mesa/shader/slang/slang_print.c4
-rw-r--r--src/mesa/shader/slang/slang_typeinfo.c4
6 files changed, 17 insertions, 14 deletions
diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index 5c2ee3c4388..d1e3544b545 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -1650,8 +1650,8 @@ _slang_gen_logical_and(slang_assemble_ctx *A, slang_operation *oper)
slang_operation_copy(&select->children[0], &oper->children[0]);
slang_operation_copy(&select->children[1], &oper->children[1]);
select->children[2].type = SLANG_OPER_LITERAL_BOOL;
- ASSIGN_4V(select->children[2].literal, 0, 0, 0, 0);
- select->children[2].literal_size = 2;
+ ASSIGN_4V(select->children[2].literal, 0, 0, 0, 0); /* false */
+ select->children[2].literal_size = 1;
n = _slang_gen_select(A, select);
@@ -1680,9 +1680,9 @@ _slang_gen_logical_or(slang_assemble_ctx *A, slang_operation *oper)
slang_operation_copy(&select->children[0], &oper->children[0]);
select->children[1].type = SLANG_OPER_LITERAL_BOOL;
- ASSIGN_4V(select->children[2].literal, 1, 1, 1, 1);
+ ASSIGN_4V(select->children[1].literal, 1, 1, 1, 1); /* true */
+ select->children[1].literal_size = 1;
slang_operation_copy(&select->children[2], &oper->children[1]);
- select->children[2].literal_size = 2;
n = _slang_gen_select(A, select);
@@ -2281,11 +2281,11 @@ _slang_gen_operation(slang_assemble_ctx * A, slang_operation *oper)
return new_node2(IR_SGT,
_slang_gen_operation(A, &oper->children[1]),
_slang_gen_operation(A, &oper->children[0]));
- case SLANG_OPER_GREATERequal:
+ case SLANG_OPER_GREATEREQUAL:
return new_node2(IR_SGE,
_slang_gen_operation(A, &oper->children[0]),
_slang_gen_operation(A, &oper->children[1]));
- case SLANG_OPER_LESSequal:
+ case SLANG_OPER_LESSEQUAL:
/* child[0] <= child[1] ----> child[1] >= child[0] */
return new_node2(IR_SGE,
_slang_gen_operation(A, &oper->children[1]),
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c
index 4609de684a0..e1837520253 100644
--- a/src/mesa/shader/slang/slang_compile.c
+++ b/src/mesa/shader/slang/slang_compile.c
@@ -1037,12 +1037,12 @@ parse_expression(slang_parse_ctx * C, slang_output_ctx * O,
return 0;
break;
case OP_LESSEQUAL:
- op->type = SLANG_OPER_LESSequal;
+ op->type = SLANG_OPER_LESSEQUAL;
if (!handle_nary_expression(C, op, &ops, &num_ops, 2))
return 0;
break;
case OP_GREATEREQUAL:
- op->type = SLANG_OPER_GREATERequal;
+ op->type = SLANG_OPER_GREATEREQUAL;
if (!handle_nary_expression(C, op, &ops, &num_ops, 2))
return 0;
break;
diff --git a/src/mesa/shader/slang/slang_compile_operation.c b/src/mesa/shader/slang/slang_compile_operation.c
index aa66be88958..cf820800660 100644
--- a/src/mesa/shader/slang/slang_compile_operation.c
+++ b/src/mesa/shader/slang/slang_compile_operation.c
@@ -42,6 +42,7 @@ slang_operation_construct(slang_operation * oper)
oper->children = NULL;
oper->num_children = 0;
oper->literal[0] = 0.0;
+ oper->literal_size = 1;
oper->a_id = SLANG_ATOM_NULL;
oper->locals = _slang_variable_scope_new(NULL);
if (oper->locals == NULL)
@@ -104,6 +105,8 @@ slang_operation_copy(slang_operation * x, const slang_operation * y)
z.literal[2] = y->literal[2];
z.literal[3] = y->literal[3];
z.literal_size = y->literal_size;
+ assert(y->literal_size >= 1);
+ assert(y->literal_size <= 4);
z.a_id = y->a_id;
if (y->locals) {
if (!slang_variable_scope_copy(z.locals, y->locals)) {
diff --git a/src/mesa/shader/slang/slang_compile_operation.h b/src/mesa/shader/slang/slang_compile_operation.h
index 4adcd2ab0e6..02f677f8139 100644
--- a/src/mesa/shader/slang/slang_compile_operation.h
+++ b/src/mesa/shader/slang/slang_compile_operation.h
@@ -77,8 +77,8 @@ typedef enum slang_operation_type_
SLANG_OPER_NOTEQUAL, /* [expr] "!=" [expr] */
SLANG_OPER_LESS, /* [expr] "<" [expr] */
SLANG_OPER_GREATER, /* [expr] ">" [expr] */
- SLANG_OPER_LESSequal, /* [expr] "<=" [expr] */
- SLANG_OPER_GREATERequal, /* [expr] ">=" [expr] */
+ SLANG_OPER_LESSEQUAL, /* [expr] "<=" [expr] */
+ SLANG_OPER_GREATEREQUAL, /* [expr] ">=" [expr] */
/*SLANG_OPER_LSHIFT, */
/*SLANG_OPER_RSHIFT, */
SLANG_OPER_ADD, /* [expr] "+" [expr] */
diff --git a/src/mesa/shader/slang/slang_print.c b/src/mesa/shader/slang/slang_print.c
index e53378e4613..a2f3691ddb1 100644
--- a/src/mesa/shader/slang/slang_print.c
+++ b/src/mesa/shader/slang/slang_print.c
@@ -499,11 +499,11 @@ slang_print_tree(const slang_operation *op, int indent)
print_binary(op, ">", indent);
break;
- case SLANG_OPER_LESSequal:
+ case SLANG_OPER_LESSEQUAL:
print_binary(op, "<=", indent);
break;
- case SLANG_OPER_GREATERequal:
+ case SLANG_OPER_GREATEREQUAL:
print_binary(op, ">=", indent);
break;
diff --git a/src/mesa/shader/slang/slang_typeinfo.c b/src/mesa/shader/slang/slang_typeinfo.c
index 07ec514c678..6a358d66d89 100644
--- a/src/mesa/shader/slang/slang_typeinfo.c
+++ b/src/mesa/shader/slang/slang_typeinfo.c
@@ -392,8 +392,8 @@ _slang_typeof_operation_(const slang_operation * op,
case SLANG_OPER_NOTEQUAL:
case SLANG_OPER_LESS:
case SLANG_OPER_GREATER:
- case SLANG_OPER_LESSequal:
- case SLANG_OPER_GREATERequal:
+ case SLANG_OPER_LESSEQUAL:
+ case SLANG_OPER_GREATEREQUAL:
case SLANG_OPER_NOT:
ti->spec.type = SLANG_SPEC_BOOL;
break;