summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2015-01-07 11:20:01 +0100
committerArun Raghavan <git@arunraghavan.net>2015-01-12 13:56:29 +0530
commit50186d7fcb37113f94b2d116b445909940114391 (patch)
treec6717bf692512f5911610b136bfdb40b8ca6cda4
parent112a39fa43217ee48922b78e58d69d57579ae893 (diff)
downloadpulseaudio-50186d7fcb37113f94b2d116b445909940114391.tar.gz
svolume.orc: avoid parameter loading undefined behaviour
In some cases, depending on the instruction that performs the load, orc ignores the size of the parameter when loading it for the first time. Explicitly load the parameter into a temp to make sure it is loaded correctly, like we do for the 2ch case. See https://bugzilla.gnome.org/show_bug.cgi?id=742271
-rw-r--r--src/pulsecore/svolume.orc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/pulsecore/svolume.orc b/src/pulsecore/svolume.orc
index 0edbefbde..f869893ba 100644
--- a/src/pulsecore/svolume.orc
+++ b/src/pulsecore/svolume.orc
@@ -45,13 +45,15 @@
.function pa_volume_s16ne_orc_1ch
.dest 2 samples int16_t
-.param 4 v int32_t
+.param 4 vols int32_t
+.temp 4 v
.temp 2 vh
.temp 4 s
.temp 4 mh
.temp 4 ml
.temp 4 signc
+loadpl v, vols
convuwl s, samples
x2 cmpgtsw signc, 0, s
x2 andw signc, signc, v