WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-172767-20170531163051.patch (text/plain), 4.54 KB, created by
Caio Lima
on 2017-05-31 12:30:52 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Caio Lima
Created:
2017-05-31 12:30:52 PDT
Size:
4.54 KB
patch
obsolete
>Subversion Revision: 217610 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index d9f2c4feb04c0c9c3a2fe77acfa05e4e490d8031..a54aadf763ec617d7a79c75b1fb65969a6085519 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,27 @@ >+2017-05-31 Caio Lima <ticaiolima@gmail.com> >+ >+ [JSC][ARMv6] Fix ARMv6 JIT support >+ https://bugs.webkit.org/show_bug.cgi?id=172767 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ In this patch we are changing some JIT parts to compile to ARM6 >+ architecture. The changes were: >+ >+ - Memory fence support to ARMv6 >+ - Align configuration into code segments >+ - Updated calleeSaveRegisters list >+ >+ * assembler/ARMAssembler.h: >+ (JSC::ARMAssembler::memoryFence): >+ (JSC::ARMAssembler::dmbSY): Deleted. >+ * assembler/MacroAssemblerARM.cpp: >+ * assembler/MacroAssemblerARM.h: >+ (JSC::MacroAssemblerARM::memoryFence): >+ * jit/JITOperations.cpp: >+ * jit/RegisterSet.cpp: >+ (JSC::RegisterSet::calleeSaveRegisters): >+ > 2017-05-31 Keith Miller <keith_miller@apple.com> > > Fix leak in PromiseDeferredTimer >diff --git a/Source/JavaScriptCore/assembler/ARMAssembler.h b/Source/JavaScriptCore/assembler/ARMAssembler.h >index 91ce0b29da2de4e8a7ab8692eb2a887b919ba8a9..aad08111b556d92606be7a6c91582695f5bb144f 100644 >--- a/Source/JavaScriptCore/assembler/ARMAssembler.h >+++ b/Source/JavaScriptCore/assembler/ARMAssembler.h >@@ -213,6 +213,9 @@ namespace JSC { > #if WTF_ARM_ARCH_AT_LEAST(7) > MOVW = 0x03000000, > MOVT = 0x03400000, >+#else >+ // mcr 15, 0, r6, cr7, cr10, {5} >+ ARM6_MEMFENCE = 0xee076fba, > #endif > NOP = 0xe1a00000, > DMB_SY = 0xf57ff05f, >@@ -727,9 +730,13 @@ namespace JSC { > *ptr++ = insn; > } > >- void dmbSY() >+ void memoryFence() > { >+#if WTF_ARM_ARCH_AT_LEAST(7) > m_buffer.putInt(DMB_SY); >+#else >+ m_buffer.putInt(ARM6_MEMFENCE); >+#endif > } > > void dmbISHST() >diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp b/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp >index e509eb4555aa2a11170e311de36588621b12afe5..a362797ab4bd823ab456a06060c190b8a56158ab 100644 >--- a/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp >+++ b/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp >@@ -208,6 +208,7 @@ COMPILE_ASSERT(!(PROBE_ALIGNED_SIZE & 0xf), ProbeContext_aligned_size_offset_sho > > asm ( > ".text" "\n" >+ ".align 2" "\n" > ".globl " SYMBOL_STRING(ctiMasmProbeTrampoline) "\n" > HIDE_SYMBOL(ctiMasmProbeTrampoline) "\n" > INLINE_ARM_FUNCTION(ctiMasmProbeTrampoline) "\n" >diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARM.h b/Source/JavaScriptCore/assembler/MacroAssemblerARM.h >index dbe3c25c0218de3b8204a3c72e50d9faf9253cd0..20ab4b08fcb8fe187fa0a5a90ae1ef4713dac104 100644 >--- a/Source/JavaScriptCore/assembler/MacroAssemblerARM.h >+++ b/Source/JavaScriptCore/assembler/MacroAssemblerARM.h >@@ -1480,7 +1480,7 @@ public: > > void memoryFence() > { >- m_assembler.dmbSY(); >+ m_assembler.memoryFence(); > } > > void storeFence() >diff --git a/Source/JavaScriptCore/jit/JITOperations.cpp b/Source/JavaScriptCore/jit/JITOperations.cpp >index 4a4a2eb54e37dcb159b0c2e2adcb156cffe6ff8e..fd955367163789cad431446ee85c2a05b1ab4216 100644 >--- a/Source/JavaScriptCore/jit/JITOperations.cpp >+++ b/Source/JavaScriptCore/jit/JITOperations.cpp >@@ -2806,6 +2806,7 @@ SYMBOL_STRING(getHostCallReturnValue) ":" "\n" > #elif COMPILER(GCC_OR_CLANG) && CPU(ARM_TRADITIONAL) > asm ( > ".text" "\n" >+".align 2" "\n" > ".globl " SYMBOL_STRING(getHostCallReturnValue) "\n" > HIDE_SYMBOL(getHostCallReturnValue) "\n" > INLINE_ARM_FUNCTION(getHostCallReturnValue) >diff --git a/Source/JavaScriptCore/jit/RegisterSet.cpp b/Source/JavaScriptCore/jit/RegisterSet.cpp >index e6e7741cf60eedf5ac95c5c4fbc6218f4789e58c..514035af8459ad9ce78fce844364555daf248f49 100644 >--- a/Source/JavaScriptCore/jit/RegisterSet.cpp >+++ b/Source/JavaScriptCore/jit/RegisterSet.cpp >@@ -153,6 +153,14 @@ RegisterSet RegisterSet::calleeSaveRegisters() > reg = static_cast<ARM64Registers::FPRegisterID>(reg + 1)) > result.set(reg); > #elif CPU(MIPS) >+#elif CPU(ARM) >+ result.set(ARMRegisters::r4); >+ result.set(ARMRegisters::r5); >+ result.set(ARMRegisters::r6); >+ result.set(ARMRegisters::r7); >+ result.set(ARMRegisters::r8); >+ result.set(ARMRegisters::r9); >+ result.set(ARMRegisters::r10); > #else > UNREACHABLE_FOR_PLATFORM(); > #endif
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 172767
:
311619
|
314551