freedreno/a3xx: add blend state

Signed-off-by: Rob Clark <robclark@freedesktop.org>
freedreno/a3xx: fix const/rel/const-rel encoding

The encoding of constant, relative, and relative-const src registers is
a bit more complex than originally thought, which gives an extra bit to
encode const reg # at expense of taking a bit from relative offset.

In most cases a3xx seems to actually use a scheme whereby it can encode
an extra bit for const register.  You have three possible encodings in
thirteen bits:

   register:  (11 bits for N.c)
     00........... rN.c

   relative:  (10 bits for N)
     010.......... r<a0.x + N>
     011.......... c<a0.x + N>

   const:     (12 bits for N.c)
     1............ cN.c

Which means we can deal w/ more consts than previously thought.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
freedreno/a3xx/compiler: relative addressing

Signed-off-by: Rob Clark <robclark@freedesktop.org>