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
@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb,
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
@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64,
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
@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64,
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
@@ -601,8 +601,8 @@ void ScaleRowUp2_Bilinear_NEON(const uint8_t* src_ptr,
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
@@ -642,7 +642,7 @@ void ScaleRowUp2_Linear_12_NEON(const uint16_t* src_ptr,
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
@@ -679,7 +679,7 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr,
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
@@ -687,12 +687,12 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr,
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
@@ -887,8 +887,8 @@ void ScaleUVRowUp2_Bilinear_NEON(const uint8_t* src_ptr,
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