[lld] r210979 - Using llvm::sys::swapByteOrder() for the common case of byte-swapping a value in place
Artyom Skrobov
Artyom.Skrobov at arm.com
Sat Jun 14 06:26:14 PDT 2014
Author: askrobov
Date: Sat Jun 14 08:26:14 2014
New Revision: 210979
URL: http://llvm.org/viewvc/llvm-project?rev=210979&view=rev
Log:
Using llvm::sys::swapByteOrder() for the common case of byte-swapping a value in place
Modified:
lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h
Modified: lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp?rev=210979&r1=210978&r2=210979&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp (original)
+++ lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp Sat Jun 14 08:26:14 2014
@@ -107,7 +107,7 @@ appendIndirectSymbols(IndirectSymbols &i
template <typename T> static T readBigEndian(T t) {
if (llvm::sys::IsLittleEndianHost)
- return llvm::sys::getSwappedBytes(t);
+ llvm::sys::swapByteOrder(t);
return t;
}
@@ -223,8 +223,9 @@ readBinary(std::unique_ptr<MemoryBuffer>
if (cmd == LC_SEGMENT_64) {
const segment_command_64 *seg =
reinterpret_cast<const segment_command_64*>(lc);
- const unsigned sectionCount = (swap ? llvm::sys::getSwappedBytes(seg->nsects)
- : seg->nsects);
+ const unsigned sectionCount = (swap
+ ? llvm::sys::getSwappedBytes(seg->nsects)
+ : seg->nsects);
const section_64 *sects = reinterpret_cast<const section_64*>
(lc + sizeof(segment_command_64));
const unsigned lcSize = sizeof(segment_command_64)
@@ -265,8 +266,9 @@ readBinary(std::unique_ptr<MemoryBuffer>
if (cmd == LC_SEGMENT) {
const segment_command *seg =
reinterpret_cast<const segment_command*>(lc);
- const unsigned sectionCount = (swap ? llvm::sys::getSwappedBytes(seg->nsects)
- : seg->nsects);
+ const unsigned sectionCount = (swap
+ ? llvm::sys::getSwappedBytes(seg->nsects)
+ : seg->nsects);
const section *sects = reinterpret_cast<const section*>
(lc + sizeof(segment_command));
const unsigned lcSize = sizeof(segment_command)
Modified: lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h?rev=210979&r1=210978&r2=210979&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h (original)
+++ lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h Sat Jun 14 08:26:14 2014
@@ -25,158 +25,159 @@ namespace lld {
namespace mach_o {
namespace normalized {
+using llvm::sys::swapByteOrder;
using llvm::sys::getSwappedBytes;
inline void swapStruct(llvm::MachO::mach_header &mh) {
- mh.magic = getSwappedBytes(mh.magic);
- mh.cputype = getSwappedBytes(mh.cputype);
- mh.cpusubtype = getSwappedBytes(mh.cpusubtype);
- mh.filetype = getSwappedBytes(mh.filetype);
- mh.ncmds = getSwappedBytes(mh.ncmds);
- mh.sizeofcmds = getSwappedBytes(mh.sizeofcmds);
- mh.flags = getSwappedBytes(mh.flags);
+ swapByteOrder(mh.magic);
+ swapByteOrder(mh.cputype);
+ swapByteOrder(mh.cpusubtype);
+ swapByteOrder(mh.filetype);
+ swapByteOrder(mh.ncmds);
+ swapByteOrder(mh.sizeofcmds);
+ swapByteOrder(mh.flags);
}
inline void swapStruct(llvm::MachO::load_command &lc) {
- lc.cmd = getSwappedBytes(lc.cmd);
- lc.cmdsize = getSwappedBytes(lc.cmdsize);
+ swapByteOrder(lc.cmd);
+ swapByteOrder(lc.cmdsize);
}
inline void swapStruct(llvm::MachO::symtab_command &lc) {
- lc.cmd = getSwappedBytes(lc.cmd);
- lc.cmdsize = getSwappedBytes(lc.cmdsize);
- lc.symoff = getSwappedBytes(lc.symoff);
- lc.nsyms = getSwappedBytes(lc.nsyms);
- lc.stroff = getSwappedBytes(lc.stroff);
- lc.strsize = getSwappedBytes(lc.strsize);
+ swapByteOrder(lc.cmd);
+ swapByteOrder(lc.cmdsize);
+ swapByteOrder(lc.symoff);
+ swapByteOrder(lc.nsyms);
+ swapByteOrder(lc.stroff);
+ swapByteOrder(lc.strsize);
}
inline void swapStruct(llvm::MachO::segment_command_64 &seg) {
- seg.cmd = getSwappedBytes(seg.cmd);
- seg.cmdsize = getSwappedBytes(seg.cmdsize);
- seg.vmaddr = getSwappedBytes(seg.vmaddr);
- seg.vmsize = getSwappedBytes(seg.vmsize);
- seg.fileoff = getSwappedBytes(seg.fileoff);
- seg.filesize = getSwappedBytes(seg.filesize);
- seg.maxprot = getSwappedBytes(seg.maxprot);
- seg.initprot = getSwappedBytes(seg.initprot);
- seg.nsects = getSwappedBytes(seg.nsects);
- seg.flags = getSwappedBytes(seg.flags);
+ swapByteOrder(seg.cmd);
+ swapByteOrder(seg.cmdsize);
+ swapByteOrder(seg.vmaddr);
+ swapByteOrder(seg.vmsize);
+ swapByteOrder(seg.fileoff);
+ swapByteOrder(seg.filesize);
+ swapByteOrder(seg.maxprot);
+ swapByteOrder(seg.initprot);
+ swapByteOrder(seg.nsects);
+ swapByteOrder(seg.flags);
}
inline void swapStruct(llvm::MachO::segment_command &seg) {
- seg.cmd = getSwappedBytes(seg.cmd);
- seg.cmdsize = getSwappedBytes(seg.cmdsize);
- seg.vmaddr = getSwappedBytes(seg.vmaddr);
- seg.vmsize = getSwappedBytes(seg.vmsize);
- seg.fileoff = getSwappedBytes(seg.fileoff);
- seg.filesize = getSwappedBytes(seg.filesize);
- seg.maxprot = getSwappedBytes(seg.maxprot);
- seg.initprot = getSwappedBytes(seg.initprot);
- seg.nsects = getSwappedBytes(seg.nsects);
- seg.flags = getSwappedBytes(seg.flags);
+ swapByteOrder(seg.cmd);
+ swapByteOrder(seg.cmdsize);
+ swapByteOrder(seg.vmaddr);
+ swapByteOrder(seg.vmsize);
+ swapByteOrder(seg.fileoff);
+ swapByteOrder(seg.filesize);
+ swapByteOrder(seg.maxprot);
+ swapByteOrder(seg.initprot);
+ swapByteOrder(seg.nsects);
+ swapByteOrder(seg.flags);
}
inline void swapStruct(llvm::MachO::section_64 §) {
- sect.addr = getSwappedBytes(sect.addr);
- sect.size = getSwappedBytes(sect.size);
- sect.offset = getSwappedBytes(sect.offset);
- sect.align = getSwappedBytes(sect.align);
- sect.reloff = getSwappedBytes(sect.reloff);
- sect.nreloc = getSwappedBytes(sect.nreloc);
- sect.flags = getSwappedBytes(sect.flags);
- sect.reserved1 = getSwappedBytes(sect.reserved1);
- sect.reserved2 = getSwappedBytes(sect.reserved2);
+ swapByteOrder(sect.addr);
+ swapByteOrder(sect.size);
+ swapByteOrder(sect.offset);
+ swapByteOrder(sect.align);
+ swapByteOrder(sect.reloff);
+ swapByteOrder(sect.nreloc);
+ swapByteOrder(sect.flags);
+ swapByteOrder(sect.reserved1);
+ swapByteOrder(sect.reserved2);
}
inline void swapStruct(llvm::MachO::section §) {
- sect.addr = getSwappedBytes(sect.addr);
- sect.size = getSwappedBytes(sect.size);
- sect.offset = getSwappedBytes(sect.offset);
- sect.align = getSwappedBytes(sect.align);
- sect.reloff = getSwappedBytes(sect.reloff);
- sect.nreloc = getSwappedBytes(sect.nreloc);
- sect.flags = getSwappedBytes(sect.flags);
- sect.reserved1 = getSwappedBytes(sect.reserved1);
- sect.reserved2 = getSwappedBytes(sect.reserved2);
+ swapByteOrder(sect.addr);
+ swapByteOrder(sect.size);
+ swapByteOrder(sect.offset);
+ swapByteOrder(sect.align);
+ swapByteOrder(sect.reloff);
+ swapByteOrder(sect.nreloc);
+ swapByteOrder(sect.flags);
+ swapByteOrder(sect.reserved1);
+ swapByteOrder(sect.reserved2);
}
inline void swapStruct(llvm::MachO::dyld_info_command &info) {
- info.cmd = getSwappedBytes(info.cmd);
- info.cmdsize = getSwappedBytes(info.cmdsize);
- info.rebase_off = getSwappedBytes(info.rebase_off);
- info.rebase_size = getSwappedBytes(info.rebase_size);
- info.bind_off = getSwappedBytes(info.bind_off);
- info.bind_size = getSwappedBytes(info.bind_size);
- info.weak_bind_off = getSwappedBytes(info.weak_bind_off);
- info.weak_bind_size = getSwappedBytes(info.weak_bind_size);
- info.lazy_bind_off = getSwappedBytes(info.lazy_bind_off);
- info.lazy_bind_size = getSwappedBytes(info.lazy_bind_size);
- info.export_off = getSwappedBytes(info.export_off);
- info.export_size = getSwappedBytes(info.export_size);
+ swapByteOrder(info.cmd);
+ swapByteOrder(info.cmdsize);
+ swapByteOrder(info.rebase_off);
+ swapByteOrder(info.rebase_size);
+ swapByteOrder(info.bind_off);
+ swapByteOrder(info.bind_size);
+ swapByteOrder(info.weak_bind_off);
+ swapByteOrder(info.weak_bind_size);
+ swapByteOrder(info.lazy_bind_off);
+ swapByteOrder(info.lazy_bind_size);
+ swapByteOrder(info.export_off);
+ swapByteOrder(info.export_size);
}
inline void swapStruct(llvm::MachO::dylib_command &d) {
- d.cmd = getSwappedBytes(d.cmd);
- d.cmdsize = getSwappedBytes(d.cmdsize);
- d.dylib.name = getSwappedBytes(d.dylib.name);
- d.dylib.timestamp = getSwappedBytes(d.dylib.timestamp);
- d.dylib.current_version = getSwappedBytes(d.dylib.current_version);
- d.dylib.compatibility_version = getSwappedBytes(d.dylib.compatibility_version);
+ swapByteOrder(d.cmd);
+ swapByteOrder(d.cmdsize);
+ swapByteOrder(d.dylib.name);
+ swapByteOrder(d.dylib.timestamp);
+ swapByteOrder(d.dylib.current_version);
+ swapByteOrder(d.dylib.compatibility_version);
}
inline void swapStruct(llvm::MachO::dylinker_command &d) {
- d.cmd = getSwappedBytes(d.cmd);
- d.cmdsize = getSwappedBytes(d.cmdsize);
- d.name = getSwappedBytes(d.name);
+ swapByteOrder(d.cmd);
+ swapByteOrder(d.cmdsize);
+ swapByteOrder(d.name);
}
inline void swapStruct(llvm::MachO::entry_point_command &e) {
- e.cmd = getSwappedBytes(e.cmd);
- e.cmdsize = getSwappedBytes(e.cmdsize);
- e.entryoff = getSwappedBytes(e.entryoff);
- e.stacksize = getSwappedBytes(e.stacksize);
+ swapByteOrder(e.cmd);
+ swapByteOrder(e.cmdsize);
+ swapByteOrder(e.entryoff);
+ swapByteOrder(e.stacksize);
}
inline void swapStruct(llvm::MachO::dysymtab_command &dst) {
- dst.cmd = getSwappedBytes(dst.cmd);
- dst.cmdsize = getSwappedBytes(dst.cmdsize);
- dst.ilocalsym = getSwappedBytes(dst.ilocalsym);
- dst.nlocalsym = getSwappedBytes(dst.nlocalsym);
- dst.iextdefsym = getSwappedBytes(dst.iextdefsym);
- dst.nextdefsym = getSwappedBytes(dst.nextdefsym);
- dst.iundefsym = getSwappedBytes(dst.iundefsym);
- dst.nundefsym = getSwappedBytes(dst.nundefsym);
- dst.tocoff = getSwappedBytes(dst.tocoff);
- dst.ntoc = getSwappedBytes(dst.ntoc);
- dst.modtaboff = getSwappedBytes(dst.modtaboff);
- dst.nmodtab = getSwappedBytes(dst.nmodtab);
- dst.extrefsymoff = getSwappedBytes(dst.extrefsymoff);
- dst.nextrefsyms = getSwappedBytes(dst.nextrefsyms);
- dst.indirectsymoff = getSwappedBytes(dst.indirectsymoff);
- dst.nindirectsyms = getSwappedBytes(dst.nindirectsyms);
- dst.extreloff = getSwappedBytes(dst.extreloff);
- dst.nextrel = getSwappedBytes(dst.nextrel);
- dst.locreloff = getSwappedBytes(dst.locreloff);
- dst.nlocrel = getSwappedBytes(dst.nlocrel);
+ swapByteOrder(dst.cmd);
+ swapByteOrder(dst.cmdsize);
+ swapByteOrder(dst.ilocalsym);
+ swapByteOrder(dst.nlocalsym);
+ swapByteOrder(dst.iextdefsym);
+ swapByteOrder(dst.nextdefsym);
+ swapByteOrder(dst.iundefsym);
+ swapByteOrder(dst.nundefsym);
+ swapByteOrder(dst.tocoff);
+ swapByteOrder(dst.ntoc);
+ swapByteOrder(dst.modtaboff);
+ swapByteOrder(dst.nmodtab);
+ swapByteOrder(dst.extrefsymoff);
+ swapByteOrder(dst.nextrefsyms);
+ swapByteOrder(dst.indirectsymoff);
+ swapByteOrder(dst.nindirectsyms);
+ swapByteOrder(dst.extreloff);
+ swapByteOrder(dst.nextrel);
+ swapByteOrder(dst.locreloff);
+ swapByteOrder(dst.nlocrel);
}
inline void swapStruct(llvm::MachO::any_relocation_info &reloc) {
- reloc.r_word0 = getSwappedBytes(reloc.r_word0);
- reloc.r_word1 = getSwappedBytes(reloc.r_word1);
+ swapByteOrder(reloc.r_word0);
+ swapByteOrder(reloc.r_word1);
}
inline void swapStruct(llvm::MachO::nlist &sym) {
- sym.n_strx = getSwappedBytes(sym.n_strx);
- sym.n_desc = getSwappedBytes(sym.n_desc);
- sym.n_value = getSwappedBytes(sym.n_value);
+ swapByteOrder(sym.n_strx);
+ swapByteOrder(sym.n_desc);
+ swapByteOrder(sym.n_value);
}
inline void swapStruct(llvm::MachO::nlist_64 &sym) {
- sym.n_strx = getSwappedBytes(sym.n_strx);
- sym.n_desc = getSwappedBytes(sym.n_desc);
- sym.n_value = getSwappedBytes(sym.n_value);
+ swapByteOrder(sym.n_strx);
+ swapByteOrder(sym.n_desc);
+ swapByteOrder(sym.n_value);
}
More information about the llvm-commits
mailing list