diff options
author | Chris Bieneman <beanz@apple.com> | 2016-06-22 22:19:08 +0000 |
---|---|---|
committer | Chris Bieneman <beanz@apple.com> | 2016-06-22 22:19:08 +0000 |
commit | 8e783eb75771e1dfd5336b891cf8f1264a575f9a (patch) | |
tree | 5c403325a5539c9bdbbef710d77ece0e04ac34ee /llvm/lib/Object/MachOUniversal.cpp | |
parent | e57bf680ec117a98093c1a0094bcbcabf8d31947 (diff) | |
download | bcm5719-llvm-8e783eb75771e1dfd5336b891cf8f1264a575f9a.tar.gz bcm5719-llvm-8e783eb75771e1dfd5336b891cf8f1264a575f9a.zip |
[MachO] Finish moving fat header swap functions to MachO.h
This is a follow-up to r273479. At the time I wrote r273479 I didn't connect the dots that the functions I was adding had to exist somewhere. Turns out, they do. This finishes moving the functions to MachO.h.
Existing MachO fat header tests like test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386 execute this code.
llvm-svn: 273502
Diffstat (limited to 'llvm/lib/Object/MachOUniversal.cpp')
-rw-r--r-- | llvm/lib/Object/MachOUniversal.cpp | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/llvm/lib/Object/MachOUniversal.cpp b/llvm/lib/Object/MachOUniversal.cpp index 8ccf4de50e0..b3b0c251c10 100644 --- a/llvm/lib/Object/MachOUniversal.cpp +++ b/llvm/lib/Object/MachOUniversal.cpp @@ -23,40 +23,12 @@ using namespace llvm; using namespace object; template<typename T> -static void SwapStruct(T &Value); - -template<> -void SwapStruct(MachO::fat_header &H) { - sys::swapByteOrder(H.magic); - sys::swapByteOrder(H.nfat_arch); -} - -template<> -void SwapStruct(MachO::fat_arch &H) { - sys::swapByteOrder(H.cputype); - sys::swapByteOrder(H.cpusubtype); - sys::swapByteOrder(H.offset); - sys::swapByteOrder(H.size); - sys::swapByteOrder(H.align); -} - -template<> -void SwapStruct(MachO::fat_arch_64 &H) { - sys::swapByteOrder(H.cputype); - sys::swapByteOrder(H.cpusubtype); - sys::swapByteOrder(H.offset); - sys::swapByteOrder(H.size); - sys::swapByteOrder(H.align); - sys::swapByteOrder(H.reserved); -} - -template<typename T> static T getUniversalBinaryStruct(const char *Ptr) { T Res; memcpy(&Res, Ptr, sizeof(T)); // Universal binary headers have big-endian byte order. if (sys::IsLittleEndianHost) - SwapStruct(Res); + swapStruct(Res); return Res; } |