R600/SI: Re-initialize the m0 register after using it for indirect addressing
authorTom Stellard <thomas.stellard@amd.com>
Tue, 17 Jun 2014 16:53:04 +0000 (16:53 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Tue, 17 Jun 2014 16:53:04 +0000 (16:53 +0000)
commit41bfd7846bbcb84b184da0fc3d21a7103df4e2af
treeeb2556691b83bfa4cf3edb6e86e2202cac8eea74
parent1d5ff6bb7a4e4ed38351188ba4b2b7d6e0ae3c71
R600/SI: Re-initialize the m0 register after using it for indirect addressing

We need to store a value greater than or equal to the number of LDS
bytes allocated by the shader in the m0 register in order for LDS
instructions to work correctly.

We always initialize m0 at the beginning of a shader, but this register
is also used for indirect addressing offsets, so we need to
re-initialize it any time we use indirect addressing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211107 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/SILowerControlFlow.cpp