mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 18:50:48 +00:00
e3f0f3b91e
Move the audio-converter helper to the audio library.
425 lines
6.1 KiB
Text
425 lines
6.1 KiB
Text
|
|
.function audio_orc_unpack_u8
|
|
.dest 4 d1 gint32
|
|
.source 1 s1 guint8
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t3
|
|
|
|
splatbl t3, s1
|
|
xorl d1, t3, c1
|
|
|
|
.function audio_orc_unpack_u8_trunc
|
|
.dest 4 d1 gint32
|
|
.source 1 s1 guint8
|
|
.const 4 c1 0x80000000
|
|
.const 4 c2 24
|
|
.temp 4 t3
|
|
|
|
splatbl t3, s1
|
|
shll t3, t3, c2
|
|
xorl d1, t3, c1
|
|
|
|
.function audio_orc_unpack_s8
|
|
.dest 4 d1 gint32
|
|
.source 1 s1 guint8
|
|
.const 4 c1 0x00808080
|
|
.temp 2 t2
|
|
.temp 4 t3
|
|
|
|
splatbl t3, s1
|
|
xorl d1, t3, c1
|
|
|
|
.function audio_orc_unpack_s8_trunc
|
|
.dest 4 d1 gint32
|
|
.source 1 s1 guint8
|
|
.const 4 c1 24
|
|
.temp 4 t3
|
|
|
|
splatbl t3, s1
|
|
shll d1, t3, c1
|
|
|
|
.function audio_orc_unpack_u16
|
|
.dest 4 d1 gint32
|
|
.source 2 s1 guint8
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t2
|
|
|
|
mergewl t2, s1, s1
|
|
xorl d1, t2, c1
|
|
|
|
.function audio_orc_unpack_u16_trunc
|
|
.dest 4 d1 gint32
|
|
.source 2 s1 guint8
|
|
.const 4 c2 16
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t2
|
|
|
|
mergewl t2, s1, s1
|
|
shll t2, t2, c2
|
|
xorl d1, t2, c1
|
|
|
|
.function audio_orc_unpack_s16
|
|
.dest 4 d1 gint32
|
|
.source 2 s1 guint8
|
|
.const 4 c1 0x00008000
|
|
.temp 4 t2
|
|
|
|
mergewl t2, s1, s1
|
|
xorl d1, t2, c1
|
|
|
|
.function audio_orc_unpack_s16_trunc
|
|
.dest 4 d1 gint32
|
|
.source 2 s1 guint8
|
|
.const 4 c1 16
|
|
.temp 4 t2
|
|
|
|
convuwl t2, s1
|
|
shll d1, t2, c1
|
|
|
|
.function audio_orc_unpack_u16_swap
|
|
.dest 4 d1 gint32
|
|
.source 2 s1 guint8
|
|
.const 4 c1 0x80000000
|
|
.temp 2 t1
|
|
.temp 4 t2
|
|
|
|
swapw t1, s1
|
|
mergewl t2, t1, t1
|
|
xorl d1, t2, c1
|
|
|
|
.function audio_orc_unpack_u16_swap_trunc
|
|
.dest 4 d1 gint32
|
|
.source 2 s1 guint8
|
|
.const 4 c2 16
|
|
.const 4 c1 0x80000000
|
|
.temp 2 t1
|
|
.temp 4 t2
|
|
|
|
swapw t1, s1
|
|
convuwl t2, t1
|
|
shll t2, t2, c2
|
|
xorl d1, t2, c1
|
|
|
|
.function audio_orc_unpack_s16_swap
|
|
.dest 4 d1 gint32
|
|
.source 2 s1 guint8
|
|
.temp 2 t1
|
|
|
|
swapw t1, s1
|
|
mergewl d1, t1, t1
|
|
|
|
.function audio_orc_unpack_s16_swap_trunc
|
|
.dest 4 d1 gint32
|
|
.source 2 s1 guint8
|
|
.const 4 c1 16
|
|
.temp 2 t1
|
|
.temp 4 t2
|
|
|
|
swapw t1, s1
|
|
convuwl t2, t1
|
|
shll d1, t2, c1
|
|
|
|
.function audio_orc_unpack_u24_32
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 guint8
|
|
.const 4 c2 8
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t1
|
|
|
|
shll t1, s1, c2
|
|
xorl d1, t1, c1
|
|
|
|
.function audio_orc_unpack_s24_32
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 guint8
|
|
.const 4 c1 8
|
|
|
|
shll d1, s1, c1
|
|
|
|
.function audio_orc_unpack_u24_32_swap
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 guint8
|
|
.const 4 c2 8
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t1
|
|
|
|
swapl t1, s1
|
|
shll t1, t1, c2
|
|
xorl d1, t1, c1
|
|
|
|
|
|
.function audio_orc_unpack_s24_32_swap
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 guint8
|
|
.const 4 c1 8
|
|
.temp 4 t1
|
|
|
|
swapl t1, s1
|
|
shll d1, t1, c1
|
|
|
|
|
|
.function audio_orc_unpack_u32
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 guint8
|
|
.const 4 c1 0x80000000
|
|
|
|
xorl d1, s1, c1
|
|
|
|
|
|
.function audio_orc_unpack_u32_swap
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 guint8
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t1
|
|
|
|
swapl t1, s1
|
|
xorl d1, t1, c1
|
|
|
|
.function audio_orc_unpack_s32
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 guint8
|
|
|
|
copyl d1, s1
|
|
|
|
.function audio_orc_unpack_s32_swap
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 guint8
|
|
|
|
swapl d1, s1
|
|
|
|
.function audio_orc_unpack_f32
|
|
.dest 8 d1 gdouble
|
|
.source 4 s1 gfloat
|
|
|
|
convfd d1, s1
|
|
|
|
.function audio_orc_unpack_f32_swap
|
|
.dest 8 d1 gdouble
|
|
.source 4 s1 gfloat
|
|
.temp 4 t1
|
|
|
|
swapl t1, s1
|
|
convfd d1, t1
|
|
|
|
.function audio_orc_unpack_f64
|
|
.dest 8 d1 gdouble
|
|
.source 8 s1 gdouble
|
|
|
|
copyq d1, s1
|
|
|
|
.function audio_orc_unpack_f64_swap
|
|
.dest 8 d1 gdouble
|
|
.source 8 s1 gdouble
|
|
|
|
swapq d1, s1
|
|
|
|
.function audio_orc_pack_u8
|
|
.dest 1 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t1
|
|
.temp 2 t2
|
|
|
|
xorl t1, s1, c1
|
|
convhlw t2, t1
|
|
convhwb d1, t2
|
|
|
|
.function audio_orc_pack_s8
|
|
.dest 1 d1 guint8
|
|
.source 4 s1 gint32
|
|
.temp 2 t2
|
|
|
|
convhlw t2, s1
|
|
convhwb d1, t2
|
|
|
|
.function audio_orc_pack_u16
|
|
.dest 2 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t1
|
|
|
|
xorl t1, s1, c1
|
|
convhlw d1, t1
|
|
|
|
.function audio_orc_pack_s16
|
|
.dest 2 d1 guint8
|
|
.source 4 s1 gint32
|
|
|
|
convhlw d1, s1
|
|
|
|
.function audio_orc_pack_u16_swap
|
|
.dest 2 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 0x80000000
|
|
.temp 4 t1
|
|
.temp 2 t2
|
|
|
|
xorl t1, s1, c1
|
|
convhlw t2, t1
|
|
swapw d1, t2
|
|
|
|
.function audio_orc_pack_s16_swap
|
|
.dest 2 d1 guint8
|
|
.source 4 s1 gint32
|
|
.temp 2 t2
|
|
|
|
convhlw t2, s1
|
|
swapw d1, t2
|
|
|
|
.function audio_orc_pack_u24_32
|
|
.dest 4 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 0x80000000
|
|
.const 4 c2 8
|
|
.temp 4 t1
|
|
|
|
xorl t1, s1, c1
|
|
shrul d1, t1, c2
|
|
|
|
|
|
.function audio_orc_pack_s24_32
|
|
.dest 4 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 8
|
|
|
|
shrsl d1, s1, c1
|
|
|
|
|
|
.function audio_orc_pack_u24_32_swap
|
|
.dest 4 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 0x80000000
|
|
.const 4 c2 8
|
|
.temp 4 t1
|
|
|
|
xorl t1, s1, c1
|
|
shrul t1, t1, c2
|
|
swapl d1, t1
|
|
|
|
|
|
.function audio_orc_pack_s24_32_swap
|
|
.dest 4 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 8
|
|
.temp 4 t1
|
|
|
|
shrsl t1, s1, c1
|
|
swapl d1, t1
|
|
|
|
|
|
.function audio_orc_pack_u32
|
|
.dest 4 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 0x80000000
|
|
|
|
xorl d1, s1, c1
|
|
|
|
|
|
.function audio_orc_pack_s32
|
|
.dest 4 d1 guint8
|
|
.source 4 s1 gint32
|
|
|
|
copyl d1, s1
|
|
|
|
|
|
.function audio_orc_pack_u32_swap
|
|
.dest 4 d1 guint8
|
|
.source 4 s1 gint32
|
|
.const 4 c1 0x80000000
|
|
|
|
xorl d1, s1, c1
|
|
|
|
|
|
.function audio_orc_pack_s32_swap
|
|
.dest 4 d1 guint8
|
|
.source 4 s1 gint32
|
|
|
|
swapl d1, s1
|
|
|
|
.function audio_orc_pack_f32
|
|
.dest 4 d1 gfloat
|
|
.source 8 s1 gdouble
|
|
|
|
convdf d1, s1
|
|
|
|
.function audio_orc_pack_f32_swap
|
|
.dest 4 d1 gfloat
|
|
.source 8 s1 gdouble
|
|
.temp 4 t1
|
|
|
|
convdf t1, s1
|
|
swapl d1, t1
|
|
|
|
.function audio_orc_pack_f64
|
|
.dest 8 d1 gdouble
|
|
.source 8 s1 gdouble
|
|
|
|
copyq d1, s1
|
|
|
|
.function audio_orc_pack_f64_swap
|
|
.dest 8 d1 gdouble
|
|
.source 8 s1 gdouble
|
|
|
|
swapq d1, s1
|
|
|
|
.function audio_orc_splat_u16
|
|
.dest 2 d1 guint16
|
|
.param 2 p1
|
|
|
|
copyw d1, p1
|
|
|
|
.function audio_orc_splat_u32
|
|
.dest 4 d1 guint32
|
|
.param 4 p1
|
|
|
|
copyl d1, p1
|
|
|
|
.function audio_orc_splat_u64
|
|
.dest 8 d1 guint64
|
|
.param 8 p1
|
|
|
|
copyq d1, p1
|
|
|
|
.function audio_orc_int_bias
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 gint32
|
|
.param 4 bias gint32
|
|
.param 4 mask gint32
|
|
.temp 4 t1
|
|
|
|
addssl t1, s1, bias
|
|
andl d1, t1, mask
|
|
|
|
.function audio_orc_int_dither
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 gint32
|
|
.source 4 dither gint32
|
|
.param 4 mask gint32
|
|
.temp 4 t1
|
|
|
|
addssl t1, s1, dither
|
|
andl d1, t1, mask
|
|
|
|
.function audio_orc_update_rand
|
|
.dest 4 r guint32
|
|
.temp 4 t
|
|
|
|
mulll t, r, 1103515245
|
|
addl r, t, 12345
|
|
|
|
.function audio_orc_s32_to_double
|
|
.dest 8 d1 gdouble
|
|
.source 4 s1 gint32
|
|
.temp 8 t1
|
|
|
|
convld t1, s1
|
|
divd d1, t1, 2147483648.0L
|
|
|
|
.function audio_orc_double_to_s32
|
|
.dest 4 d1 gint32
|
|
.source 8 s1 gdouble
|
|
.temp 8 t1
|
|
|
|
muld t1, s1, 2147483648.0L
|
|
convdl d1, t1
|
|
|