Replace the SubRegSet tablegen class with a less error-prone mechanism.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 26 May 2010 17:27:12 +0000 (17:27 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 26 May 2010 17:27:12 +0000 (17:27 +0000)
commitca561ffcf320e9dbfafcac5efcee81471f3259c3
tree4f981f60d7df5e4438c803fb06447d66c4c599a0
parent90346e2261a1788a1e353c6b8e7e1818a3fd37c9
Replace the SubRegSet tablegen class with a less error-prone mechanism.

A Register with subregisters must also provide SubRegIndices for adressing the
subregisters. TableGen automatically inherits indices for sub-subregisters to
minimize typing.

CompositeIndices may be specified for the weirder cases such as the XMM sub_sd
index that returns the same register, and ARM NEON Q registers where both D
subregs have ssub_0 and ssub_1 sub-subregs.

It is now required that all subregisters are named by an index, and a future
patch will also require inherited subregisters to be named. This is necessary to
allow composite subregister indices to be reduced to a single index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104704 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/Target.td
lib/Target/ARM/ARMRegisterInfo.td
lib/Target/Blackfin/BlackfinRegisterInfo.td
lib/Target/MBlaze/MBlazeRegisterInfo.td
lib/Target/MSP430/MSP430RegisterInfo.td
lib/Target/Mips/MipsRegisterInfo.td
lib/Target/PowerPC/PPCRegisterInfo.td
lib/Target/Sparc/SparcRegisterInfo.td
lib/Target/SystemZ/SystemZRegisterInfo.td
lib/Target/X86/X86RegisterInfo.td
utils/TableGen/RegisterInfoEmitter.cpp