[mips] Store 64-bit `li.d' operand as a single 8-byte value
authorSimon Atanasyan <simon@atanasyan.com>
Fri, 11 Oct 2019 21:51:33 +0000 (21:51 +0000)
committerSimon Atanasyan <simon@atanasyan.com>
Fri, 11 Oct 2019 21:51:33 +0000 (21:51 +0000)
commit66048fed828987eff8db73bdbe878b06ee941338
tree621310a637faf3030c2feffe4d7fc15b97815764
parent5ebe3511b35d41b9364be62a28966e279fc568b0
[mips] Store 64-bit `li.d' operand as a single 8-byte value

Now assembler generates two consecutive `.4byte` directives to store
64-bit `li.d' operand. The first directive stores high 4-byte of the
value. The second directive stores low 4-byte of the value. But on
64-bit system we load this value at once and get wrong result if the
system is little-endian.

This patch fixes the bug. It stores the `li.d' operand as a single
8-byte value.

Differential Revision: https://reviews.llvm.org/D68778

llvm-svn: 374598
llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
llvm/test/MC/Mips/macro-li.d.s