Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.1:Update
webkitgtk
webkitgtk-aarch64.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File webkitgtk-aarch64.patch of Package webkitgtk
Index: webkitgtk-2.4.9/Source/JavaScriptCore/assembler/ARM64Assembler.h =================================================================== --- webkitgtk-2.4.9.orig/Source/JavaScriptCore/assembler/ARM64Assembler.h +++ webkitgtk-2.4.9/Source/JavaScriptCore/assembler/ARM64Assembler.h @@ -29,6 +29,7 @@ #if ENABLE(ASSEMBLER) && CPU(ARM64) #include "AssemblerBuffer.h" +#include <limits.h> #include <wtf/Assertions.h> #include <wtf/Vector.h> #include <stdint.h> @@ -583,9 +584,9 @@ public: JumpType m_type : 8; JumpLinkType m_linkType : 8; Condition m_condition : 4; - bool m_is64Bit : 1; unsigned m_bitNumber : 6; - RegisterID m_compareRegister : 5; + RegisterID m_compareRegister : 6; + bool m_is64Bit : 1; } realTypes; struct CopyTypes { uint64_t content[3]; @@ -2752,10 +2753,34 @@ public: unsigned debugOffset() { return m_buffer.debugOffset(); } +#if OS(LINUX) && COMPILER(GCC) + static inline void linuxPageFlush(uintptr_t begin, uintptr_t end) + { + __builtin___clear_cache(reinterpret_cast<void*>(begin), reinterpret_cast<void*>(end)); + } +#endif + static void cacheFlush(void* code, size_t size) { #if OS(IOS) sys_cache_control(kCacheFunctionPrepareForExecution, code, size); +#elif OS(LINUX) + size_t page = pageSize(); + uintptr_t current = reinterpret_cast<uintptr_t>(code); + uintptr_t end = current + size; + uintptr_t firstPageEnd = (current & ~(page - 1)) + page; + + if (end <= firstPageEnd) { + linuxPageFlush(current, end); + return; + } + + linuxPageFlush(current, firstPageEnd); + + for (current = firstPageEnd; current + page < end; current += page) + linuxPageFlush(current, current + page); + + linuxPageFlush(current, end); #else #error "The cacheFlush support is missing on this platform." #endif Index: webkitgtk-2.4.9/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h =================================================================== --- webkitgtk-2.4.9.orig/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h +++ webkitgtk-2.4.9/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h @@ -130,7 +130,6 @@ public: // FIXME: Get reasonable implementations for these static bool shouldBlindForSpecificArch(uint32_t value) { return value >= 0x00ffffff; } static bool shouldBlindForSpecificArch(uint64_t value) { return value >= 0x00ffffff; } - static bool shouldBlindForSpecificArch(uintptr_t value) { return value >= 0x00ffffff; } // Integer operations: Index: webkitgtk-2.4.9/Source/JavaScriptCore/offlineasm/arm64.rb =================================================================== --- webkitgtk-2.4.9.orig/Source/JavaScriptCore/offlineasm/arm64.rb +++ webkitgtk-2.4.9/Source/JavaScriptCore/offlineasm/arm64.rb @@ -127,7 +127,7 @@ class RegisterID when 'sp' 'sp' when 'lr' - 'lr' + 'x30' else raise "Bad register name #{@name} at #{codeOriginString}" end @@ -585,9 +585,9 @@ class Instruction $asm.puts "stp #{ops[0].arm64Operand(:ptr)}, #{ops[1].arm64Operand(:ptr)}, [sp, #-16]!" } when "popLRAndFP" - $asm.puts "ldp fp, lr, [sp], #16" + $asm.puts "ldp x29, x30, [sp], #16" when "pushLRAndFP" - $asm.puts "stp fp, lr, [sp, #-16]!" + $asm.puts "stp x29, x30, [sp, #-16]!" when "popCalleeSaves" $asm.puts "ldp x28, x27, [sp], #16" $asm.puts "ldp x26, x25, [sp], #16" @@ -607,13 +607,13 @@ class Instruction emitARM64("mov", operands, :ptr) end when "sxi2p" - emitARM64("sxtw", operands, :ptr) + emitARM64("sxtw", operands, [:int, :ptr]) when "sxi2q" - emitARM64("sxtw", operands, :ptr) + emitARM64("sxtw", operands, [:int, :ptr]) when "zxi2p" - emitARM64("uxtw", operands, :ptr) + emitARM64("uxtw", operands, [:int, :ptr]) when "zxi2q" - emitARM64("uxtw", operands, :ptr) + emitARM64("uxtw", operands, [:int, :ptr]) when "nop" $asm.puts "nop" when "bieq", "bbeq" Index: webkitgtk-2.4.9/Source/WTF/wtf/Atomics.h =================================================================== --- webkitgtk-2.4.9.orig/Source/WTF/wtf/Atomics.h +++ webkitgtk-2.4.9/Source/WTF/wtf/Atomics.h @@ -123,7 +123,7 @@ inline bool weakCompareAndSwap(volatile "b.ne 0f\n\t" "stxr %w1, %w4, %0\n\t" "0:" - : "+m"(*location), "=&r"(result), "=&r"(tmp) + : "+Q"(*location), "=&r"(result), "=&r"(tmp) : "r"(expected), "r"(newValue) : "memory"); result = !result; @@ -163,7 +163,7 @@ inline bool weakCompareAndSwap(void*vola "b.ne 0f\n\t" "stxr %w1, %x4, %0\n\t" "0:" - : "+m"(*location), "=&r"(result), "=&r"(tmp) + : "+Q"(*location), "=&r"(result), "=&r"(tmp) : "r"(expected), "r"(newValue) : "memory"); return !result; Index: webkitgtk-2.4.9/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp =================================================================== --- webkitgtk-2.4.9.orig/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp +++ webkitgtk-2.4.9/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp @@ -1040,61 +1040,61 @@ TransformationMatrix& TransformationMatr const double* rightMatrix = &(mat.m_matrix[0][0]); 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 {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.2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t" - "st1.2d {v28, v29}, [x4], #32\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" + "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.2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t" - "st1.2d {v30, v31}, [x4], #32\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" + "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.2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t" - "st1.2d {v28, v29}, [x4], #32\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" + "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.2d {v30, v31}, [x4]\n\t" + "st1 {v30.2d, v31.2d}, [x4]\n\t" : [leftMatrix]"+r"(leftMatrix), [rightMatrix]"+r"(rightMatrix) :
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor