diff options
author | Damien George <damien.p.george@gmail.com> | 2018-07-09 12:22:40 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2018-07-09 12:22:40 +1000 |
commit | 929d10acf759f3d4b87082cf9a422df2a83b8546 (patch) | |
tree | ee093725357863b81340e4fb37c67ea23666e132 | |
parent | 4a1edd83829d6d78ca5d172ad87e1f4a3802b483 (diff) |
tools/mpy-tool.py: Support freezing of floats in obj representation D.
-rwxr-xr-x | tools/mpy-tool.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/mpy-tool.py b/tools/mpy-tool.py index eeb760a5f..3077e0d38 100755 --- a/tools/mpy-tool.py +++ b/tools/mpy-tool.py @@ -347,8 +347,10 @@ class RawCode: n = struct.unpack('<I', struct.pack('<f', self.objs[i]))[0] n = ((n & ~0x3) | 2) + 0x80800000 print(' (mp_rom_obj_t)(0x%08x),' % (n,)) - print('#else') - print('#error "MICROPY_OBJ_REPR_D not supported with floats in frozen mpy files"') + print('#elif MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_D') + n = struct.unpack('<Q', struct.pack('<d', self.objs[i]))[0] + n += 0x8004000000000000 + print(' (mp_rom_obj_t)(0x%016x),' % (n,)) print('#endif') else: print(' MP_ROM_PTR(&const_obj_%s_%u),' % (self.escaped_name, i)) |