mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-08 13:18:52 +00:00
The compiler will generate a hashtable from the switch-case, and we need to call functions explicitely for the volume!=1.0 cases anyway.
247 lines
3.2 KiB
Text
247 lines
3.2 KiB
Text
.function adder_orc_add_s32
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 gint32
|
|
|
|
addssl d1, d1, s1
|
|
|
|
|
|
.function adder_orc_add_s16
|
|
.dest 2 d1 gint16
|
|
.source 2 s1 gint16
|
|
|
|
addssw d1, d1, s1
|
|
|
|
|
|
.function adder_orc_add_s8
|
|
.dest 1 d1 gint8
|
|
.source 1 s1 gint8
|
|
|
|
addssb d1, d1, s1
|
|
|
|
|
|
.function adder_orc_add_u32
|
|
.dest 4 d1 guint32
|
|
.source 4 s1 guint32
|
|
|
|
addusl d1, d1, s1
|
|
|
|
|
|
.function adder_orc_add_u16
|
|
.dest 2 d1 guint16
|
|
.source 2 s1 guint16
|
|
|
|
addusw d1, d1, s1
|
|
|
|
|
|
.function adder_orc_add_u8
|
|
.dest 1 d1 guint8
|
|
.source 1 s1 guint8
|
|
|
|
addusb d1, d1, s1
|
|
|
|
|
|
.function adder_orc_add_f32
|
|
.dest 4 d1 float
|
|
.source 4 s1 float
|
|
|
|
addf d1, d1, s1
|
|
|
|
.function adder_orc_add_f64
|
|
.dest 8 d1 double
|
|
.source 8 s1 double
|
|
|
|
addd d1, d1, s1
|
|
|
|
|
|
.function adder_orc_volume_u8
|
|
.dest 1 d1 guint8
|
|
.param 1 p1
|
|
.const 1 c1 0x80
|
|
.temp 2 t1
|
|
.temp 1 t2
|
|
|
|
xorb t2, d1, c1
|
|
mulsbw t1, t2, p1
|
|
shrsw t1, t1, 3
|
|
convssswb t2, t1
|
|
xorb d1, t2, c1
|
|
|
|
|
|
.function adder_orc_volume_s8
|
|
.dest 1 d1 gint8
|
|
.param 1 p1
|
|
.temp 2 t1
|
|
|
|
mulsbw t1, d1, p1
|
|
shrsw t1, t1, 3
|
|
convssswb d1, t1
|
|
|
|
|
|
.function adder_orc_volume_u16
|
|
.dest 2 d1 guint16
|
|
.param 2 p1
|
|
.const 2 c1 0x8000
|
|
.temp 4 t1
|
|
.temp 2 t2
|
|
|
|
xorw t2, d1, c1
|
|
mulswl t1, t2, p1
|
|
shrsl t1, t1, 11
|
|
convssslw t2, t1
|
|
xorw d1, t2, c1
|
|
|
|
|
|
.function adder_orc_volume_s16
|
|
.dest 2 d1 gint16
|
|
.param 2 p1
|
|
.temp 4 t1
|
|
|
|
mulswl t1, d1, p1
|
|
shrsl t1, t1, 11
|
|
convssslw d1, t1
|
|
|
|
|
|
.function adder_orc_volume_u32
|
|
.dest 4 d1 guint32
|
|
.param 4 p1
|
|
.const 4 c1 0x80000000
|
|
.temp 8 t1
|
|
.temp 4 t2
|
|
|
|
xorl t2, d1, c1
|
|
mulslq t1, t2, p1
|
|
shrsq t1, t1, 27
|
|
convsssql t2, t1
|
|
xorl d1, t2, c1
|
|
|
|
|
|
.function adder_orc_volume_s32
|
|
.dest 4 d1 gint32
|
|
.param 4 p1
|
|
.temp 8 t1
|
|
|
|
mulslq t1, d1, p1
|
|
shrsq t1, t1, 27
|
|
convsssql d1, t1
|
|
|
|
.function adder_orc_volume_f32
|
|
.dest 4 d1 float
|
|
.floatparam 4 p1
|
|
|
|
mulf d1, d1, p1
|
|
|
|
|
|
.function adder_orc_volume_f64
|
|
.dest 8 d1 double
|
|
.doubleparam 8 p1
|
|
|
|
muld d1, d1, p1
|
|
|
|
|
|
.function adder_orc_add_volume_u8
|
|
.dest 1 d1 guint8
|
|
.source 1 s1 guint8
|
|
.param 1 p1
|
|
.const 1 c1 0x80
|
|
.temp 2 t1
|
|
.temp 1 t2
|
|
|
|
xorb t2, s1, c1
|
|
mulsbw t1, t2, p1
|
|
shrsw t1, t1, 3
|
|
convssswb t2, t1
|
|
xorb t2, t2, c1
|
|
addusb d1, d1, t2
|
|
|
|
|
|
.function adder_orc_add_volume_s8
|
|
.dest 1 d1 gint8
|
|
.source 1 s1 gint8
|
|
.param 1 p1
|
|
.temp 2 t1
|
|
.temp 1 t2
|
|
|
|
mulsbw t1, s1, p1
|
|
shrsw t1, t1, 3
|
|
convssswb t2, t1
|
|
addssb d1, d1, t2
|
|
|
|
|
|
.function adder_orc_add_volume_u16
|
|
.dest 2 d1 guint16
|
|
.source 2 s1 guint16
|
|
.param 2 p1
|
|
.const 2 c1 0x8000
|
|
.temp 4 t1
|
|
.temp 2 t2
|
|
|
|
xorw t2, s1, c1
|
|
mulswl t1, t2, p1
|
|
shrsl t1, t1, 11
|
|
convssslw t2, t1
|
|
xorw t2, t2, c1
|
|
addusw d1, d1, t2
|
|
|
|
|
|
.function adder_orc_add_volume_s16
|
|
.dest 2 d1 gint16
|
|
.source 2 s1 gint16
|
|
.param 2 p1
|
|
.temp 4 t1
|
|
.temp 2 t2
|
|
|
|
mulswl t1, s1, p1
|
|
shrsl t1, t1, 11
|
|
convssslw t2, t1
|
|
addssw d1, d1, t2
|
|
|
|
|
|
.function adder_orc_add_volume_u32
|
|
.dest 4 d1 guint32
|
|
.source 4 s1 guint32
|
|
.param 4 p1
|
|
.const 4 c1 0x80000000
|
|
.temp 8 t1
|
|
.temp 4 t2
|
|
|
|
xorl t2, s1, c1
|
|
mulslq t1, t2, p1
|
|
shrsq t1, t1, 27
|
|
convsssql t2, t1
|
|
xorl t2, t2, c1
|
|
addusl d1, d1, t2
|
|
|
|
|
|
.function adder_orc_add_volume_s32
|
|
.dest 4 d1 gint32
|
|
.source 4 s1 gint32
|
|
.param 4 p1
|
|
.temp 8 t1
|
|
.temp 4 t2
|
|
|
|
mulslq t1, s1, p1
|
|
shrsq t1, t1, 27
|
|
convsssql t2, t1
|
|
addssl d1, d1, t2
|
|
|
|
|
|
.function adder_orc_add_volume_f32
|
|
.dest 4 d1 float
|
|
.source 4 s1 float
|
|
.floatparam 4 p1
|
|
.temp 4 t1
|
|
|
|
mulf t1, s1, p1
|
|
addf d1, d1, t1
|
|
|
|
|
|
.function adder_orc_add_volume_f64
|
|
.dest 8 d1 double
|
|
.source 8 s1 double
|
|
.doubleparam 8 p1
|
|
.temp 8 t1
|
|
|
|
muld t1, s1, p1
|
|
addd d1, d1, t1
|
|
|
|
|