diff options
-rw-r--r-- | llvm/lib/Target/ARM/ARMSubtarget.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMSubtarget.h | 10 |
2 files changed, 12 insertions, 13 deletions
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.cpp b/llvm/lib/Target/ARM/ARMSubtarget.cpp index 96daca8067d..ef78cd52d85 100644 --- a/llvm/lib/Target/ARM/ARMSubtarget.cpp +++ b/llvm/lib/Target/ARM/ARMSubtarget.cpp @@ -20,7 +20,8 @@ ARMSubtarget::ARMSubtarget(const Module &M, const std::string &FS, bool isThumb) : ARMArchVersion(V4T) , ARMFPUType(None) - , ThumbMode((isThumb ? Thumb1 : ThumbNone)) + , IsThumb(isThumb) + , ThumbMode(Thumb1) , UseThumbBacktraces(false) , IsR9Reserved(false) , stackAlignment(4) @@ -41,22 +42,18 @@ ARMSubtarget::ARMSubtarget(const Module &M, const std::string &FS, if (Len >= 5 && TT.substr(0, 4) == "armv") Idx = 4; else if (Len >= 6 && TT.substr(0, 6) == "thumb") { - isThumb = true; + IsThumb = true; if (Len >= 7 && TT[5] == 'v') Idx = 6; } if (Idx) { unsigned SubVer = TT[Idx]; if (SubVer > '4' && SubVer <= '9') { - if (SubVer >= '7') { + if (SubVer >= '7') ARMArchVersion = V7A; - if (isThumb) - ThumbMode = Thumb2; - } else if (SubVer == '6') { + else if (SubVer == '6') ARMArchVersion = V6; - if (isThumb && Len >= Idx+3 && TT[Idx+1] == 't' && TT[Idx+2] == '2') - ThumbMode = Thumb2; - } else if (SubVer == '5') { + else if (SubVer == '5') { ARMArchVersion = V5T; if (Len >= Idx+3 && TT[Idx+1] == 't' && TT[Idx+2] == 'e') ARMArchVersion = V5TE; diff --git a/llvm/lib/Target/ARM/ARMSubtarget.h b/llvm/lib/Target/ARM/ARMSubtarget.h index 370817d59c7..8b469cff77d 100644 --- a/llvm/lib/Target/ARM/ARMSubtarget.h +++ b/llvm/lib/Target/ARM/ARMSubtarget.h @@ -31,7 +31,6 @@ protected: }; enum ThumbTypeEnum { - ThumbNone, Thumb1, Thumb2 }; @@ -43,7 +42,10 @@ protected: /// ARMFPUType - Floating Point Unit type. ARMFPEnum ARMFPUType; - /// ThumbMode - ARM if in ARM mode, otherwise indicates Thumb version. + /// IsThumb - True if we are in thumb mode, false if in ARM mode. + bool IsThumb; + + /// ThumbMode - Indicates supported Thumb version. ThumbTypeEnum ThumbMode; /// UseThumbBacktraces - True if we use thumb style backtraces. @@ -102,8 +104,8 @@ protected: bool isAPCS_ABI() const { return TargetABI == ARM_ABI_APCS; } bool isAAPCS_ABI() const { return TargetABI == ARM_ABI_AAPCS; } - bool isThumb() const { return ThumbMode >= Thumb1; } - bool isThumb2() const { return ThumbMode >= Thumb2; } + bool isThumb() const { return IsThumb; } + bool isThumb2() const { return IsThumb && (ThumbMode >= Thumb2); } bool useThumbBacktraces() const { return UseThumbBacktraces; } bool isR9Reserved() const { return IsR9Reserved; } |