glsl: Implemented most of the missing srcmods.
Reread the GLSL spec, and it turns out that "vec3(x,y,z) - 3.0" is legal
syntactic sugar: the compiler knows to subtract 3.0 from each of the three
components in that vec3. This made this simpler than having to tapdance to
generate correct constant vectors ourselves, and it's easier to read.
#!/bin/sh
# !!! FIXME: use this to correct our estimates some day.
for feh in shaders/??_?_?/*.bytecode ; do
DISASM=`echo $feh |perl -w -p -e 's/bytecode\Z/disasm/;'`
MINE=`./cmake-build/testparse d3d $feh |grep "INSTRUCTION COUNT: " |perl -w -p -e 's/\AINSTRUCTION COUNT: //;'`
THEIRS=`grep "instruction slots used" $DISASM |perl -w -p -e 's#\A// approximately (\d+) instruction slots used .*?\Z#$1#;'`
if [ "x$MINE" != "x$THEIRS" ]; then
echo "$feh $MINE vs. $THEIRS"
fi
done