diff options
author | Tim Northover <tnorthover@apple.com> | 2015-10-28 22:36:05 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2015-10-28 22:36:05 +0000 |
commit | 2d4d1615197efeb044f62d6a8721704839cd5337 (patch) | |
tree | 80c103f916b365a001660bd021d2130c367b34b9 /llvm/include | |
parent | 748b3ffe3b8d83e2405e41c572cc19bc9f211053 (diff) | |
download | bcm5719-llvm-2d4d1615197efeb044f62d6a8721704839cd5337.tar.gz bcm5719-llvm-2d4d1615197efeb044f62d6a8721704839cd5337.zip |
ARM: support .watchos_version_min and .tvos_version_min.
These MachO file directives are used by linkers and other tools to provide
compatibility information, much like the existing .ios_version_min and
.macosx_version_min.
llvm-svn: 251569
Diffstat (limited to 'llvm/include')
-rw-r--r-- | llvm/include/llvm/ADT/Triple.h | 25 | ||||
-rw-r--r-- | llvm/include/llvm/MC/MCDirectives.h | 4 | ||||
-rw-r--r-- | llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h | 3 | ||||
-rw-r--r-- | llvm/include/llvm/Support/ARMTargetParser.def | 1 | ||||
-rw-r--r-- | llvm/include/llvm/Support/MachO.h | 4 |
5 files changed, 31 insertions, 6 deletions
diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h index 5f3742c8998..4ed694cfa99 100644 --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -99,6 +99,7 @@ public: ARMSubArch_v7em, ARMSubArch_v7m, ARMSubArch_v7s, + ARMSubArch_v7k, ARMSubArch_v6, ARMSubArch_v6m, ARMSubArch_v6k, @@ -156,7 +157,9 @@ public: AMDHSA, // AMD HSA Runtime PS4, ELFIAMCU, - LastOSType = ELFIAMCU + TvOS, // Apple tvOS + WatchOS, // Apple watchOS + LastOSType = WatchOS }; enum EnvironmentType { UnknownEnvironment, @@ -401,13 +404,27 @@ public: } /// Is this an iOS triple. + /// Note: This identifies tvOS as a variant of iOS. If that ever + /// changes, i.e., if the two operating systems diverge or their version + /// numbers get out of sync, that will need to be changed. + /// watchOS has completely different version numbers so it is not included. bool isiOS() const { - return getOS() == Triple::IOS; + return getOS() == Triple::IOS || isTvOS(); } - /// isOSDarwin - Is this a "Darwin" OS (OS X or iOS). + /// Is this an Apple tvOS triple. + bool isTvOS() const { + return getOS() == Triple::TvOS; + } + + /// Is this an Apple watchOS triple. + bool isWatchOS() const { + return getOS() == Triple::WatchOS; + } + + /// isOSDarwin - Is this a "Darwin" OS (OS X, iOS, or watchOS). bool isOSDarwin() const { - return isMacOSX() || isiOS(); + return isMacOSX() || isiOS() || isWatchOS(); } bool isOSNetBSD() const { diff --git a/llvm/include/llvm/MC/MCDirectives.h b/llvm/include/llvm/MC/MCDirectives.h index f9d66e0b15d..326b2a1ac06 100644 --- a/llvm/include/llvm/MC/MCDirectives.h +++ b/llvm/include/llvm/MC/MCDirectives.h @@ -62,7 +62,9 @@ enum MCDataRegionType { enum MCVersionMinType { MCVM_IOSVersionMin, ///< .ios_version_min - MCVM_OSXVersionMin ///< .macosx_version_min + MCVM_OSXVersionMin, ///< .macosx_version_min + MCVM_TvOSVersionMin, ///< .tvos_version_min + MCVM_WatchOSVersionMin, ///< .watchos_version_min }; } // end namespace llvm diff --git a/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h b/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h index 077fd21e073..30b25dcfdae 100644 --- a/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h +++ b/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h @@ -71,6 +71,9 @@ public: bool Error(SMLoc L, const Twine &Msg) { return getParser().Error(L, Msg); } + void Note(SMLoc L, const Twine &Msg) { + getParser().Note(L, Msg); + } bool TokError(const Twine &Msg) { return getParser().TokError(Msg); } diff --git a/llvm/include/llvm/Support/ARMTargetParser.def b/llvm/include/llvm/Support/ARMTargetParser.def index 39979d01fd6..523a5edfcae 100644 --- a/llvm/include/llvm/Support/ARMTargetParser.def +++ b/llvm/include/llvm/Support/ARMTargetParser.def @@ -241,6 +241,7 @@ ARM_CPU_NAME("cortex-a8", AK_ARMV7HL, FK_NEON, true, AEK_SEC) ARM_CPU_NAME("cortex-m4", AK_ARMV7EM, FK_NONE, true, AEK_NONE) ARM_CPU_NAME("swift", AK_ARMV7S, FK_NEON_VFPV4, true, (AEK_HWDIVARM | AEK_HWDIV)) +ARM_CPU_NAME("cortex-a7", AK_ARMV7K, FK_NONE, true, AEK_HWDIVARM | AEK_HWDIV) // Invalid CPU ARM_CPU_NAME("invalid", AK_INVALID, FK_INVALID, true, AEK_INVALID) #undef ARM_CPU_NAME diff --git a/llvm/include/llvm/Support/MachO.h b/llvm/include/llvm/Support/MachO.h index 0428198cce6..54b8745de1c 100644 --- a/llvm/include/llvm/Support/MachO.h +++ b/llvm/include/llvm/Support/MachO.h @@ -132,7 +132,9 @@ namespace llvm { LC_DYLIB_CODE_SIGN_DRS = 0x0000002Bu, LC_ENCRYPTION_INFO_64 = 0x0000002Cu, LC_LINKER_OPTION = 0x0000002Du, - LC_LINKER_OPTIMIZATION_HINT = 0x0000002Eu + LC_LINKER_OPTIMIZATION_HINT = 0x0000002Eu, + LC_VERSION_MIN_TVOS = 0x0000002Fu, + LC_VERSION_MIN_WATCHOS = 0x00000030u, }; enum : uint32_t { |