diff options
Diffstat (limited to 'apps/plugins/lib/gray.h')
| -rw-r--r-- | apps/plugins/lib/gray.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/apps/plugins/lib/gray.h b/apps/plugins/lib/gray.h index 460aa83..7080894 100644 --- a/apps/plugins/lib/gray.h +++ b/apps/plugins/lib/gray.h @@ -113,9 +113,13 @@ void gray_ub_scroll_down(int count); #define _GRAY_RUNNING 0x0001 /* greyscale overlay is running */ #define _GRAY_DEFERRED_UPDATE 0x0002 /* lcd_update() requested */ -/* unsigned 16 bit multiplication (a single instruction on the SH) */ -#define MULU16(a, b) ((unsigned long) \ - (((unsigned short) (a)) * ((unsigned short) (b)))) +/* fast unsigned multiplication (16x16bit->32bit or 32x32bit->32bit, + * whichever is faster for the architecture) */ +#ifdef CPU_ARM +#define _GRAY_MULUQ(a, b) ((uint32_t) (((uint32_t) (a)) * ((uint32_t) (b)))) +#else +#define _GRAY_MULUQ(a, b) ((uint32_t) (((uint16_t) (a)) * ((uint16_t) (b)))) +#endif /* The grayscale buffer management structure */ struct _gray_info |