mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-18 04:05:34 +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
|
||||
.dest 1 d1 guint8
|
||||
.source 4 s1 gint32
|
||||
.const 4 c2 24
|
||||
.const 4 c1 0x80000000
|
||||
.temp 4 t1
|
||||
.temp 2 t2
|
||||
|
||||
xorl t1, s1, c1
|
||||
shrul t1, t1, c2
|
||||
convlw t2, t1
|
||||
convwb d1, t2
|
||||
|
||||
convhlw t2, t1
|
||||
convhwb d1, t2
|
||||
|
||||
.function audio_orc_pack_s8
|
||||
.dest 1 d1 guint8
|
||||
.source 4 s1 gint32
|
||||
.const 4 c1 24
|
||||
.temp 4 t1
|
||||
.temp 2 t2
|
||||
|
||||
shrsl t1, s1, c1
|
||||
convlw t2, t1
|
||||
convwb d1, t2
|
||||
|
||||
convhlw t2, s1
|
||||
convhwb d1, t2
|
||||
|
||||
.function audio_orc_pack_u16
|
||||
.dest 2 d1 guint8
|
||||
.source 4 s1 gint32
|
||||
.const 4 c2 16
|
||||
.const 4 c1 0x80000000
|
||||
.temp 4 t1
|
||||
|
||||
xorl t1, s1, c1
|
||||
shrul t1, t1, c2
|
||||
convlw d1, t1
|
||||
|
||||
convhlw d1, t1
|
||||
|
||||
.function audio_orc_pack_s16
|
||||
.dest 2 d1 guint8
|
||||
.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
|
||||
.dest 2 d1 guint8
|
||||
.source 4 s1 gint32
|
||||
.const 4 c1 0x80000000
|
||||
.const 4 c2 16
|
||||
.temp 4 t1
|
||||
.temp 2 t2
|
||||
|
||||
xorl t1, s1, c1
|
||||
shrul t1, t1, c2
|
||||
convlw t2, t1
|
||||
convhlw t2, t1
|
||||
swapw d1, t2
|
||||
|
||||
|
||||
.function audio_orc_pack_s16_swap
|
||||
.dest 2 d1 guint8
|
||||
.source 4 s1 gint32
|
||||
.const 4 c1 16
|
||||
.temp 4 t1
|
||||
.temp 2 t2
|
||||
|
||||
shrsl t1, s1, c1
|
||||
convlw t2, t1
|
||||
convhlw t2, s1
|
||||
swapw d1, t2
|
||||
|
||||
.function audio_orc_pack_u24_32
|
||||
|
|
Loading…
Reference in a new issue