60#if ((defined (_WIN32) && !defined (_WIN32_WCE)) || (defined (__WINS__) && defined (_SYMBIAN)) || (defined (WINCE_EMULATOR)) || (defined (_OPENWAVE_SIMULATOR))) && !defined(__aarch64__)
62#pragma warning( disable : 4035 )
64static __inline
int MULSHIFT32(
int x,
int y)
73static __inline
short CLIPTOSHORT(
int x)
79 if (
sign != (x >> 15))
80 x =
sign ^ ((1 << 15) - 1);
85static __inline
int FASTABS(
int x)
89 sign =
x >> (
sizeof(int) * 8 - 1);
96static __inline
int CLZ(
int x)
105 if (!((
unsigned int)x >> 16)) { numZeros += 16;
x <<= 16; }
106 if (!((
unsigned int)x >> 24)) { numZeros += 8;
x <<= 8; }
107 if (!((
unsigned int)x >> 28)) { numZeros += 4;
x <<= 4; }
108 if (!((
unsigned int)x >> 30)) { numZeros += 2;
x <<= 2; }
110 numZeros -= ((
unsigned int)x >> 31);
116typedef long long Word64;
118typedef __int64 Word64;
131static __inline Word64 MADD64(Word64 sum64,
int x,
int y)
133#if (defined (_SYMBIAN_61_) || defined (_SYMBIAN_70_)) && defined (__WINS__) && !defined (__CW32__)
139 add dword ptr sum64, eax
140 adc dword ptr sum64 + 4, edx
143 sum64 += (Word64)x * (Word64)
y;
152#elif defined (_WIN32) && defined (_WIN32_WCE) && defined (ARM)
154static __inline
short CLIPTOSHORT(
int x)
160 if (
sign != (x >> 15))
161 x =
sign ^ ((1 << 15) - 1);
166static __inline
int FASTABS(
int x)
170 sign =
x >> (
sizeof(int) * 8 - 1);
177static __inline
int CLZ(
int x)
186 if (!((
unsigned int)x >> 16)) { numZeros += 16;
x <<= 16; }
187 if (!((
unsigned int)x >> 24)) { numZeros += 8;
x <<= 8; }
188 if (!((
unsigned int)x >> 28)) { numZeros += 4;
x <<= 4; }
189 if (!((
unsigned int)x >> 30)) { numZeros += 2;
x <<= 2; }
191 numZeros -= ((
unsigned int)x >> 31);
201typedef __int64 Word64;
213#define MULSHIFT32 raac_MULSHIFT32
214#define MADD64 raac_MADD64
216int MULSHIFT32(
int x,
int y);
217Word64 MADD64(Word64 sum64,
int x,
int y);
226#elif defined (XXX__arm) && defined (__ARMCC_VERSION)
228static __inline
int MULSHIFT32(
int x,
int y)
243static __inline
short CLIPTOSHORT(
int x)
249 if (
sign != (x >> 15))
250 x =
sign ^ ((1 << 15) - 1);
255static __inline
int FASTABS(
int x)
259 sign =
x >> (
sizeof(int) * 8 - 1);
266static __inline
int CLZ(
int x)
275 if (!((
unsigned int)x >> 16)) { numZeros += 16;
x <<= 16; }
276 if (!((
unsigned int)x >> 24)) { numZeros += 8;
x <<= 8; }
277 if (!((
unsigned int)x >> 28)) { numZeros += 4;
x <<= 4; }
278 if (!((
unsigned int)x >> 30)) { numZeros += 2;
x <<= 2; }
280 numZeros -= ((
unsigned int)x >> 31);
313typedef __int64 Word64;
324static __inline Word64 MADD64(Word64 sum64,
int x,
int y)
330 smlal u.r.lo32, u.r.hi32,
x,
y
339#elif defined(__GNUC__) && defined(XXXX__arm__)
341static inline int MULSHIFT32(
int x,
int y)
344 asm (
"smull %0,%1,%2,%3" :
"=&r" (zlow),
"=r" (y) :
"r" (
x),
"1" (y) :
"cc");
360static inline short CLIPTOSHORT(
int x)
362 asm (
"ssat %0, #16, %1" :
"=r" (
x) :
"r" (
x));
370#define CLIP_2N(y, n) { \
371 int sign = (y) >> 31; \
372 if (sign != (y) >> (n)) { \
373 (y) = sign ^ ((1 << (n)) - 1); \
381#define CLIP_2N_SHIFT(y, n) { \
382 int sign = (y) >> 31; \
383 if (sign != (y) >> (30 - (n))) { \
384 (y) = sign ^ (0x3fffffff); \
392#define FASTABS(x) abs(x)
393#define CLZ(x) __builtin_clz(x)
396static inline unsigned int REV16(
unsigned int value)
398 asm (
"rev16 %0, %1" :
"=r" (value) :
"r" (value) );
403static inline unsigned int REV32(
unsigned int value)
405 asm (
"rev %0, %1" :
"=r" (value) :
"r" (value) );
410typedef long long Word64;
421static inline Word64 MADD64(Word64 sum64,
int x,
int y)
425 asm (
"smlal %0,%1,%2,%3" :
"+&r" (u.r.lo32),
"+&r" (u.r.hi32) :
"r" (
x),
"r" (y) :
"cc");
432#elif defined(__GNUC__) && (defined(__i386__) || defined(__amd64__) || defined(__APPLE__)) || (defined (_SOLARIS) && !defined (__GNUC__) && defined(_SOLARISX86))
434typedef long long Word64;
436static __inline__
int MULSHIFT32(
int x,
int y)
440 z = (Word64)x * (Word64)
y >> 32;
445static __inline
short CLIPTOSHORT(
int x)
451 if (
sign != (x >> 15))
452 x =
sign ^ ((1 << 15) - 1);
457static __inline
int FASTABS(
int x)
461 sign =
x >> (
sizeof(int) * 8 - 1);
468static __inline
int CLZ(
int x)
477 if (!((
unsigned int)x >> 16)) { numZeros += 16;
x <<= 16; }
478 if (!((
unsigned int)x >> 24)) { numZeros += 8;
x <<= 8; }
479 if (!((
unsigned int)x >> 28)) { numZeros += 4;
x <<= 4; }
480 if (!((
unsigned int)x >> 30)) { numZeros += 2;
x <<= 2; }
482 numZeros -= ((
unsigned int)x >> 31);
496static __inline Word64 MADD64(Word64 sum64,
int x,
int y)
498 sum64 += (Word64)x * (Word64)
y;
503#elif defined(ARDUINO) || defined(ESP32) || defined(ESP_PLATFORM) || defined(__aarch64__) || defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__)) || (defined (_SOLARIS) && !defined (__GNUC__) && !defined (_SOLARISX86))
505typedef long long Word64;
507static __inline__
int MULSHIFT32(
int x,
int y)
511 z = (Word64)x * (Word64)
y >> 32;
516static __inline
short CLIPTOSHORT(
int x)
522 if (
sign != (x >> 15))
523 x =
sign ^ ((1 << 15) - 1);
528static __inline
int FASTABS(
int x)
532 sign =
x >> (
sizeof(int) * 8 - 1);
539static __inline
int CLZ(
int x)
548 if (!((
unsigned int)x >> 16)) { numZeros += 16;
x <<= 16; }
549 if (!((
unsigned int)x >> 24)) { numZeros += 8;
x <<= 8; }
550 if (!((
unsigned int)x >> 28)) { numZeros += 4;
x <<= 4; }
551 if (!((
unsigned int)x >> 30)) { numZeros += 2;
x <<= 2; }
553 numZeros -= ((
unsigned int)x >> 31);
561#if defined(__POWERPC__) || defined(__powerpc__)
572static __inline Word64 MADD64(Word64 sum64,
int x,
int y)
574 sum64 += (Word64)x * (Word64)
y;
583#define CLIP_2N(y, n) { \
584 int sign = (y) >> 31; \
585 if (sign != (y) >> (n)) { \
586 (y) = sign ^ ((1 << (n)) - 1); \
594#define CLIP_2N_SHIFT(y, n) { \
595 int sign = (y) >> 31; \
596 if (sign != (y) >> (30 - (n))) { \
597 (y) = sign ^ (0x3fffffff); \
610#error Unsupported platform in assembly.h
615#define CLIP_2N(y, n) { \
616 int sign = (y) >> 31; \
617 if (sign != (y) >> (n)) { \
618 (y) = sign ^ ((1 << (n)) - 1); \
628#define CLIP_2N_SHIFT(y, n) { \
629 int sign = (y) >> 31; \
630 if (sign != (y) >> (30 - (n))) { \
631 (y) = sign ^ (0x3fffffff); \
#define sign(x)
Definition draw.cpp:36
int y
Definition layout.c:118
int x
Definition layout.c:118