[llvm] e5269da - [ARM][WebAssembly] Fix incorrect MCOperand::createDFPImm after D96091
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 4 20:40:00 PST 2021
Author: Fangrui Song
Date: 2021-02-04T20:39:52-08:00
New Revision: e5269da9794f90727510fb51c8d225008a407cc4
URL: https://github.com/llvm/llvm-project/commit/e5269da9794f90727510fb51c8d225008a407cc4
DIFF: https://github.com/llvm/llvm-project/commit/e5269da9794f90727510fb51c8d225008a407cc4.diff
LOG: [ARM][WebAssembly] Fix incorrect MCOperand::createDFPImm after D96091
Added:
Modified:
llvm/lib/Target/ARM/ARMMCInstLower.cpp
llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/ARM/ARMMCInstLower.cpp b/llvm/lib/Target/ARM/ARMMCInstLower.cpp
index 2c12e188049f..e4b022968431 100644
--- a/llvm/lib/Target/ARM/ARMMCInstLower.cpp
+++ b/llvm/lib/Target/ARM/ARMMCInstLower.cpp
@@ -110,7 +110,7 @@ bool ARMAsmPrinter::lowerOperand(const MachineOperand &MO,
APFloat Val = MO.getFPImm()->getValueAPF();
bool ignored;
Val.convert(APFloat::IEEEdouble(), APFloat::rmTowardZero, &ignored);
- MCOp = MCOperand::createDFPImm(Val.convertToDouble());
+ MCOp = MCOperand::createDFPImm(bit_cast<uint64_t>(Val.convertToDouble()));
break;
}
case MachineOperand::MO_RegisterMask:
diff --git a/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp b/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
index f2522562e535..36ef46eb48b8 100644
--- a/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
+++ b/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
@@ -114,7 +114,8 @@ 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::createDFPImm(static_cast<double>(Val)));
+ MI.addOperand(
+ MCOperand::createDFPImm(bit_cast<uint64_t>(static_cast<double>(Val))));
} else {
MI.addOperand(MCOperand::createImm(static_cast<int64_t>(Val)));
}
More information about the llvm-commits
mailing list