freedreno: gallium driver for adreno

Currently works on a220.  Others in the a2xx family look pretty similar
and should be pretty straightforward to support with the same driver.

The a3xx has a new shader ISA, and while many registers appear similar,
the register addresses have been completely shuffled around.  I am not
sure yet whether it is best to support with the same driver, but
different compiler, or whether it should be split into a different
driver.

v1: original
v2: build file updates from review comments, and remove GPL licensed
    header files from msm kernel

Signed-off-by: Rob Clark <robclark@freedesktop.org>
freedreno: smarter temp/pred register assignment

Don't always burn a register slot for predicate register, even when it
is not needed.  And be a bit more clever about internal temporary
register assignment because some TGSI instructions which are still
to-be-implemented will need multiple temporaries.

Signed-off-by: Rob Clark <robdclark@gmail.com>
freedreno: add LRP instruction

Signed-off-by: Rob Clark <robdclark@gmail.com>