22 #if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS)
23 #define SDL_DISABLE_ANALYZE_MACROS 1
26 #include "../SDL_internal.h"
31 #include "../libm/math_libm.h"
37 #if defined(HAVE_ATAN)
47 #if defined(HAVE_ATANF)
57 #if defined(HAVE_ATAN2)
67 #if defined(HAVE_ATAN2F)
77 #if defined(HAVE_ACOS)
97 #if defined(HAVE_ACOSF)
107 #if defined(HAVE_ASIN)
123 #if defined(HAVE_ASINF)
133 #if defined(HAVE_CEIL)
137 double fraction =
x - integer;
138 if (fraction > 0.0) {
148 #if defined(HAVE_CEILF)
158 #if defined(HAVE_COPYSIGN)
160 #elif defined(HAVE__COPYSIGN)
161 return _copysign(
x,
y);
162 #elif defined(__WATCOMC__) && defined(__386__)
164 unsigned int *xi = (
unsigned int *) &
x,
165 *yi = (
unsigned int *) &
y;
166 xi[1] = (yi[1] & 0x80000000) | (xi[1] & 0x7fffffff);
176 #if defined(HAVE_COPYSIGNF)
177 return copysignf(
x,
y);
186 #if defined(HAVE_COS)
196 #if defined(HAVE_COSF)
206 #if defined(HAVE_EXP)
216 #if defined(HAVE_EXPF)
226 #if defined(HAVE_FABS)
236 #if defined(HAVE_FABSF)
246 #if defined(HAVE_FLOOR)
256 #if defined(HAVE_FLOORF)
266 #if defined(HAVE_FMOD)
276 #if defined(HAVE_FMODF)
286 #if defined(HAVE_LOG)
296 #if defined(HAVE_LOGF)
306 #if defined(HAVE_LOG10)
316 #if defined(HAVE_LOG10F)
326 #if defined(HAVE_POW)
336 #if defined(HAVE_POWF)
339 return (
float)
SDL_pow((
double)
x, (
double)
y);
346 #if defined(HAVE_SCALBN)
348 #elif defined(HAVE__SCALB)
350 #elif defined(HAVE_LIBC) && defined(HAVE_FLOAT_H) && (FLT_RADIX == 2)
362 #if defined(HAVE_SCALBNF)
363 return scalbnf(
x,
n);
372 #if defined(HAVE_SIN)
382 #if defined(HAVE_SINF)
392 #if defined(HAVE_SQRT)
402 #if defined(HAVE_SQRTF)
412 #if defined(HAVE_TAN)
422 #if defined(HAVE_TANF)
431 #if defined(HAVE_ABS)
434 return ((
x) < 0 ? -(
x) : (
x));
438 #if defined(HAVE_CTYPE_H)
445 int SDL_isspace(
int x) {
return ((
x) ==
' ') || ((
x) ==
'\t') || ((
x) ==
'\r') || ((
x) ==
'\n') || ((
x) ==
'\f') || ((
x) ==
'\v'); }
454 #if defined(_MSC_VER)
458 __declspec(selectany)
int _fltused = 1;
462 #if (_MSC_VER >= 1400) && defined(_WIN64) && !defined(_DEBUG) && !(_MSC_VER >= 1900 && defined(_MT))
465 #pragma function(memcpy)
475 for (
i =
num / 64;
i--;) {
476 _mm_prefetch(
src, _MM_HINT_NTA);
481 _mm_stream_ps((
float *) (
dst + 0),
values[0]);
482 _mm_stream_ps((
float *) (
dst + 16),
values[1]);
483 _mm_stream_ps((
float *) (
dst + 32),
values[2]);
484 _mm_stream_ps((
float *) (
dst + 48),
values[3]);
512 fst dword ptr [esp+18
h]
513 fistp qword ptr [esp+10
h]
514 fild qword ptr [esp+10
h]
515 mov edx,dword ptr [esp+18
h]
516 mov eax,dword ptr [esp+10
h]
518 je integer_QnaN_or_zero
519 arg_is_not_integer_QnaN:
524 mov ecx,dword ptr [esp]
528 mov edx,dword ptr [esp+14
h]
533 mov ecx,dword ptr [esp]
536 mov edx,dword ptr [esp+14
h]
539 integer_QnaN_or_zero:
540 mov edx,dword ptr [esp+14
h]
542 jne arg_is_not_integer_QnaN
543 fstp dword ptr [esp+18
h]
544 fstp dword ptr [esp+18
h]
565 mov eax, dword ptr[esp+8]
566 mov ecx, dword ptr[esp+10
h]
568 mov ecx, dword ptr[esp+0Ch]
570 mov eax, dword ptr[esp+4]
577 mov eax, dword ptr[esp+8]
578 mul dword ptr[esp+14
h]
580 mov eax, dword ptr[esp+8]
599 mov eax,dword ptr [esp+14
h]
603 mov edx,dword ptr [esp+10
h]
607 mov dword ptr [esp+14
h],eax
608 mov dword ptr [esp+10
h],edx
610 mov eax,dword ptr [esp+1Ch]
614 mov edx,dword ptr [esp+18
h]
618 mov dword ptr [esp+1Ch],eax
619 mov dword ptr [esp+18
h],edx
623 mov ecx,dword ptr [esp+18
h]
624 mov eax,dword ptr [esp+14
h]
628 mov eax,dword ptr [esp+10
h]
634 mov ecx,dword ptr [esp+18
h]
635 mov edx,dword ptr [esp+14
h]
636 mov eax,dword ptr [esp+10
h]
646 mul dword ptr [esp+1Ch]
648 mov eax,dword ptr [esp+18
h]
652 cmp edx,dword ptr [esp+14
h]
655 cmp eax,dword ptr [esp+10
h]
685 mov eax,dword ptr [esp+18
h]
688 mov ecx,dword ptr [esp+14
h]
689 mov eax,dword ptr [esp+10
h]
693 mov eax,dword ptr [esp+0Ch]
699 mov ebx,dword ptr [esp+14
h]
700 mov edx,dword ptr [esp+10
h]
701 mov eax,dword ptr [esp+0Ch]
711 mul dword ptr [esp+18
h]
713 mov eax,dword ptr [esp+14
h]
717 cmp edx,dword ptr [esp+10
h]
720 cmp eax,dword ptr [esp+0Ch]
744 mov eax,dword ptr [esp+10
h]
748 mov edx,dword ptr [esp+0Ch]
752 mov dword ptr [esp+10
h],eax
753 mov dword ptr [esp+0Ch],edx
755 mov eax,dword ptr [esp+18
h]
758 mov edx,dword ptr [esp+14
h]
762 mov dword ptr [esp+18
h],eax
763 mov dword ptr [esp+14
h],edx
767 mov ecx,dword ptr [esp+14
h]
768 mov eax,dword ptr [esp+10
h]
771 mov eax,dword ptr [esp+0Ch]
780 mov ecx,dword ptr [esp+14
h]
781 mov edx,dword ptr [esp+10
h]
782 mov eax,dword ptr [esp+0Ch]
792 mul dword ptr [esp+18
h]
794 mul dword ptr [esp+14
h]
797 cmp edx,dword ptr [esp+10
h]
800 cmp eax,dword ptr [esp+0Ch]
803 sub eax,dword ptr [esp+14
h]
804 sbb edx,dword ptr [esp+18
h]
806 sub eax,dword ptr [esp+0Ch]
807 sbb edx,dword ptr [esp+10
h]
829 mov eax,dword ptr [esp+14
h]
832 mov ecx,dword ptr [esp+10
h]
833 mov eax,dword ptr [esp+0Ch]
836 mov eax,dword ptr [esp+8]
843 mov ebx,dword ptr [esp+10
h]
844 mov edx,dword ptr [esp+0Ch]
845 mov eax,dword ptr [esp+8]
855 mul dword ptr [esp+14
h]
857 mul dword ptr [esp+10
h]
860 cmp edx,dword ptr [esp+0Ch]
863 cmp eax,dword ptr [esp+8]
866 sub eax,dword ptr [esp+10
h]
867 sbb edx,dword ptr [esp+14
h]
869 sub eax,dword ptr [esp+8]
870 sbb edx,dword ptr [esp+0Ch]
892 mov eax,dword ptr [esp+14
h]
897 mov edx,dword ptr [esp+10
h]
901 mov dword ptr [esp+14
h],eax
902 mov dword ptr [esp+10
h],edx
904 mov eax,dword ptr [esp+1Ch]
908 mov edx,dword ptr [esp+18
h]
912 mov dword ptr [esp+1Ch],eax
913 mov dword ptr [esp+18
h],edx
917 mov ecx,dword ptr [esp+18
h]
918 mov eax,dword ptr [esp+14
h]
922 mov eax,dword ptr [esp+10
h]
926 mul dword ptr [esp+18
h]
929 mul dword ptr [esp+18
h]
934 mov ecx,dword ptr [esp+18
h]
935 mov edx,dword ptr [esp+14
h]
936 mov eax,dword ptr [esp+10
h]
946 mul dword ptr [esp+1Ch]
948 mov eax,dword ptr [esp+18
h]
952 cmp edx,dword ptr [esp+14
h]
955 cmp eax,dword ptr [esp+10
h]
959 sub eax,dword ptr [esp+18
h]
960 sbb edx,dword ptr [esp+1Ch]
964 sub eax,dword ptr [esp+10
h]
965 sbb edx,dword ptr [esp+14
h]
998 mov eax,dword ptr [esp+14
h]
1001 mov ecx,dword ptr [esp+10
h]
1002 mov eax,dword ptr [esp+0Ch]
1006 mov eax,dword ptr [esp+8]
1010 mul dword ptr [esp+10
h]
1013 mul dword ptr [esp+10
h]
1018 mov ebx,dword ptr [esp+10
h]
1019 mov edx,dword ptr [esp+0Ch]
1020 mov eax,dword ptr [esp+8]
1030 mul dword ptr [esp+14
h]
1032 mov eax,dword ptr [esp+10
h]
1036 cmp edx,dword ptr [esp+0Ch]
1039 cmp eax,dword ptr [esp+8]
1043 sub eax,dword ptr [esp+10
h]
1044 sbb edx,dword ptr [esp+14
h]
1048 sub eax,dword ptr [esp+8]
1049 sbb edx,dword ptr [esp+0Ch]