mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
[WebAssembly] Fixed Disassembler ignoring endian swap on big endian.
Summary: This fixes: https://bugs.llvm.org/show_bug.cgi?id=40620 Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57933 llvm-svn: 353496
This commit is contained in:
parent
ca954e59d7
commit
922e60889a
@ -108,9 +108,8 @@ template <typename T>
|
|||||||
bool parseImmediate(MCInst &MI, uint64_t &Size, ArrayRef<uint8_t> Bytes) {
|
bool parseImmediate(MCInst &MI, uint64_t &Size, ArrayRef<uint8_t> Bytes) {
|
||||||
if (Size + sizeof(T) > Bytes.size())
|
if (Size + sizeof(T) > Bytes.size())
|
||||||
return false;
|
return false;
|
||||||
T Val;
|
T Val = support::endian::read<T, support::endianness::little, alignof(T)>(
|
||||||
memcpy(&Val, Bytes.data() + Size, sizeof(T));
|
Bytes.data() + Size);
|
||||||
support::endian::byte_swap<T, support::endianness::little>(Val);
|
|
||||||
Size += sizeof(T);
|
Size += sizeof(T);
|
||||||
if (std::is_floating_point<T>::value) {
|
if (std::is_floating_point<T>::value) {
|
||||||
MI.addOperand(MCOperand::createFPImm(static_cast<double>(Val)));
|
MI.addOperand(MCOperand::createFPImm(static_cast<double>(Val)));
|
||||||
|
@ -33,9 +33,7 @@
|
|||||||
# CHECK: i64.trunc_sat_f64_u
|
# CHECK: i64.trunc_sat_f64_u
|
||||||
0xFC 0x07
|
0xFC 0x07
|
||||||
|
|
||||||
# FIXME Disabled temporarily due to failures in clang-ppc64be-linux and
|
# CHECK: v128.const 50462976, 117835012, 185207048, 252579084
|
||||||
# clang-s390x-linux bots
|
|
||||||
# C HECK: v128.const 50462976, 117835012, 185207048, 252579084
|
|
||||||
0xFD 0x02 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
|
0xFD 0x02 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
|
||||||
|
|
||||||
# CHECK: v8x16.shuffle 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
|
# CHECK: v8x16.shuffle 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
|
||||||
|
Loading…
Reference in New Issue
Block a user