mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-30 07:42:32 +00:00
audiopack: improve pack functions
Avoid shifts by using convh functions.
This commit is contained in:
parent
9e15c89564
commit
914aa4aed1
1 changed files with 8 additions and 28 deletions
|
@ -171,74 +171,54 @@ swapq d1, s1
|
||||||
.function audio_orc_pack_u8
|
.function audio_orc_pack_u8
|
||||||
.dest 1 d1 guint8
|
.dest 1 d1 guint8
|
||||||
.source 4 s1 gint32
|
.source 4 s1 gint32
|
||||||
.const 4 c2 24
|
|
||||||
.const 4 c1 0x80000000
|
.const 4 c1 0x80000000
|
||||||
.temp 4 t1
|
.temp 4 t1
|
||||||
.temp 2 t2
|
.temp 2 t2
|
||||||
|
|
||||||
xorl t1, s1, c1
|
xorl t1, s1, c1
|
||||||
shrul t1, t1, c2
|
convhlw t2, t1
|
||||||
convlw t2, t1
|
convhwb d1, t2
|
||||||
convwb d1, t2
|
|
||||||
|
|
||||||
|
|
||||||
.function audio_orc_pack_s8
|
.function audio_orc_pack_s8
|
||||||
.dest 1 d1 guint8
|
.dest 1 d1 guint8
|
||||||
.source 4 s1 gint32
|
.source 4 s1 gint32
|
||||||
.const 4 c1 24
|
|
||||||
.temp 4 t1
|
|
||||||
.temp 2 t2
|
.temp 2 t2
|
||||||
|
|
||||||
shrsl t1, s1, c1
|
convhlw t2, s1
|
||||||
convlw t2, t1
|
convhwb d1, t2
|
||||||
convwb d1, t2
|
|
||||||
|
|
||||||
|
|
||||||
.function audio_orc_pack_u16
|
.function audio_orc_pack_u16
|
||||||
.dest 2 d1 guint8
|
.dest 2 d1 guint8
|
||||||
.source 4 s1 gint32
|
.source 4 s1 gint32
|
||||||
.const 4 c2 16
|
|
||||||
.const 4 c1 0x80000000
|
.const 4 c1 0x80000000
|
||||||
.temp 4 t1
|
.temp 4 t1
|
||||||
|
|
||||||
xorl t1, s1, c1
|
xorl t1, s1, c1
|
||||||
shrul t1, t1, c2
|
convhlw d1, t1
|
||||||
convlw d1, t1
|
|
||||||
|
|
||||||
|
|
||||||
.function audio_orc_pack_s16
|
.function audio_orc_pack_s16
|
||||||
.dest 2 d1 guint8
|
.dest 2 d1 guint8
|
||||||
.source 4 s1 gint32
|
.source 4 s1 gint32
|
||||||
.const 4 c1 16
|
|
||||||
.temp 4 t1
|
|
||||||
|
|
||||||
shrsl t1, s1, c1
|
|
||||||
convlw d1, t1
|
|
||||||
|
|
||||||
|
convhlw d1, s1
|
||||||
|
|
||||||
.function audio_orc_pack_u16_swap
|
.function audio_orc_pack_u16_swap
|
||||||
.dest 2 d1 guint8
|
.dest 2 d1 guint8
|
||||||
.source 4 s1 gint32
|
.source 4 s1 gint32
|
||||||
.const 4 c1 0x80000000
|
.const 4 c1 0x80000000
|
||||||
.const 4 c2 16
|
|
||||||
.temp 4 t1
|
.temp 4 t1
|
||||||
.temp 2 t2
|
.temp 2 t2
|
||||||
|
|
||||||
xorl t1, s1, c1
|
xorl t1, s1, c1
|
||||||
shrul t1, t1, c2
|
convhlw t2, t1
|
||||||
convlw t2, t1
|
|
||||||
swapw d1, t2
|
swapw d1, t2
|
||||||
|
|
||||||
|
|
||||||
.function audio_orc_pack_s16_swap
|
.function audio_orc_pack_s16_swap
|
||||||
.dest 2 d1 guint8
|
.dest 2 d1 guint8
|
||||||
.source 4 s1 gint32
|
.source 4 s1 gint32
|
||||||
.const 4 c1 16
|
|
||||||
.temp 4 t1
|
|
||||||
.temp 2 t2
|
.temp 2 t2
|
||||||
|
|
||||||
shrsl t1, s1, c1
|
convhlw t2, s1
|
||||||
convlw t2, t1
|
|
||||||
swapw d1, t2
|
swapw d1, t2
|
||||||
|
|
||||||
.function audio_orc_pack_u24_32
|
.function audio_orc_pack_u24_32
|
||||||
|
|
Loading…
Reference in a new issue