extra/webkitgtk fix

This commit is contained in:
Kevin Mihelich 2016-04-15 12:31:20 +00:00
parent 9dd417a0d1
commit 9f296f31cf
3 changed files with 2 additions and 193 deletions

View file

@ -1,74 +0,0 @@
Index: trunk/Source/WTF/wtf/Atomics.h
===================================================================
--- trunk/Source/WTF/wtf/Atomics.h (revision 166233)
+++ trunk/Source/WTF/wtf/Atomics.h (revision 166234)
@@ -105,20 +105,34 @@
"movw %1, #1\n\t"
"ldrex %2, %0\n\t"
"cmp %3, %2\n\t"
"bne.n 0f\n\t"
"strex %1, %4, %0\n\t"
"0:"
: "+Q"(*location), "=&r"(result), "=&r"(tmp)
: "r"(expected), "r"(newValue)
: "memory");
result = !result;
+#elif CPU(ARM64) && COMPILER(GCC)
+ unsigned tmp;
+ unsigned result;
+ asm volatile(
+ "mov %w1, #1\n\t"
+ "ldxr %w2, [%0]\n\t"
+ "cmp %w3, %w2\n\t"
+ "b.ne 0f\n\t"
+ "stxr %w1, %w4, [%0]\n\t"
+ "0:"
+ : "+r"(location), "=&r"(result), "=&r"(tmp)
+ : "r"(expected), "r"(newValue)
+ : "memory");
+ result = !result;
#elif CPU(ARM64)
unsigned tmp;
unsigned result;
asm volatile(
"mov %w1, #1\n\t"
"ldxr %w2, %0\n\t"
"cmp %w3, %w2\n\t"
"b.ne 0f\n\t"
"stxr %w1, %w4, %0\n\t"
"0:"
@@ -145,20 +159,34 @@
#if CPU(X86_64)
bool result;
asm volatile(
"lock; cmpxchgq %3, %2\n\t"
"sete %1"
: "+a"(expected), "=q"(result), "+m"(*location)
: "r"(newValue)
: "memory"
);
return result;
+#elif CPU(ARM64) && COMPILER(GCC)
+ bool result;
+ void* tmp;
+ asm volatile(
+ "mov %w1, #1\n\t"
+ "ldxr %x2, [%0]\n\t"
+ "cmp %x3, %x2\n\t"
+ "b.ne 0f\n\t"
+ "stxr %w1, %x4, [%0]\n\t"
+ "0:"
+ : "+r"(location), "=&r"(result), "=&r"(tmp)
+ : "r"(expected), "r"(newValue)
+ : "memory");
+ return !result;
#elif CPU(ARM64)
bool result;
void* tmp;
asm volatile(
"mov %w1, #1\n\t"
"ldxr %x2, %0\n\t"
"cmp %x3, %x2\n\t"
"b.ne 0f\n\t"
"stxr %w1, %x4, %0\n\t"
"0:"

View file

@ -1,111 +0,0 @@
Index: trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp
===================================================================
--- trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp (revision 165676)
+++ trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp (revision 166233)
@@ -1041,59 +1041,59 @@
asm volatile (
// First, load the leftMatrix completely in memory. The leftMatrix is in v16-v23.
- "mov x4, %[leftMatrix]\n\t"
- "ld1.2d {v16, v17, v18, v19}, [%[leftMatrix]], #64\n\t"
- "ld1.2d {v20, v21, v22, v23}, [%[leftMatrix]]\n\t"
+ "mov x4, %[leftMatrix]\n\t"
+ "ld1 {v16.2d, v17.2d, v18.2d, v19.2d}, [%[leftMatrix]], #64\n\t"
+ "ld1 {v20.2d, v21.2d, v22.2d, v23.2d}, [%[leftMatrix]]\n\t"
// First row.
- "ld4r.2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t"
- "fmul.2d v28, v24, v16\n\t"
- "fmul.2d v29, v24, v17\n\t"
- "fmla.2d v28, v25, v18\n\t"
- "fmla.2d v29, v25, v19\n\t"
- "fmla.2d v28, v26, v20\n\t"
- "fmla.2d v29, v26, v21\n\t"
- "fmla.2d v28, v27, v22\n\t"
- "fmla.2d v29, v27, v23\n\t"
-
- "ld4r.2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t"
- "st1.2d {v28, v29}, [x4], #32\n\t"
+ "ld4r {v24.2d, v25.2d, v26.2d, v27.2d}, [%[rightMatrix]], #32\n\t"
+ "fmul v28.2d, v24.2d, v16.2d\n\t"
+ "fmul v29.2d, v24.2d, v17.2d\n\t"
+ "fmla v28.2d, v25.2d, v18.2d\n\t"
+ "fmla v29.2d, v25.2d, v19.2d\n\t"
+ "fmla v28.2d, v26.2d, v20.2d\n\t"
+ "fmla v29.2d, v26.2d, v21.2d\n\t"
+ "fmla v28.2d, v27.2d, v22.2d\n\t"
+ "fmla v29.2d, v27.2d, v23.2d\n\t"
+
+ "ld4r {v0.2d, v1.2d, v2.2d, v3.2d}, [%[rightMatrix]], #32\n\t"
+ "st1 {v28.2d, v29.2d}, [x4], #32\n\t"
// Second row.
- "fmul.2d v30, v0, v16\n\t"
- "fmul.2d v31, v0, v17\n\t"
- "fmla.2d v30, v1, v18\n\t"
- "fmla.2d v31, v1, v19\n\t"
- "fmla.2d v30, v2, v20\n\t"
- "fmla.2d v31, v2, v21\n\t"
- "fmla.2d v30, v3, v22\n\t"
- "fmla.2d v31, v3, v23\n\t"
-
- "ld4r.2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t"
- "st1.2d {v30, v31}, [x4], #32\n\t"
+ "fmul v30.2d, v0.2d, v16.2d\n\t"
+ "fmul v31.2d, v0.2d, v17.2d\n\t"
+ "fmla v30.2d, v1.2d, v18.2d\n\t"
+ "fmla v31.2d, v1.2d, v19.2d\n\t"
+ "fmla v30.2d, v2.2d, v20.2d\n\t"
+ "fmla v31.2d, v2.2d, v21.2d\n\t"
+ "fmla v30.2d, v3.2d, v22.2d\n\t"
+ "fmla v31.2d, v3.2d, v23.2d\n\t"
+
+ "ld4r {v24.2d, v25.2d, v26.2d, v27.2d}, [%[rightMatrix]], #32\n\t"
+ "st1 {v30.2d, v31.2d}, [x4], #32\n\t"
// Third row.
- "fmul.2d v28, v24, v16\n\t"
- "fmul.2d v29, v24, v17\n\t"
- "fmla.2d v28, v25, v18\n\t"
- "fmla.2d v29, v25, v19\n\t"
- "fmla.2d v28, v26, v20\n\t"
- "fmla.2d v29, v26, v21\n\t"
- "fmla.2d v28, v27, v22\n\t"
- "fmla.2d v29, v27, v23\n\t"
-
- "ld4r.2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t"
- "st1.2d {v28, v29}, [x4], #32\n\t"
+ "fmul v28.2d, v24.2d, v16.2d\n\t"
+ "fmul v29.2d, v24.2d, v17.2d\n\t"
+ "fmla v28.2d, v25.2d, v18.2d\n\t"
+ "fmla v29.2d, v25.2d, v19.2d\n\t"
+ "fmla v28.2d, v26.2d, v20.2d\n\t"
+ "fmla v29.2d, v26.2d, v21.2d\n\t"
+ "fmla v28.2d, v27.2d, v22.2d\n\t"
+ "fmla v29.2d, v27.2d, v23.2d\n\t"
+
+ "ld4r {v0.2d, v1.2d, v2.2d, v3.2d}, [%[rightMatrix]], #32\n\t"
+ "st1 {v28.2d, v29.2d}, [x4], #32\n\t"
// Fourth row.
- "fmul.2d v30, v0, v16\n\t"
- "fmul.2d v31, v0, v17\n\t"
- "fmla.2d v30, v1, v18\n\t"
- "fmla.2d v31, v1, v19\n\t"
- "fmla.2d v30, v2, v20\n\t"
- "fmla.2d v31, v2, v21\n\t"
- "fmla.2d v30, v3, v22\n\t"
- "fmla.2d v31, v3, v23\n\t"
-
- "st1.2d {v30, v31}, [x4]\n\t"
+ "fmul v30.2d, v0.2d, v16.2d\n\t"
+ "fmul v31.2d, v0.2d, v17.2d\n\t"
+ "fmla v30.2d, v1.2d, v18.2d\n\t"
+ "fmla v31.2d, v1.2d, v19.2d\n\t"
+ "fmla v30.2d, v2.2d, v20.2d\n\t"
+ "fmla v31.2d, v2.2d, v21.2d\n\t"
+ "fmla v30.2d, v3.2d, v22.2d\n\t"
+ "fmla v31.2d, v3.2d, v23.2d\n\t"
+
+ "st1 {v30.2d, v31.2d}, [x4]\n\t"
: [leftMatrix]"+r"(leftMatrix), [rightMatrix]"+r"(rightMatrix)

View file

@ -23,12 +23,8 @@ optdepends=('gst-plugins-base: free media decoding'
'gst-plugins-good: media decoding'
'gst-libav: nonfree media decoding')
options=(!emptydirs)
source=(http://webkitgtk.org/releases/$pkgbase-${pkgver}.tar.xz
ARM64-GCC-generates-wrong-code-with-O2-flag-in-WTF-weakCompareAndSwap.patch
ARM64-GNU-assembler-fails-in-TransformationMatrix-multiply.patch)
sha256sums=('588aea051bfbacced27fdfe0335a957dca839ebe36aa548df39c7bbafdb65bf7'
'9313e66470e502bc3f2152ec00d8ef7d7c637dcc087b29e124b89ce92d8e28ce'
'2b1bbe3b3106c414085f98c5447e9555d9323b5aa388216df08cb5fadf041b1d')
source=(http://webkitgtk.org/releases/$pkgbase-${pkgver}.tar.xz)
sha256sums=('588aea051bfbacced27fdfe0335a957dca839ebe36aa548df39c7bbafdb65bf7')
prepare() {
mkdir build-gtk{,2} path
@ -37,8 +33,6 @@ prepare() {
# AArch64 fixes
cd $pkgbase-$pkgver
if [[ $CARCH == "aarch64" ]]; then
patch -p1 -i ../ARM64-GCC-generates-wrong-code-with-O2-flag-in-WTF-weakCompareAndSwap.patch
patch -p1 -i ../ARM64-GNU-assembler-fails-in-TransformationMatrix-multiply.patch
CFLAGS+=" -DENABLE_YARR_JIT=0"
CXXFLAGS+=" -DENABLE_YARR_JIT=0"
fi