audiopack: improve pack functions

Avoid shifts by using convh functions.
This commit is contained in:
Wim Taymans 2015-11-03 11:57:32 +01:00
parent 9e15c89564
commit 914aa4aed1

View file

@ -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