From 70459bef9ccd73b3a2a44fdd62f2509861112745 Mon Sep 17 00:00:00 2001 From: Anton Korobeynikov Date: Mon, 1 Jun 2009 20:00:48 +0000 Subject: [PATCH] Implement review feedback. Make thumb2 'normal' subtarget feature git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72698 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMSubtarget.cpp | 15 ++++++--------- lib/Target/ARM/ARMSubtarget.h | 10 ++++++---- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp index 96daca8067d..ef78cd52d85 100644 --- a/lib/Target/ARM/ARMSubtarget.cpp +++ b/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/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h index 370817d59c7..8b469cff77d 100644 --- a/lib/Target/ARM/ARMSubtarget.h +++ b/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; } -- 2.34.1