summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorAnton Korobeynikov <anton@korobeynikov.info>2018-11-08 10:17:52 +0000
committerAnton Korobeynikov <anton@korobeynikov.info>2018-11-08 10:17:52 +0000
commit5eb3d339d3a433194f174457f7fe5adc5709c7f5 (patch)
tree2a4db925fd6562c533b3332084c9ee8154df9f4b /llvm/lib
parent7b88bab386dba08796a86862a8c943f18c72fa49 (diff)
downloadbcm5719-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.cpp7
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;
}
}
OpenPOWER on IntegriCloud