diff options
Diffstat (limited to 'apps/plugins/lib/fixedpoint.h')
| -rw-r--r-- | apps/plugins/lib/fixedpoint.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/plugins/lib/fixedpoint.h b/apps/plugins/lib/fixedpoint.h index 7199157..a9650e7 100644 --- a/apps/plugins/lib/fixedpoint.h +++ b/apps/plugins/lib/fixedpoint.h @@ -24,3 +24,11 @@ long fsqrt(long a, unsigned int fracbits); long cos_int(int val); long sin_int(int val); long flog(int x); + +/* fast unsigned multiplication (16x16bit->32bit or 32x32bit->32bit, + * whichever is faster for the architecture) */ +#ifdef CPU_ARM +#define FMULU(a, b) ((uint32_t) (((uint32_t) (a)) * ((uint32_t) (b)))) +#else /* SH1, coldfire */ +#define FMULU(a, b) ((uint32_t) (((uint16_t) (a)) * ((uint16_t) (b)))) +#endif |