Age | Commit message (Collapse) | Author | |
---|---|---|---|
2007-02-06 | Implement CONT, improve BRK. | Brian | |
IR_LOOP's BranchNode ptr is the head of a linked list of CONT and BRK nodes. After emitting loop, walk over the linked list, filling in the CONT/BRK instruction's BranchTarget field (location of the ENDLOOP instruction, or one past). | |||
2007-02-06 | replace IR_BEGIN_LOOP/IR_END_LOOP with IR_LOOP | Brian | |
2007-02-06 | new_node[0123]() functions | Brian | |
2007-02-06 | redo IR_IF node, removing IR_ELSE, IR_ENDIF | Brian | |
2007-02-05 | BRK instruction's BranchTarget field now used for efficiently breaking out ↵ | Brian | |
of loops. BRK's BranchTarget field actually points to the top of the loop, not the bottom, since we don't know the later's location yet. In the interpreter, basically do an indirect jump to update the PC. | |||
2007-02-05 | Use IR node's BranchNode field for IF/ELSE/ENDIF instructions. | Brian | |
This allows us to back-patch the IF/ELSE instruction's BranchTarget field to point to the location of the ELSE/ENDIF instructions. No longer have to search for ELSE/ENDIF in the interpreter. Also makes it trivial to translate IF/ELSE instructions into conditional/unconditional BRA instructions. | |||
2007-02-05 | set UseHighLevelInstructions = false for now | Brian | |
2007-02-05 | Initial implementation of high-level flow-control instructions. | Brian | |
IF/ELSE/ENDIF and BEGIN_LOOP/END_LOOP/BREAK instructions seem to work. Disabled by default though until better tested. Implemented IR_NOT, but needs optimization. | |||
2007-02-05 | Initial support of loop and subroutine instructions. | Brian | |
New high-level flow-control instructions, both at IR level and GPU instructions for looping and subroutines. | |||
2007-02-03 | Add literal_size field to slang_operation. | Brian | |
Used to track the number of components in a float/int/bool literal. Helps with some typechecking things. Fixes problems with calls such as "distance(v2, vec2(1.0, 2.0))" | |||
2007-02-02 | add vec4_texcube to AsmInfo[] | Brian | |
2007-02-02 | move _slang_locate_function() | Brian | |
2007-02-02 | s/slang_assembly_typeinfo/slang_typeinfo/ | Brian | |
2007-02-02 | s/slang_assembly_name_space/slang_name_space/ | Brian | |
2007-02-02 | rename slang_assemble_typeinfo.[ch] to slang_typeinfo.[ch] | Brian | |
2007-02-02 | remove more slang assembly-related code | Brian | |
2007-02-02 | move some functions, disable some code in preparation for removing assembly code | Brian | |
2007-02-02 | Move guts of slang_lookup_constant() into a new function in slang_simplify.c | Brian | |
2007-02-02 | replace abort() with _mesa_problem() | Brian | |
2007-02-02 | try to simplify variable initializers | Brian | |
2007-02-01 | Fix logic in _slang_simplify(): vec2() constructor case wasn't getting used. | Brian | |
2007-01-31 | Overhaul handling of writemasks/swizzling. This fixes two problem cases: | Brian | |
vec2 v; v.x = v.y = 1.0; // chained assignment vec4 v; v.zx = vec2(a,b); // swizzled writemask | |||
2007-01-31 | New asm instruction and IR_CLAMP node type to allow clamping to [0,1] with ↵ | Brian | |
instruction saturate-write option. Not finished yet. | |||
2007-01-28 | noise functions | Brian | |
2007-01-28 | implement mix() with LRP instruction | Brian | |
2007-01-28 | Lots of vartable clean-ups, fixes. Report an error message when we run out | Brian | |
of registers, rather than crash. | |||
2007-01-23 | fix g++ warnings/errors | Brian | |
2007-01-20 | Initial implementation of OPCODE_IF/ELSE/ENDIF instructions. | Brian | |
2007-01-20 | Reimplement && and || to do short-circuit evaluation. | Brian | |
Improved shader error handling. | |||
2007-01-19 | Implement do/while loops. Replace IR_CJUMP with IR_CJUMP0 and IR_CJUMP1 so | Brian | |
we can either jump on zero, or non-zero predicate. | |||
2007-01-19 | Implement fragment discard/kill. | Brian | |
2007-01-18 | Implement constant sharing so that 4 float constants can share a single | Brian | |
float[4] register slot. | |||
2007-01-18 | Reimplement code for swizzling so that expressions like (p+q).x for vectors ↵ | Brian | |
p and q works correctly. | |||
2007-01-18 | remove swizzle param from new_var() | Brian | |
2007-01-17 | _slang_gen_function_call_name() now tries to adapt function calls (expand | Brian | |
vectors, insert casts) when a perfect match isn't found. | |||
2007-01-17 | Fix/clean-up a number of things related to variable/temporary allocation. | Brian | |
2007-01-16 | Implement codegen for the selection operator ( b ? x : y ) | Brian | |
2007-01-16 | fix typo | Brian | |
2007-01-16 | remove dead code | Brian | |
2007-01-16 | implement logical or, xor, not | Brian | |
2007-01-16 | fix _slang_gen_subscript() for the case when a simple vector is accessed as ↵ | Brian | |
an array: convert index to a swizzle/writemask | |||
2007-01-15 | Reimplement the post-increment/decrement functions. | Brian | |
Instead of defining functions with an extra dummy parameter to distinguish from the pre-incr/decr functions, just use new function names: __postIncr and __postDecr. | |||
2007-01-15 | Implement the ++var and --var operators, improve some constructors. | Brian | |
2007-01-15 | checkpoint: ++, -- and && operators | Brian | |
2007-01-15 | Redo the way array indexes are handled. Resolve storage location at code ↵ | Brian | |
emit time, not codegen time. | |||
2007-01-15 | remove old globals | Brian | |
2007-01-15 | Move some global vars into slang_assemble_ctx. | Brian | |
2007-01-15 | fix the subassig, mulassign and divassign cases | Brian | |
2007-01-15 | clean-up slang_allocate_storage() | Brian | |
2007-01-13 | Rework code related to temp register allocation, both for user variables | Brian | |
and expression temporarires. Much better register utilization now. Lots of other fixes. The OpenGL GLSL "orange book" brick shader demo works now. |