diff options
| author | Anton Korobeynikov <anton@korobeynikov.info> | 2018-11-08 10:17:52 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <anton@korobeynikov.info> | 2018-11-08 10:17:52 +0000 |
| commit | 5eb3d339d3a433194f174457f7fe5adc5709c7f5 (patch) | |
| tree | 2a4db925fd6562c533b3332084c9ee8154df9f4b /llvm/lib | |
| parent | 7b88bab386dba08796a86862a8c943f18c72fa49 (diff) | |
| download | bcm5719-llvm-5eb3d339d3a433194f174457f7fe5adc5709c7f5.tar.gz bcm5719-llvm-5eb3d339d3a433194f174457f7fe5adc5709c7f5.zip | |
[MSP430] Fix encodeInstruction() for big endian hosts
Reviewers: asl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D54251
llvm-svn: 346391
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp b/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp index ba9f7d7a9a5..adf2384f6e9 100644 --- a/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp +++ b/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp @@ -91,12 +91,11 @@ void MSP430MCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS, Offset = 2; uint64_t BinaryOpCode = getBinaryCodeForInstr(MI, Fixups, STI); - const uint16_t *Words = reinterpret_cast<uint16_t const *>(&BinaryOpCode); size_t WordCount = Size / 2; - for (size_t i = 0; i < WordCount; ++i) { - uint16_t Word = Words[i]; - support::endian::write(OS, Word, support::little); + while (WordCount--) { + support::endian::write(OS, (uint16_t)BinaryOpCode, support::little); + BinaryOpCode >>= 16; } } |

