summaryrefslogtreecommitdiff
path: root/gst/volume/gstvolumeorc.orc
blob: bd2b6e46b0702a783209ac06d97b8f0086db35e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

.init gst_volume_orc_init

.function orc_scalarmultiply_f64_ns
.dest 8 d1 double
.floatparam 8 p1

muld d1, d1, p1

.function orc_scalarmultiply_f32_ns
.dest 4 d1 float
.floatparam 4 p1

mulf d1, d1, p1


.function orc_process_int16
.dest 2 d1 gint16
.param 2 p1
.temp 4 t1

mulswl t1, d1, p1
shrsl t1, t1, 13
convlw d1, t1


.function orc_process_int16_clamp
.dest 2 d1 gint16
.param 2 p1
.temp 4 t1

mulswl t1, d1, p1
shrsl t1, t1, 13
convssslw d1, t1


.function orc_process_int8
.dest 1 d1 gint8
.param 1 p1
.temp 2 t1

mulsbw t1, d1, p1
shrsw t1, t1, 5
convwb d1, t1


.function orc_process_int8_clamp
.dest 1 d1 gint8
.param 1 p1
.temp 2 t1

mulsbw t1, d1, p1
shrsw t1, t1, 5
convssswb d1, t1

.function orc_memset_f64
.dest 8 d1 gdouble
.floatparam 8 p1

copyq d1, p1

.function orc_prepare_volumes
.dest 8 d1 gdouble
.source 4 s1 gboolean
.temp 8 t1

convld t1, s1
subd t1, 0x3FF0000000000000L, t1
muld d1, d1, t1

.function orc_process_controlled_f64_1ch
.dest 8 d1 gdouble
.source 8 s1 gdouble

muld d1, d1, s1

.function orc_process_controlled_f32_1ch
.dest 4 d1 gfloat
.source 8 s1 gdouble
.temp 4 t1

convdf t1, s1
mulf d1, d1, t1

.function orc_process_controlled_f32_2ch
.dest 8 d1 gfloat
.source 8 s1 gdouble
.temp 4 t1
.temp 8 t2

convdf t1, s1
mergelq t2, t1, t1
x2 mulf d1, d1, t2