File chromium-91-libyuv-aarch64.patch of Package chromium-ffmpeg-extra (Revision 4407c879c2f3d7778ebd138b74f5810a)
Currently displaying revision 4407c879c2f3d7778ebd138b74f5810a , Show latest
92
1
diff --git a/third_party/libyuv/source/row_neon64.cc b/third_party/libyuv/source/row_neon64.cc
2
index 350c964..2aab413 100644
3
--- a/third_party/libyuv/source/row_neon64.cc
4
+++ b/third_party/libyuv/source/row_neon64.cc
5
6
: "+r"(src_argb), // %0
7
"+r"(dst_ab64), // %1
8
"+r"(width) // %2
9
- : "m"(kShuffleARGBToABGR) // %3
10
+ : "Q"(kShuffleARGBToABGR) // %3
11
: "cc", "memory", "v0", "v1", "v2", "v3", "v4");
12
}
13
14
15
: "+r"(src_ar64), // %0
16
"+r"(dst_argb), // %1
17
"+r"(width) // %2
18
- : "m"(kShuffleAR64ToARGB) // %3
19
+ : "Q"(kShuffleAR64ToARGB) // %3
20
: "cc", "memory", "v0", "v1", "v2", "v3", "v4");
21
}
22
23
24
: "+r"(src_ab64), // %0
25
"+r"(dst_argb), // %1
26
"+r"(width) // %2
27
- : "m"(kShuffleAB64ToARGB) // %3
28
+ : "Q"(kShuffleAB64ToARGB) // %3
29
: "cc", "memory", "v0", "v1", "v2", "v3", "v4");
30
}
31
32
diff --git a/third_party/libyuv/source/scale_neon64.cc b/third_party/libyuv/source/scale_neon64.cc
33
index 8656fec..9f9636e 100644
34
--- a/third_party/libyuv/source/scale_neon64.cc
35
+++ b/third_party/libyuv/source/scale_neon64.cc
36
37
"umlal v4.8h, v1.8b, v31.8b \n" // 3*near+far (2, odd)
38
"umlal v5.8h, v0.8b, v31.8b \n" // 3*near+far (2, even)
39
40
- "mov v0.8h, v4.8h \n"
41
- "mov v1.8h, v5.8h \n"
42
+ "mov v0.16b, v4.16b \n"
43
+ "mov v1.16b, v5.16b \n"
44
"mla v4.8h, v2.8h, v30.8h \n" // 9 3 3 1 (1, odd)
45
"mla v5.8h, v3.8h, v30.8h \n" // 9 3 3 1 (1, even)
46
"mla v2.8h, v0.8h, v30.8h \n" // 9 3 3 1 (2, odd)
47
48
"ld1 {v1.8h}, [%1], #16 \n" // 12345678 (16b)
49
"prfm pldl1keep, [%0, 448] \n" // prefetch 7 lines ahead
50
51
- "mov v2.8h, v0.8h \n"
52
+ "mov v2.16b, v0.16b \n"
53
"mla v0.8h, v1.8h, v31.8h \n" // 3*near+far (odd)
54
"mla v1.8h, v2.8h, v31.8h \n" // 3*near+far (even)
55
56
57
"ld1 {v3.8h}, [%2], #16 \n" // 12345678 (16b)
58
"prfm pldl1keep, [%0, 448] \n" // prefetch 7 lines ahead
59
60
- "mov v0.8h, v2.8h \n"
61
+ "mov v0.16b, v2.16b \n"
62
"mla v2.8h, v3.8h, v31.8h \n" // 3*near+far (odd)
63
"mla v3.8h, v0.8h, v31.8h \n" // 3*near+far (even)
64
65
66
"ld1 {v5.8h}, [%3], #16 \n" // 12345678 (16b)
67
"prfm pldl1keep, [%1, 448] \n" // prefetch 7 lines ahead
68
69
- "mov v0.8h, v4.8h \n"
70
+ "mov v0.16b, v4.16b \n"
71
"mla v4.8h, v5.8h, v31.8h \n" // 3*near+far (odd)
72
"mla v5.8h, v0.8h, v31.8h \n" // 3*near+far (even)
73
74
- "mov v0.8h, v4.8h \n"
75
- "mov v1.8h, v5.8h \n"
76
+ "mov v0.16b, v4.16b \n"
77
+ "mov v1.16b, v5.16b \n"
78
"mla v4.8h, v2.8h, v31.8h \n" // 9 3 3 1 (1, odd)
79
"mla v5.8h, v3.8h, v31.8h \n" // 9 3 3 1 (1, even)
80
"mla v2.8h, v0.8h, v31.8h \n" // 9 3 3 1 (2, odd)
81
82
"umlal v4.8h, v1.8b, v31.8b \n" // 3*near+far (2, odd)
83
"umlal v5.8h, v0.8b, v31.8b \n" // 3*near+far (2, even)
84
85
- "mov v0.8h, v4.8h \n"
86
- "mov v1.8h, v5.8h \n"
87
+ "mov v0.16b, v4.16b \n"
88
+ "mov v1.16b, v5.16b \n"
89
"mla v4.8h, v2.8h, v30.8h \n" // 9 3 3 1 (1, odd)
90
"mla v5.8h, v3.8h, v30.8h \n" // 9 3 3 1 (1, even)
91
"mla v2.8h, v0.8h, v30.8h \n" // 9 3 3 1 (2, odd)
92