]> granicus.if.org Git - llvm/commit
R600/SI: Emit s_mov_b32 m0, -1 before every DS instruction
authorTom Stellard <thomas.stellard@amd.com>
Fri, 21 Nov 2014 22:31:44 +0000 (22:31 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Fri, 21 Nov 2014 22:31:44 +0000 (22:31 +0000)
commit573630a020fedfc4195a41db8d7203e20c89ba8f
treee3e316ce495a68a1a1da82ea6db12ae37f3d11a3
parentedcd88ce1a3d64d220e8de8cfd8ce9ca33970753
R600/SI: Emit s_mov_b32 m0, -1 before every DS instruction

This s_mov_b32 will write to a virtual register from the M0Reg
class and all the ds instructions now take an extra M0Reg explicit
argument.

This change is necessary to prevent issues with the scheduler
mixing together instructions that expect different values in the m0
registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222583 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/SIISelLowering.cpp
lib/Target/R600/SIInstrFormats.td
lib/Target/R600/SIInstrInfo.td
lib/Target/R600/SIInstructions.td
lib/Target/R600/SILoadStoreOptimizer.cpp
lib/Target/R600/SILowerControlFlow.cpp
test/CodeGen/R600/shl_add_ptr.ll