Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:napobear
webkitgtk
webkitgtk-aarch64.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File webkitgtk-aarch64.patch of Package webkitgtk
Index: webkitgtk-2.4.10/Source/JavaScriptCore/assembler/ARM64Assembler.h =================================================================== --- webkitgtk-2.4.10.orig/Source/JavaScriptCore/assembler/ARM64Assembler.h +++ webkitgtk-2.4.10/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.10/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h =================================================================== --- webkitgtk-2.4.10.orig/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h +++ webkitgtk-2.4.10/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.10/Source/JavaScriptCore/offlineasm/arm64.rb =================================================================== --- webkitgtk-2.4.10.orig/Source/JavaScriptCore/offlineasm/arm64.rb +++ webkitgtk-2.4.10/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.10/Source/WTF/wtf/Atomics.h =================================================================== --- webkitgtk-2.4.10.orig/Source/WTF/wtf/Atomics.h +++ webkitgtk-2.4.10/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;
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