pcm/Volume: remove optimized i386 assembly

This code is unable to dither.  Until we implement that, let's remove
the code for now.  i386 isn't relevant anymore anyway.
This commit is contained in:
Max Kellermann 2013-12-28 17:23:48 +01:00
parent 2a3a18a283
commit f3bbe4bb1f
1 changed files with 0 additions and 50 deletions

View File

@ -42,56 +42,6 @@ pcm_volume_sample(typename Traits::value_type _sample,
return PcmClamp<F, Traits>(sample);
}
#ifdef __i386__
/**
* Optimized volume function for i386. Use the EDX:EAX 2*32 bit
* multiplication result instead of emulating 64 bit multiplication.
*/
static inline int32_t
pcm_volume_sample_24(int32_t sample, int32_t volume, gcc_unused int32_t dither)
{
int32_t result;
asm(/* edx:eax = sample * volume */
"imul %2\n"
/* "add %3, %1\n" dithering disabled for now, because we
have no overflow check - is dithering really important
here? */
/* eax = edx:eax / PCM_VOLUME_1 */
"sal $22, %%edx\n"
"shr $10, %1\n"
"or %%edx, %1\n"
: "=a"(result)
: "0"(sample), "r"(volume) /* , "r"(dither) */
: "edx"
);
return result;
}
template<>
inline int32_t
pcm_volume_sample<SampleFormat::S24_P32,
SampleTraits<SampleFormat::S24_P32>>(int32_t sample,
int volume)
{
return pcm_volume_sample_24(sample, volume, pcm_volume_dither());
}
template<>
inline int32_t
pcm_volume_sample<SampleFormat::S32,
SampleTraits<SampleFormat::S32>>(int32_t sample, int volume)
{
return pcm_volume_sample_24(sample, volume, pcm_volume_dither());
}
#endif
template<SampleFormat F, class Traits=SampleTraits<F>>
static void
pcm_volume_change(typename Traits::pointer_type dest,