[llvm] r245938 - [MachO] Introduce MinVersion API.
Davide Italiano via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 25 08:02:24 PDT 2015
Author: davide
Date: Tue Aug 25 10:02:23 2015
New Revision: 245938
URL: http://llvm.org/viewvc/llvm-project?rev=245938&view=rev
Log:
[MachO] Introduce MinVersion API.
While introducing support for MinVersionLoadCommand in llvm-readobj I noticed there's
no API to extract Major/Minor/Update components conveniently. Currently consumers
do the bit twiddling on their own, but this will change from now on.
I'll convert llvm-objdump (and llvm-readobj) in a later commit.
Differential Revision: http://reviews.llvm.org/D12282
Reviewed by: rafael
Modified:
llvm/trunk/include/llvm/Object/MachO.h
llvm/trunk/lib/Object/MachOObjectFile.cpp
Modified: llvm/trunk/include/llvm/Object/MachO.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/MachO.h?rev=245938&r1=245937&r2=245938&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Object/MachO.h (original)
+++ llvm/trunk/include/llvm/Object/MachO.h Tue Aug 25 10:02:23 2015
@@ -344,6 +344,12 @@ public:
getLinkerOptionLoadCommand(const LoadCommandInfo &L) const;
MachO::version_min_command
getVersionMinLoadCommand(const LoadCommandInfo &L) const;
+ static uint32_t
+ getVersionMinMajor(MachO::version_min_command &C, bool SDK);
+ static uint32_t
+ getVersionMinMinor(MachO::version_min_command &C, bool SDK);
+ static uint32_t
+ getVersionMinUpdate(MachO::version_min_command &C, bool SDK);
MachO::dylib_command
getDylibIDLoadCommand(const LoadCommandInfo &L) const;
MachO::dyld_info_command
Modified: llvm/trunk/lib/Object/MachOObjectFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/MachOObjectFile.cpp?rev=245938&r1=245937&r2=245938&view=diff
==============================================================================
--- llvm/trunk/lib/Object/MachOObjectFile.cpp (original)
+++ llvm/trunk/lib/Object/MachOObjectFile.cpp Tue Aug 25 10:02:23 2015
@@ -2001,6 +2001,24 @@ MachOObjectFile::getVersionMinLoadComman
return getStruct<MachO::version_min_command>(this, L.Ptr);
}
+uint32_t
+MachOObjectFile::getVersionMinMajor(MachO::version_min_command &C, bool SDK) {
+ uint32_t VersionOrSDK = (SDK) ? C.sdk : C.version;
+ return (VersionOrSDK >> 16) & 0xffff;
+}
+
+uint32_t
+MachOObjectFile::getVersionMinMinor(MachO::version_min_command &C, bool SDK) {
+ uint32_t VersionOrSDK = (SDK) ? C.sdk : C.version;
+ return (VersionOrSDK >> 8) & 0xff;
+}
+
+uint32_t
+MachOObjectFile::getVersionMinUpdate(MachO::version_min_command &C, bool SDK) {
+ uint32_t VersionOrSDK = (SDK) ? C.sdk : C.version;
+ return VersionOrSDK & 0xff;
+}
+
MachO::dylib_command
MachOObjectFile::getDylibIDLoadCommand(const LoadCommandInfo &L) const {
return getStruct<MachO::dylib_command>(this, L.Ptr);
More information about the llvm-commits
mailing list