mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
llvm/lib/Support/TargetParser.cpp: Rework llvm::ARM::getArchExtFeature() to avoid abuse of Twine in r253470.
llvm-svn: 253566
This commit is contained in:
parent
7d466a8b34
commit
eb19f391e2
@ -87,7 +87,6 @@ static const struct {
|
||||
const char *NegFeature;
|
||||
|
||||
StringRef getName() const { return StringRef(NameCStr, NameLength); }
|
||||
StringRef getNegName() const { return (Twine("no") + getName()).str(); }
|
||||
} ARCHExtNames[] = {
|
||||
#define ARM_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE) \
|
||||
{ NAME, sizeof(NAME) - 1, ID, FEATURE, NEGFEATURE },
|
||||
@ -332,11 +331,16 @@ StringRef llvm::ARM::getArchExtName(unsigned ArchExtKind) {
|
||||
}
|
||||
|
||||
const char *llvm::ARM::getArchExtFeature(StringRef ArchExt) {
|
||||
if (ArchExt.substr(0, 2) == "no") {
|
||||
StringRef ArchExtBase(ArchExt.substr(2));
|
||||
for (const auto AE : ARCHExtNames) {
|
||||
if (AE.NegFeature && ArchExtBase == AE.getName())
|
||||
return AE.NegFeature;
|
||||
}
|
||||
}
|
||||
for (const auto AE : ARCHExtNames) {
|
||||
if (AE.Feature && ArchExt == AE.getName())
|
||||
return AE.Feature;
|
||||
else if (AE.NegFeature && ArchExt == AE.getNegName())
|
||||
return AE.NegFeature;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user