Changeset 172863 in webkit


Ignore:
Timestamp:
Aug 22, 2014 11:59:49 AM (10 years ago)
Author:
commit-queue@webkit.org
Message:

Enable fixed executable allocator for any ARM64 target.
https://bugs.webkit.org/show_bug.cgi?id=136162

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-08-22
Reviewed by Michael Saboff.

The ARM64 macro assembler relies on near calls being implemented by BL
instructions, which have only 128MB offset range from PC. The
on-demand executable allocator cannot ensure that any two locations in
memory allocated for the JIT-compiled code are within this range.
However, the fixed executable allocator has a fixed 16MB memory pool for
ARM64.

  • wtf/Platform.h:

Define ENABLE_EXECUTABLE_ALLOCATOR_FIXED if CPU(ARM64), and update
attached comment.

Location:
trunk/Source/WTF
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r172862 r172863  
     12014-08-22  Akos Kiss  <akiss@inf.u-szeged.hu>
     2
     3        Enable fixed executable allocator for any ARM64 target.
     4        https://bugs.webkit.org/show_bug.cgi?id=136162
     5
     6        Reviewed by Michael Saboff.
     7
     8        The ARM64 macro assembler relies on near calls being implemented by BL
     9        instructions, which have only 128MB offset range from PC. The
     10        on-demand executable allocator cannot ensure that any two locations in
     11        memory allocated for the JIT-compiled code are within this range.
     12        However, the fixed executable allocator has a fixed 16MB memory pool for
     13        ARM64.
     14
     15        * wtf/Platform.h:
     16        Define ENABLE_EXECUTABLE_ALLOCATOR_FIXED if CPU(ARM64), and update
     17        attached comment.
     18
    1192014-08-22  Commit Queue  <commit-queue@webkit.org>
    220
  • trunk/Source/WTF/wtf/Platform.h

    r172799 r172863  
    821821
    822822/* Pick which allocator to use; we only need an executable allocator if the assembler is compiled in.
    823    On x86-64 we use a single fixed mmap, on other platforms we mmap on demand. */
     823   On non-Windows x86-64, iOS, and ARM64 we use a single fixed mmap, on other platforms we mmap on demand. */
    824824#if ENABLE(ASSEMBLER)
    825 #if CPU(X86_64) && !OS(WINDOWS) || PLATFORM(IOS)
     825#if CPU(X86_64) && !OS(WINDOWS) || PLATFORM(IOS) || CPU(ARM64)
    826826#define ENABLE_EXECUTABLE_ALLOCATOR_FIXED 1
    827827#else
Note: See TracChangeset for help on using the changeset viewer.