WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
137304
[Win] 32-bit JavaScriptCore should limit itself to the C loop
https://bugs.webkit.org/show_bug.cgi?id=137304
Summary
[Win] 32-bit JavaScriptCore should limit itself to the C loop
Brent Fulgham
Reported
2014-10-01 10:29:54 PDT
The awesome LLInt interpreter layer in JSC uses SSE2 instructions that are not available in pre-Pentium 4. We need to continue supporting this old hardware as long as we are supporting Windows XP for WebKit. Consequently, we need to turn off LLInt on 32-bit Windows builds.
Attachments
Patch
(3.02 KB, patch)
2014-10-01 10:41 PDT
,
Brent Fulgham
msaboff
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Brent Fulgham
Comment 1
2014-10-01 10:40:51 PDT
<
rdar://problem/18375370
>
Brent Fulgham
Comment 2
2014-10-01 10:41:42 PDT
Created
attachment 239034
[details]
Patch
Michael Saboff
Comment 3
2014-10-01 10:42:49 PDT
Comment on
attachment 239034
[details]
Patch r=me
Brent Fulgham
Comment 4
2014-10-01 11:22:35 PDT
Committed
r174162
: <
http://trac.webkit.org/changeset/174162
>
Brent Fulgham
Comment 5
2014-10-01 11:29:30 PDT
Confirmed no regressions in JSC test runs with this change.
peavo
Comment 6
2014-10-06 09:17:32 PDT
Do we know which SSE2 instructions are used? Maybe we could rewrite the usage of those?
Brent Fulgham
Comment 7
2014-10-06 09:41:48 PDT
(In reply to
comment #6
)
> Do we know which SSE2 instructions are used? Maybe we could rewrite the usage of those?
I believe the issue was the need to support IEEE floating point behavior. At one time, the Qt project had some code to use x86+math hacks to deliver similar support on non-SSE hardware, but that code probably got excised when they removed their port. Pragmatically, limiting JIT support to 64-bit is probably not the end of the world. Most people who care about performance are probably running 64-bit CPUs anyway. It would be great to re-enable the JIT for 32-bit in general, but people with specific performance needs can always build WebKit with the 32-bit JIT enabled for their own deployments.
peavo
Comment 8
2014-10-06 09:49:36 PDT
(In reply to
comment #7
)
> (In reply to
comment #6
) > > Do we know which SSE2 instructions are used? Maybe we could rewrite the usage of those? > > I believe the issue was the need to support IEEE floating point behavior. At one time, the Qt project had some code to use x86+math hacks to deliver similar support on non-SSE hardware, but that code probably got excised when they removed their port. > > Pragmatically, limiting JIT support to 64-bit is probably not the end of the world. Most people who care about performance are probably running 64-bit CPUs anyway. It would be great to re-enable the JIT for 32-bit in general, but people with specific performance needs can always build WebKit with the 32-bit JIT enabled for their own deployments.
Ok :) I also see that there are a number of ASSERT(isSSE2Present()) statements in MacroAssemblerX86Common.h which indicates where SSE2 is required.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug