mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-21 10:26:06 +03:00
Fixes #6590 The ASM block that implements the read-uint32-unaligned returns a uint32_t. The old code was doing a cast like `(float)(uint32_t ret) which actually goes and creates a new float of the positive uint value (approx, of course due to exponent and sign bits) which is not correct. C and C++ don't have a concise way to convert the bits in a register from int to float interpretation, so avoid the whole issue by making a new function which uses the same ASM block as the read-uint32-unaligned, just make the destination and return values as floats.