<rdar://problem/6309878> Need more granular control over allocation of executable...
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 7 Dec 2008 23:55:04 +0000 (23:55 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 7 Dec 2008 23:55:04 +0000 (23:55 +0000)
commit27e032cc83dd5278542456ffc4eb57af6942096b
tree2575cbe0b8e8e2b278f3726fed0a59238c258978
parente5c8edb2323adff19e0625a9c97b802e6181103c
<rdar://problem/6309878> Need more granular control over allocation of executable memory (21783)
<https://bugs.webkit.org/show_bug.cgi?id=21783>

Reviewed by Cameron Zwarich and Sam Weinig

Add a new allocator for use by the JIT that provides executable pages, so
we can get rid of the current hack that makes the entire heap executable.

1-2% progression on SunSpider-v8, 1% on SunSpider.  Reduces memory usage as well!

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39083 268f45cc-cd09-0410-ab3c-d52691b4dbfc
31 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj
JavaScriptCore/JavaScriptCore.vcproj/jsc/jsc.vcproj
JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
JavaScriptCore/assembler/AssemblerBuffer.h
JavaScriptCore/assembler/MacroAssembler.h
JavaScriptCore/assembler/X86Assembler.h
JavaScriptCore/bytecode/CodeBlock.cpp
JavaScriptCore/bytecode/CodeBlock.h
JavaScriptCore/bytecode/Instruction.h
JavaScriptCore/interpreter/Interpreter.cpp
JavaScriptCore/interpreter/Interpreter.h
JavaScriptCore/jit/ExecutableAllocator.cpp [new file with mode: 0644]
JavaScriptCore/jit/ExecutableAllocator.h [new file with mode: 0644]
JavaScriptCore/jit/ExecutableAllocatorMMAP.cpp [new file with mode: 0644]
JavaScriptCore/jit/ExecutableAllocatorWin.cpp [new file with mode: 0644]
JavaScriptCore/jit/JIT.cpp
JavaScriptCore/jit/JIT.h
JavaScriptCore/jit/JITPropertyAccess.cpp
JavaScriptCore/parser/Nodes.cpp
JavaScriptCore/runtime/JSGlobalData.h
JavaScriptCore/runtime/RegExp.cpp
JavaScriptCore/runtime/RegExp.h
JavaScriptCore/runtime/RegExpConstructor.cpp
JavaScriptCore/runtime/RegExpPrototype.cpp
JavaScriptCore/runtime/StringPrototype.cpp
JavaScriptCore/wrec/WREC.cpp
JavaScriptCore/wrec/WRECGenerator.h
JavaScriptCore/wtf/FastMalloc.cpp
JavaScriptCore/wtf/FastMalloc.h
JavaScriptCore/wtf/TCSystemAlloc.cpp