NV fp parser: Support instruction and TEMP / OUTPUT sizes
authorIan Romanick <ian.d.romanick@intel.com>
Sat, 5 Sep 2009 00:27:27 +0000 (17:27 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Sat, 5 Sep 2009 00:31:05 +0000 (17:31 -0700)
commitd0adebb8d5ef680590b0f281a20516318c0b8b62
tree57ca66f2b1144e7080189de37e80250faa964f79
parent9ea4319744fb7474635cb1994e1babe1552d4d4f
NV fp parser: Support instruction and TEMP / OUTPUT sizes

Adds support for declaring TEMP and OUTPUT variables as 'LONG' or
'SHORT' precision.  The precision specifiers are parsed, but they are
currently ignored.  Some support for this may be added in the future,
but neither Intel hardware nor, as far as I'm aware, Radeon hardware
support multiple precisions.

Also adds support for instruction precision ('X', 'H', and 'R')
suffixes and instruction condition code output ('C') suffix.  This
results in a fairly major change to the lexer.  Instructions are
matched with all the possible suffix strings.  The suffix string are
then carved off by a context (i.e., which program mode and options are
set) aware parser that converts the suffixes to bits in
prog_instruction.

This could have been handled in the same way _SAT was originally
handled in the lexer, but it would have resulted in a very large lexer
with lots of opportunity for cut-and-paste errors.
src/mesa/shader/lex.yy.c
src/mesa/shader/program_lexer.l
src/mesa/shader/program_parse.tab.c
src/mesa/shader/program_parse.y
src/mesa/shader/program_parse_extra.c
src/mesa/shader/program_parser.h