aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/shader/slang/slang_emit.c
Commit message (Collapse)AuthorAgeFilesLines
* init tmpNode to zerosBrian2008-03-141-0/+1
|
* mesa: fix emit_clamp() so that we don't use an output register as temporaryBrian2008-03-141-3/+12
| | | | | | IR_CLAMP is decomposed into OPCODE_MIN+OPCODE_MAX. Allocate a temporary register for the intermediate value so we don't inadvertantly use an output register (which are write-only on some GPUs).
* set fp->UsesKill when emitting OPCODE_KILBrian2007-11-271-2/+8
|
* Fix parsing of gl_FrontLightModelProduct.sceneColor, don't segfault on ↵Brian2007-11-231-0/+4
| | | | variable array indexes.
* fix comment: s/branch/kill/Brian2007-10-021-1/+1
|
* Fix function call bug 11731. Also, fix up IR_CALL/IR_FUNC confusion.Brian2007-07-261-7/+9
|
* Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian2007-07-041-7/+7
| | | | of -I flags.
* Remove all the USE_MEMPOOL debug code.Brian2007-04-211-8/+0
|
* Use new memory pool allocator. Lots of debug code still in place...Brian2007-04-211-0/+9
|
* free subroutine array (fix mem leak)Brian2007-04-211-1/+8
|
* Fix some assertions that could occur when an error was earlier logged.Brian2007-04-161-4/+19
|
* undo a debug/test changeBrian2007-04-091-1/+1
|
* always emit BGN/ENDSUB, for now anywayBrian2007-03-311-4/+1
|
* cond code fixBrian2007-03-281-1/+6
|
* fix cond code swizzle bugBrian2007-03-281-0/+5
|
* optimization for the emit_not() functionBrian2007-03-281-3/+28
|
* remove IR_BREAK_IF_FALSEBrian2007-03-281-41/+13
|
* Get rid of IR_CONT_IF_FALSEBrian2007-03-281-5/+1
|
* Don't emit OPCODE_CONT0/1, BRK0/1 instructions, clean-ups elsewhere.Brian2007-03-281-49/+66
|
* added some null ptr checks to handle error recoveryBrian2007-03-281-2/+15
|
* Use constant_to_src_reg() to simplify some codeBrian2007-03-281-19/+24
|
* Fix, clean-up code related to comparisons, condition codes, etc.Brian2007-03-281-47/+78
|
* Implement true CAL/RET subroutines. Some optimizations, clean-ups coming...Brian2007-03-271-17/+154
|
* Checkpoint: implementing true CAL/RET instructions for subroutine calls.Brian2007-03-261-13/+60
| | | | | | Also, found/fixed a code generation regression: the emit_swizzle() function was always returning NULL. This caused emit_move() to miss its chance at peephole optimization.
* Get rid of IR_JUMP and related code.Brian2007-03-261-20/+1
|
* Get rid of SLANG_OPER_GOTO, start rewrite of 'return' handling.Brian2007-03-261-1/+18
|
* remove debug abort() callsBrian2007-03-261-1/+0
|
* Additional error checking for 'return' statements.Brian2007-03-261-3/+4
|
* undo some debugging hacksBrian2007-03-261-2/+2
|
* Fix a few issues with computing storage sizes with respect to swizzles.Brian2007-03-261-39/+26
|
* remove incorrect assertionsBrian2007-03-261-2/+0
|
* move some code into new slang_ir.c fileBrian2007-03-241-314/+1
|
* Fix issues related to the 'continue' statement.Brian2007-03-231-12/+67
| | | | | | | | IR_LOOP now has two children: the body code, and the tail code. Tail code is the "i++" part of a for-loop, or the expression at the end of a "do {} while(expr);" loop. "continue" translates into: "execute tail code; CONT;" Also, the test for infinite do/while loops was incorrect.
* Add the ability to generate programs that doesn't use condition codes.Brian2007-03-231-37/+86
| | | | | | | ctx->Shader.EmitCondCodes determines if we use condition codes. If not, IF statement uses first operand's X component as the condition. Added OPCODE_BRK0, OPCODE_BRK1, OPCODE_CONT0, OPCODE_CONT1 to handle the common cases of conditional break/continue.
* updated commentBrian2007-03-231-1/+1
|
* Overhaul emit_compare() function.Brian2007-03-221-27/+129
| | | | | | | | Previously, comparing vec2, vec3, vec4 was broken. Added IR_EQUAL, IR_NOTEQUAL nodes/operators to compute boolean equality/inequality vs. IR_SEQUAL/IR_SNEQUAL which work component-wise. Use IR_EQUAL/IR_NOTEQUAL for the == and != operators. To compute vec4 equality, use SNE, DP4, SEQ instruction sequence.
* First pass at implementing structure compares.Brian2007-03-221-9/+28
| | | | | Need to improve this. There may be holes in a structure so we can't just blindly compare the full 4-float registers.
* Support for user-defined structures.Brian2007-03-211-7/+65
| | | | struct == and != operators not finished yet. Struct assignment works though.
* remove old assertionBrian2007-03-141-1/+0
|
* disable some debug outputBrian2007-03-131-1/+1
|
* Shuffle some code around in the emit_tex() and emit_move() instructions.Brian2007-03-131-9/+16
| | | | | | | Note that the inst ptr returned by new_instruction() may become invalid after calling emit_() since the emit functions may allocate new instructions which is done vial realloc(). Also, add some new assertions to try to catch this kind of bug.
* add NULL ptr check in emit_cond()Brian2007-03-101-2/+6
|
* Added IR_SLE and IR_SLT for <= and < operations.Brian2007-03-081-0/+4
| | | | | | Using IR_SGE and IR_SGT with transposed args doesn't work since the __asm calls don't do argument matching by name, but by position. This fixes the broken lessThan() and lessThanEqual() functions.
* fix tmp storage problem for IR_I_TO_FBrian2007-03-081-0/+4
|
* fix assertionBrian2007-03-081-1/+1
|
* IR_CJUMP0/1 no longer used/neededBrian2007-03-081-34/+1
|
* remove old assertionBrian2007-03-081-1/+0
|
* remove unneeded return stmtBrian2007-03-071-1/+0
|
* Fix problem with nested function calls such as y = f(f(x))Brian2007-03-071-0/+4
| | | | Replace CurFunction with curFuncEndLabel.
* fix some int arithmetic problemsBrian2007-03-061-3/+7
|