summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2012-03-21 00:52:01 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2012-03-21 00:52:01 +0000
commit0137dfe42a5e268ac9634e6e760d0dac3f0b637a (patch)
treef7a619214f64fcc7beb387571a1749a6edb306eb /llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
parentf21bfcf805327f0be6ef31a08e244a23bebe3071 (diff)
downloadbcm5719-llvm-0137dfe42a5e268ac9634e6e760d0dac3f0b637a.tar.gz
bcm5719-llvm-0137dfe42a5e268ac9634e6e760d0dac3f0b637a.zip
Incremental big endian patch by Jack Carter.
These changes allow us to compile big endian from the command line for 32 bit Mips targets. This patch will result in code and data actually being produced in the correct endianess. llvm-svn: 153153
Diffstat (limited to 'llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp')
-rw-r--r--llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
index b0396781750..9ebb6d25690 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
@@ -49,9 +49,9 @@ public:
void EmitInstruction(uint64_t Val, unsigned Size, raw_ostream &OS) const {
// Output the instruction encoding in little endian byte order.
- for (unsigned i = 0; i != Size; ++i) {
- EmitByte(Val & 255, OS);
- Val >>= 8;
+ for (unsigned i = 0; i < Size; ++i) {
+ unsigned Shift = IsLittleEndian ? i * 8 : (Size - 1 - i) * 8;
+ EmitByte((Val >> Shift) & 0xff, OS);
}
}
OpenPOWER on IntegriCloud