i965: Add a new infrastructure for generating Broadwell shader assembly.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 7 Dec 2012 06:36:50 +0000 (22:36 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Sun, 19 Jan 2014 05:55:54 +0000 (21:55 -0800)
commitf8035ba0363a8726fcd95ae761fbd31b3d5b41d4
tree6b9c6d0927514a8d0fc0a9a1a072e18f66cb8012
parent8ea4b16eea05cddc0c0057d8ff7e84f97a9361f8
i965: Add a new infrastructure for generating Broadwell shader assembly.

This replaces the brw_eu_emit.c layer for Broadwell.  It will be
used by both the vector and scalar shader backends.

v2: Port to use the C-based instruction representation.

v3: Fix destination register type for CMP.

v4: Pass brw to gen8_instruction functions (required by rebase).

v5: Remove bogus assertion on math instructions (caught by Piglit).

v6: Remove more restrictions on math instructions (caught by Eric).
    Make ADDC and SUBB helpers set accumulator writes, like MAC and
    MACH (caught by Matt).

v7: Don't implicitly force ALU3 operations to SIMD8 (we've been able
    to do SIMD16 versions since Haswell, but didn't when I originally
    wrote this code).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/Makefile.sources
src/mesa/drivers/dri/i965/gen8_generator.cpp [new file with mode: 0644]
src/mesa/drivers/dri/i965/gen8_generator.h [new file with mode: 0644]