gstreamer/gst-libs/gst/audio/gstaudiopack.orc
Mathieu Duponchelle 73d2031ffc gstaudiopack.orc: pack_u32be_swap: actually swap
Fixes:

gst-launch-1.0 audiotestsrc ! audio/x-raw, format=U32BE ! \
audioconvert ! autoaudiosink
2018-02-15 01:32:54 +01:00

427 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
.temp 4 t1
xorl t1, s1, c1
swapl d1, t1
.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