diff options
| author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2008-07-30 17:01:06 +0000 |
|---|---|---|
| committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2008-07-30 17:01:06 +0000 |
| commit | f714e25f7e380dc8ec82a09367e736d5a5ba9196 (patch) | |
| tree | cd734f779f27489887ec659e76db572616bc7b88 /llvm/lib/Target/Mips/MipsSubtarget.h | |
| parent | 89e2b163fbaecfc550b63e787871719626f8eb08 (diff) | |
| download | bcm5719-llvm-f714e25f7e380dc8ec82a09367e736d5a5ba9196.tar.gz bcm5719-llvm-f714e25f7e380dc8ec82a09367e736d5a5ba9196.zip | |
Added new features to represent specific instructions groups
llvm-svn: 54213
Diffstat (limited to 'llvm/lib/Target/Mips/MipsSubtarget.h')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsSubtarget.h | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/llvm/lib/Target/Mips/MipsSubtarget.h b/llvm/lib/Target/Mips/MipsSubtarget.h index c3a03e3bcda..656199a69ac 100644 --- a/llvm/lib/Target/Mips/MipsSubtarget.h +++ b/llvm/lib/Target/Mips/MipsSubtarget.h @@ -58,9 +58,6 @@ protected: // HasVFPU - Processor has a vector floating point unit. bool HasVFPU; - // HasSEInReg - Target has SEB and SEH (signext in register) instructions. - bool HasSEInReg; - // IsABICall - Enable SRV4 code for SVR4-style dynamic objects bool HasABICall; @@ -75,6 +72,27 @@ protected: // bytes into the small data or bss section. The default is 8. unsigned SSectionThreshold; + /// Features related to the presence of specific instructions. + + // HasSEInReg - SEB and SEH (signext in register) instructions. + bool HasSEInReg; + + // HasCondMov - Conditional mov (MOVZ, MOVN) instructions. + bool HasCondMov; + + // HasMulDivAdd - Multiply add and sub (MADD, MADDu, MSUB, MSUBu) + // instructions. + bool HasMulDivAdd; + + // HasMinMax - MIN and MAX instructions. + bool HasMinMax; + + // HasSwap - Byte and half swap instructions. + bool HasSwap; + + // HasBitCount - Count leading '1' and '0' bits. + bool HasBitCount; + InstrItineraryData InstrItins; public: @@ -102,12 +120,18 @@ public: bool isSingleFloat() const { return IsSingleFloat; }; bool isNotSingleFloat() const { return !IsSingleFloat; }; bool hasVFPU() const { return HasVFPU; }; - bool hasSEInReg() const { return HasSEInReg; }; bool hasABICall() const { return HasABICall; }; bool hasAbsoluteCall() const { return HasAbsoluteCall; }; bool isLinux() const { return IsLinux; }; unsigned getSSectionThreshold() const { return SSectionThreshold; } + /// Features related to the presence of specific instructions. + bool hasSEInReg() const { return HasSEInReg; }; + bool hasCondMov() const { return HasCondMov; }; + bool hasMulDivAdd() const { return HasMulDivAdd; }; + bool hasMinMax() const { return HasMinMax; }; + bool hasSwap() const { return HasSwap; }; + bool hasBitCount() const { return HasBitCount; }; }; } // End llvm namespace |

