i965: Mad hacks to avoid using MRFs on Ivybridge.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 9 Apr 2011 07:32:46 +0000 (00:32 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 18 May 2011 06:33:00 +0000 (23:33 -0700)
commit482e8a6cd59292c58b11a9282632aaa9b24f44ae
tree8971eb2baf63f0281731881c2f628c4727727c21
parent550ad737f77cfae9abf2db1638711713ad9d920e
i965: Mad hacks to avoid using MRFs on Ivybridge.

Ivybridge's SEND instruction uses GRFs instead of MRFs.  Unfortunately,
a lot of our code explicitly uses MRFs, and rewriting it would take a
fair bit of effort.  In the meantime, use a hack:

- Change brw_set_dest, brw_set_src0, and brw_set_src1 to implicitly
  convert any MRFs into the top 16 GRFs.
- Enable gen6_resolve_implied_move on Ivybridge: Moving g0 to m0
  actually moves it to g111 thanks to the previous hack.

It remains to officially reserve these registers so the allocator
doesn't try to reuse them.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_eu_emit.c