diff options
| author | JF Bastien <jfbastien@apple.com> | 2018-09-07 23:23:47 +0000 |
|---|---|---|
| committer | JF Bastien <jfbastien@apple.com> | 2018-09-07 23:23:47 +0000 |
| commit | 05430cc6e55ff3ec6e8f38960c54e9b593e3718c (patch) | |
| tree | e0ab4873f8261232b4958d191b414d5ccdfede07 /llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h | |
| parent | da4b63ab9afede44bb063adf26d5e9e5f14818c2 (diff) | |
| download | bcm5719-llvm-05430cc6e55ff3ec6e8f38960c54e9b593e3718c.tar.gz bcm5719-llvm-05430cc6e55ff3ec6e8f38960c54e9b593e3718c.zip | |
Revert "ADT: add <bit> header, implement C++20 bit_cast, use"
Bots sad. Looks like missing std::is_trivially_copyable.
llvm-svn: 341730
Diffstat (limited to 'llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h')
| -rw-r--r-- | llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h b/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h index e450d3f5d75..f472b215431 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h @@ -627,22 +627,27 @@ namespace ARM_AM { // inline float getFPImmFloat(unsigned Imm) { // We expect an 8-bit binary encoding of a floating-point number here. + union { + uint32_t I; + float F; + } FPUnion; uint8_t Sign = (Imm >> 7) & 0x1; uint8_t Exp = (Imm >> 4) & 0x7; uint8_t Mantissa = Imm & 0xf; - // 8-bit FP IEEE Float Encoding + // 8-bit FP iEEEE Float Encoding // abcd efgh aBbbbbbc defgh000 00000000 00000000 // // where B = NOT(b); - uint32_t I = 0; - I |= Sign << 31; - I |= ((Exp & 0x4) != 0 ? 0 : 1) << 30; - I |= ((Exp & 0x4) != 0 ? 0x1f : 0) << 25; - I |= (Exp & 0x3) << 23; - I |= Mantissa << 19; - return bit_cast<float>(F); + + FPUnion.I = 0; + FPUnion.I |= Sign << 31; + FPUnion.I |= ((Exp & 0x4) != 0 ? 0 : 1) << 30; + FPUnion.I |= ((Exp & 0x4) != 0 ? 0x1f : 0) << 25; + FPUnion.I |= (Exp & 0x3) << 23; + FPUnion.I |= Mantissa << 19; + return FPUnion.F; } /// getFP16Imm - Return an 8-bit floating-point version of the 16-bit |

