diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2010-08-17 15:50:23 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2010-08-17 15:50:23 +0000 |
commit | 73c32f60c41f5078d5b460e3e7c23e40ab7e3e55 (patch) | |
tree | d1b1d58b2f1b7d03496b9a00780179e516cb17c0 /include | |
parent | 6ccd0da0fe0186380c7ad9aa50128d3d3ab09794 (diff) | |
download | llvm-73c32f60c41f5078d5b460e3e7c23e40ab7e3e55.tar.gz llvm-73c32f60c41f5078d5b460e3e7c23e40ab7e3e55.tar.bz2 llvm-73c32f60c41f5078d5b460e3e7c23e40ab7e3e55.tar.xz |
Revert r111230, we have to find a better place for the host-specific code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111232 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/MC/MCObjectWriter.h | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/include/llvm/MC/MCObjectWriter.h b/include/llvm/MC/MCObjectWriter.h index da55a0c0a0..22eea7e022 100644 --- a/include/llvm/MC/MCObjectWriter.h +++ b/include/llvm/MC/MCObjectWriter.h @@ -10,10 +10,8 @@ #ifndef LLVM_MC_MCOBJECTWRITER_H #define LLVM_MC_MCOBJECTWRITER_H -#include "llvm/Support/MathExtras.h" #include "llvm/Support/raw_ostream.h" #include "llvm/System/DataTypes.h" -#include "llvm/System/Host.h" #include <cassert> namespace llvm { @@ -94,57 +92,54 @@ public: } void WriteLE16(uint16_t Value) { - if (sys::isBigEndianHost()) - Value = ByteSwap_16(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + Write8(uint8_t(Value >> 0)); + Write8(uint8_t(Value >> 8)); } void WriteLE32(uint32_t Value) { - if (sys::isBigEndianHost()) - Value = ByteSwap_32(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + WriteLE16(uint16_t(Value >> 0)); + WriteLE16(uint16_t(Value >> 16)); } void WriteLE64(uint64_t Value) { - if (sys::isBigEndianHost()) - Value = ByteSwap_64(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + WriteLE32(uint32_t(Value >> 0)); + WriteLE32(uint32_t(Value >> 32)); } void WriteBE16(uint16_t Value) { - if (sys::isLittleEndianHost()) - Value = ByteSwap_16(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + Write8(uint8_t(Value >> 8)); + Write8(uint8_t(Value >> 0)); } void WriteBE32(uint32_t Value) { - if (sys::isLittleEndianHost()) - Value = ByteSwap_32(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + WriteBE16(uint16_t(Value >> 16)); + WriteBE16(uint16_t(Value >> 0)); } void WriteBE64(uint64_t Value) { - if (sys::isLittleEndianHost()) - Value = ByteSwap_64(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + WriteBE32(uint32_t(Value >> 32)); + WriteBE32(uint32_t(Value >> 0)); } void Write16(uint16_t Value) { - if (IsLittleEndian != sys::isLittleEndianHost()) - Value = ByteSwap_16(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + if (IsLittleEndian) + WriteLE16(Value); + else + WriteBE16(Value); } void Write32(uint32_t Value) { - if (IsLittleEndian != sys::isLittleEndianHost()) - Value = ByteSwap_32(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + if (IsLittleEndian) + WriteLE32(Value); + else + WriteBE32(Value); } void Write64(uint64_t Value) { - if (IsLittleEndian != sys::isLittleEndianHost()) - Value = ByteSwap_64(Value); - OS << StringRef((const char*)&Value, sizeof(Value)); + if (IsLittleEndian) + WriteLE64(Value); + else + WriteBE64(Value); } void WriteZeros(unsigned N) { |