Skip to content

Commit e5269da

Browse files
committed
[ARM][WebAssembly] Fix incorrect MCOperand::createDFPImm after D96091
1 parent 6b280ce commit e5269da

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

llvm/lib/Target/ARM/ARMMCInstLower.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ bool ARMAsmPrinter::lowerOperand(const MachineOperand &MO,
110110
APFloat Val = MO.getFPImm()->getValueAPF();
111111
bool ignored;
112112
Val.convert(APFloat::IEEEdouble(), APFloat::rmTowardZero, &ignored);
113-
MCOp = MCOperand::createDFPImm(Val.convertToDouble());
113+
MCOp = MCOperand::createDFPImm(bit_cast<uint64_t>(Val.convertToDouble()));
114114
break;
115115
}
116116
case MachineOperand::MO_RegisterMask:

llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ bool parseImmediate(MCInst &MI, uint64_t &Size, ArrayRef<uint8_t> Bytes) {
114114
Bytes.data() + Size);
115115
Size += sizeof(T);
116116
if (std::is_floating_point<T>::value) {
117-
MI.addOperand(MCOperand::createDFPImm(static_cast<double>(Val)));
117+
MI.addOperand(
118+
MCOperand::createDFPImm(bit_cast<uint64_t>(static_cast<double>(Val))));
118119
} else {
119120
MI.addOperand(MCOperand::createImm(static_cast<int64_t>(Val)));
120121
}

0 commit comments

Comments
 (0)