diff --git a/llvm/lib/MC/DXContainerPSVInfo.cpp b/llvm/lib/MC/DXContainerPSVInfo.cpp --- a/llvm/lib/MC/DXContainerPSVInfo.cpp +++ b/llvm/lib/MC/DXContainerPSVInfo.cpp @@ -8,6 +8,7 @@ #include "llvm/MC/DXContainerPSVInfo.h" #include "llvm/BinaryFormat/DXContainer.h" +#include "llvm/Support/EndianStream.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; @@ -31,24 +32,16 @@ InfoSize = sizeof(dxbc::PSV::v2::RuntimeInfo); BindingSize = sizeof(dxbc::PSV::v2::ResourceBindInfo); } - uint32_t InfoSizeSwapped = InfoSize; - if (sys::IsBigEndianHost) - sys::swapByteOrder(InfoSizeSwapped); // Write the size of the info. - OS.write(reinterpret_cast(&InfoSizeSwapped), sizeof(uint32_t)); + + support::endian::write(OS, InfoSize, support::little); // Write the info itself. OS.write(reinterpret_cast(&BaseData), InfoSize); uint32_t ResourceCount = static_cast(Resources.size()); - uint32_t BindingSizeSwapped = BindingSize; - if (sys::IsBigEndianHost) { - sys::swapByteOrder(ResourceCount); - sys::swapByteOrder(BindingSizeSwapped); - } - OS.write(reinterpret_cast(&ResourceCount), sizeof(uint32_t)); - OS.write(reinterpret_cast(&BindingSizeSwapped), - sizeof(uint32_t)); + support::endian::write(OS, ResourceCount, support::little); + support::endian::write(OS, BindingSize, support::little); for (const auto &Res : Resources) OS.write(reinterpret_cast(&Res), BindingSize);