diff options
| author | Sebastian Pop <spop@codeaurora.org> | 2012-08-20 19:56:47 +0000 |
|---|---|---|
| committer | Sebastian Pop <spop@codeaurora.org> | 2012-08-20 19:56:47 +0000 |
| commit | 1a0bef6d4bf76c53a4af888dfdfa040181c88e7e (patch) | |
| tree | 6aef67d9637f7f0c697634214d67ee164b25c1e9 /llvm/lib/Target | |
| parent | 2b10f3f8a98ab5869aa395ffcf348baf11bc9d59 (diff) | |
| download | bcm5719-llvm-1a0bef6d4bf76c53a4af888dfdfa040181c88e7e.tar.gz bcm5719-llvm-1a0bef6d4bf76c53a4af888dfdfa040181c88e7e.zip | |
fix HexagonSubtarget parsing of -mv flag
llvm-svn: 162217
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonSubtarget.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp b/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp index 5d087db1bdb..4bacb8fa670 100644 --- a/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp +++ b/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp @@ -40,28 +40,27 @@ EnableIEEERndNear( HexagonSubtarget::HexagonSubtarget(StringRef TT, StringRef CPU, StringRef FS): HexagonGenSubtargetInfo(TT, CPU, FS), - HexagonArchVersion(V2), CPUString(CPU.str()) { - ParseSubtargetFeatures(CPU, FS); - switch(HexagonArchVersion) { - case HexagonSubtarget::V2: - break; - case HexagonSubtarget::V3: - EnableV3 = true; - break; - case HexagonSubtarget::V4: - break; - case HexagonSubtarget::V5: - break; - default: - // If the programmer has not specified a Hexagon version, default - // to -mv4. + // If the programmer has not specified a Hexagon version, default to -mv4. + if (CPUString.empty()) CPUString = "hexagonv4"; - HexagonArchVersion = HexagonSubtarget::V4; - break; + + if (CPUString == "hexagonv2") { + HexagonArchVersion = V2; + } else if (CPUString == "hexagonv3") { + EnableV3 = true; + HexagonArchVersion = V3; + } else if (CPUString == "hexagonv4") { + HexagonArchVersion = V4; + } else if (CPUString == "hexagonv5") { + HexagonArchVersion = V5; + } else { + llvm_unreachable("Unrecognized Hexagon processor version"); } + ParseSubtargetFeatures(CPUString, FS); + // Initialize scheduling itinerary for the specified CPU. InstrItins = getInstrItineraryForCPU(CPUString); |

