From 90d1726693a8d8b48cd4ba8308d2ef22772d394e Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 24 Sep 2014 01:33:23 +0000 Subject: [PATCH] R600/SI: Mark EXEC_LO and EXEC_HI as reserved These registers can be allocated and used like other 32-bit registers, but it seems like a likely source for bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218350 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/R600/SIRegisterInfo.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/Target/R600/SIRegisterInfo.cpp b/lib/Target/R600/SIRegisterInfo.cpp index e443deb7ea9..f5307f88038 100644 --- a/lib/Target/R600/SIRegisterInfo.cpp +++ b/lib/Target/R600/SIRegisterInfo.cpp @@ -32,6 +32,12 @@ SIRegisterInfo::SIRegisterInfo(const AMDGPUSubtarget &st) BitVector SIRegisterInfo::getReservedRegs(const MachineFunction &MF) const { BitVector Reserved(getNumRegs()); Reserved.set(AMDGPU::EXEC); + + // EXEC_LO and EXEC_HI could be allocated and used as regular register, + // but this seems likely to result in bugs, so I'm marking them as reserved. + Reserved.set(AMDGPU::EXEC_LO); + Reserved.set(AMDGPU::EXEC_HI); + Reserved.set(AMDGPU::INDIRECT_BASE_ADDR); Reserved.set(AMDGPU::FLAT_SCR); -- 2.34.1