From 714cb68dd324e8f989de9ebcd71ed3a28a499caa Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Tue, 26 Mar 2024 15:54:08 +0000 Subject: [PATCH] PNGdec: Force REGISTER_WIDTH to 32. --- libraries/pngdec/inffast.c | 12 ++++++++++-- libraries/pngdec/pngdec.cmake | 4 ++++ micropython/modules/pngdec/micropython.cmake | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/libraries/pngdec/inffast.c b/libraries/pngdec/inffast.c index 2f71cab0..fd9aad88 100644 --- a/libraries/pngdec/inffast.c +++ b/libraries/pngdec/inffast.c @@ -12,15 +12,23 @@ #define ALLOWS_UNALIGNED #endif +#ifndef REGISTER_WIDTH #if INTPTR_MAX == INT64_MAX #define REGISTER_WIDTH 64 +#else +#define REGISTER_WIDTH 32 +#endif // native register size +#endif + +#if REGISTER_WIDTH == 64 +#pragma message("REGISTER_WIDTH: 64bit") typedef uint64_t BIGUINT; typedef uint32_t SMALLUINT; #else -#define REGISTER_WIDTH 32 +#pragma message("REGISTER_WIDTH: 32bit") typedef uint32_t BIGUINT; typedef uint16_t SMALLUINT; -#endif // native register size +#endif #ifdef ASMINF # pragma message("Assembler code may have bugs -- use at your own risk") diff --git a/libraries/pngdec/pngdec.cmake b/libraries/pngdec/pngdec.cmake index 79b39983..a3d5cf2d 100644 --- a/libraries/pngdec/pngdec.cmake +++ b/libraries/pngdec/pngdec.cmake @@ -11,6 +11,10 @@ add_library(pngdec set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/PNGDEC.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=unused-function") +target_compile_definitions(pngdec PRIVATE + REGISTER_WIDTH=32 +) + target_include_directories(pngdec INTERFACE ${CMAKE_CURRENT_LIST_DIR}) target_link_libraries(pngdec pico_stdlib) \ No newline at end of file diff --git a/micropython/modules/pngdec/micropython.cmake b/micropython/modules/pngdec/micropython.cmake index b1b8b0ff..524a09db 100644 --- a/micropython/modules/pngdec/micropython.cmake +++ b/micropython/modules/pngdec/micropython.cmake @@ -21,6 +21,7 @@ target_include_directories(usermod_pngdec INTERFACE ) target_compile_definitions(usermod_pngdec INTERFACE + REGISTER_WIDTH=32 MODULE_PNGDEC_ENABLED=1 )