summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2015-11-03 11:57:32 +0100
committerWim Taymans <wtaymans@redhat.com>2015-11-03 12:12:08 +0100
commit914aa4aed14738616d2d0f61d857977f10a0cb02 (patch)
tree3a1c960799cae8d9db51cce03cf0efb6938ff1a9 /gst-libs
parent9e15c895644c0c15513fec0623416286700da184 (diff)
audiopack: improve pack functions
Avoid shifts by using convh functions.
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/audio/gstaudiopack.orc36
1 files changed, 8 insertions, 28 deletions
diff --git a/gst-libs/gst/audio/gstaudiopack.orc b/gst-libs/gst/audio/gstaudiopack.orc
index 99458278f..89b262714 100644
--- a/gst-libs/gst/audio/gstaudiopack.orc
+++ b/gst-libs/gst/audio/gstaudiopack.orc
@@ -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