Bug 22554 - Enable WREC on x86-64
Summary: Enable WREC on x86-64
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Gavin Barraclough
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-29 04:45 PST by Gavin Barraclough
Modified: 2008-12-01 01:18 PST (History)
2 users (show)

See Also:


Attachments
The patch, not marking for review yet. (13.88 KB, patch)
2008-11-29 04:52 PST, Gavin Barraclough
no flags Details | Formatted Diff | Diff
New patch (14.97 KB, patch)
2008-11-30 23:24 PST, Gavin Barraclough
zwarich: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Gavin Barraclough 2008-11-29 04:45:52 PST
We should enable WREC on x86-64.  This would be a >10% progression on Sunspider.
Comment 1 Gavin Barraclough 2008-11-29 04:52:38 PST
Created attachment 25595 [details]
The patch, not marking for review yet.

I'm not marking this for review, since I'm not sure whether we want to turn this on by default yet - currently I believe this will mark the whole heap RWX if WREC is enabled, which may be a bad thing.
Comment 2 Gavin Barraclough 2008-11-29 04:54:01 PST
Oh, that is, on PLATFORM(X86_64) the whole heap would be executable, if WREC is compiled in – it wouldn't affect other platforms.  Still could be a bad idea.
Comment 3 Cameron Zwarich (cpst) 2008-11-29 05:42:02 PST
I would be willing to turn it on only for 64-bit Mac OS. We really need to fix bug 21783, though.
Comment 4 Gavin Barraclough 2008-11-30 23:24:54 PST
Created attachment 25621 [details]
New patch
Comment 5 Cameron Zwarich (cpst) 2008-11-30 23:33:38 PST
Comment on attachment 25621 [details]
New patch

> #if ENABLE(ASSEMBLER) && (PLATFORM(GTK) || PLATFORM(X86_64))

This should only be enabled on 64-bit Mac OS, not all x86-64. Also, mention what you are doing with wx pages in the ChangeLog.
Comment 6 Gavin Barraclough 2008-12-01 01:18:43 PST
Sending        JavaScriptCore/ChangeLog
Sending        JavaScriptCore/assembler/MacroAssembler.h
Sending        JavaScriptCore/assembler/X86Assembler.h
Sending        JavaScriptCore/wrec/WREC.h
Sending        JavaScriptCore/wrec/WRECGenerator.cpp
Sending        JavaScriptCore/wtf/Platform.h
Sending        JavaScriptCore/wtf/TCSystemAlloc.cpp
Transmitting file data .......
Committed revision 38857.