aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
diff options
context:
space:
mode:
authorDan Gohman <dev@sunfishcode.online>2021-02-04 18:01:38 -0800
committerDan Gohman <dev@sunfishcode.online>2021-02-04 18:05:06 -0800
commit698c6b0a099b902722d9e89234e0205ac240c13e (patch)
treea730a6958d83704500995a5c5cf8eb28d47cb6fb /llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
parent4cb7d034816ce6eb5086959bcd0703b3edeb4fa7 (diff)
downloadllvm-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.cpp2
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)));
}