Bug 29946 - [Qt] Port YARR JIT for Symbian (implement ExecutableAllocator)
Summary: [Qt] Port YARR JIT for Symbian (implement ExecutableAllocator)
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC S60 3rd edition
: P2 Normal
Assignee: Nobody
Keywords: Qt
Depends on:
Blocks: 27065
  Show dependency treegraph
Reported: 2009-09-30 18:59 PDT by Laszlo Gombos
Modified: 2009-10-16 09:03 PDT (History)
1 user (show)

See Also:

First try (4.52 KB, patch)
2009-09-30 19:20 PDT, Laszlo Gombos
no flags Details | Formatted Diff | Diff
Implement ExecutableAllocator (4.52 KB, patch)
2009-10-09 20:00 PDT, Laszlo Gombos
no flags Details | Formatted Diff | Diff
Implement ExecutableAllocator - II. (4.21 KB, patch)
2009-10-09 20:02 PDT, Laszlo Gombos
no flags Details | Formatted Diff | Diff
ExecutableAllocator III. (4.36 KB, patch)
2009-10-15 00:17 PDT, Laszlo Gombos
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Laszlo Gombos 2009-09-30 18:59:31 PDT
YARR JIT is currently not enabled for Symbian. This bug is to track the work of enabling it for Symbian. The scope of this bug does not include enabling JIT - that should be tracked as a separate bug.
Comment 1 Laszlo Gombos 2009-09-30 19:20:08 PDT
Created attachment 40416 [details]
First try

Implements ExecutableAllocator for Symbian and turns on YARR JIT.

I did not set the review flag yet as it needs more testing; but I wanted to share the code.
Comment 2 Laszlo Gombos 2009-10-09 20:00:10 PDT
Created attachment 40981 [details]
Implement ExecutableAllocator

Tested in an ARMv5 arch configuration. Increased the pageSize for ARMv5 (and less) to decrease the number of Symbian chunks.

On the Sunspider Regexp test (http://www2.webkit.org/perf/sunspider-0.9/regexp-dna.html) saw ~11 times performance improvement (from 5170 ms to 465 ms).
Comment 3 Laszlo Gombos 2009-10-09 20:02:10 PDT
Created attachment 40982 [details]
Implement ExecutableAllocator - II.

Uploaded the old patch by mistake - this time upload the new patch that is up for review.
Comment 4 Laszlo Gombos 2009-10-15 00:17:40 PDT
Created attachment 41213 [details]
ExecutableAllocator III.

Made it more explicit that the page_size is set to 256 Kb regardless of the actual page_size to compensate for the moving mem model.
Comment 5 Simon Hausmann 2009-10-15 10:38:32 PDT
Comment on attachment 41213 [details]
ExecutableAllocator III.

> +#if ARM_ARCH_VERSION <= 5

This is really a nit-pick comment from here, but in the unlikely event of us ever introducing
the JIT for the emulator (hehehe) I guess then this should've been using PLATFORM_ARM_ARCH(5) in reverse logic, that also
verifies the presence of PLATFORM(ARM). Just a thought though, feel free to leave it as it is right now, as certainly
with the current code ENABLE(ASSEMBLER) will only be used when compiling for arm.

Otherwise the patch looks good to me!
Comment 6 Laszlo Gombos 2009-10-16 09:03:00 PDT
Landed as http://trac.webkit.org/changeset/49679 - with the change suggested by Simon.