svolume.orc: avoid parameter loading undefined behaviour
authorWim Taymans <wim.taymans@gmail.com>
Wed, 7 Jan 2015 10:20:01 +0000 (11:20 +0100)
committerArun Raghavan <git@arunraghavan.net>
Mon, 12 Jan 2015 08:26:29 +0000 (13:56 +0530)
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

src/pulsecore/svolume.orc

index 0edbefb..f869893 100644 (file)
 
 .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