Annotation of /trunk/openal/patches/openal-20060211-mmx.patch
Parent Directory | Revision Log
Revision 153 -
(hide annotations)
(download)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 569 byte(s)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 569 byte(s)
-import
1 | niro | 153 | --- src/arch/i386/x86_floatmul.c |
2 | +++ src/arch/i386/x86_floatmul.c | ||
3 | @@ -27,6 +27,7 @@ | ||
4 | /* MMX routine needs 16 */ | ||
5 | #define SCALING_POWER 16 | ||
6 | #define SCALING_FACTOR (1 << SCALING_POWER) | ||
7 | +#define MIN_ENTER_SIMD_LEN 48 | ||
8 | |||
9 | void _alFloatMul(ALshort *bpt, ALfloat sa, ALuint len); | ||
10 | |||
11 | @@ -34,6 +35,8 @@ | ||
12 | ALint scaled_sa = sa * SCALING_FACTOR; | ||
13 | ALint iter; | ||
14 | |||
15 | + if (len < MIN_ENTER_SIMD_LEN) | ||
16 | + goto skip_simd; | ||
17 | #ifdef __MMX__ | ||
18 | if (_alHaveMMX()) { | ||
19 | union { | ||
20 | @@ -93,6 +96,7 @@ | ||
21 | __builtin_ia32_emms(); | ||
22 | } | ||
23 | #endif /* __MMX__ */ | ||
24 | +skip_simd: | ||
25 | |||
26 | while(len--) { | ||
27 | iter = *bpt; |