diff options
author | Dan Gohman <dev@sunfishcode.online> | 2021-02-04 18:01:38 -0800 |
---|---|---|
committer | Dan Gohman <dev@sunfishcode.online> | 2021-02-04 18:05:06 -0800 |
commit | 698c6b0a099b902722d9e89234e0205ac240c13e (patch) | |
tree | a730a6958d83704500995a5c5cf8eb28d47cb6fb /llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp | |
parent | 4cb7d034816ce6eb5086959bcd0703b3edeb4fa7 (diff) | |
download | llvm-698c6b0a099b902722d9e89234e0205ac240c13e.zip llvm-698c6b0a099b902722d9e89234e0205ac240c13e.tar.gz llvm-698c6b0a099b902722d9e89234e0205ac240c13e.tar.bz2 |
[WebAssembly] Support single-floating-point immediate value
As mentioned in TODO comment, casting double to float causes NaNs to change bits.
To avoid the change, this patch adds support for single-floating-point immediate value on MachineCode.
Patch by Yuta Saito.
Differential Revision: https://reviews.llvm.org/D77384
Diffstat (limited to 'llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp b/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp index 1b7cc09..f252256 100644 --- a/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp +++ b/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp @@ -114,7 +114,7 @@ bool parseImmediate(MCInst &MI, uint64_t &Size, ArrayRef<uint8_t> Bytes) { Bytes.data() + Size); Size += sizeof(T); if (std::is_floating_point<T>::value) { - MI.addOperand(MCOperand::createFPImm(static_cast<double>(Val))); + MI.addOperand(MCOperand::createDFPImm(static_cast<double>(Val))); } else { MI.addOperand(MCOperand::createImm(static_cast<int64_t>(Val))); } |