Closed
Bug 998158
Opened 10 years ago
Closed 10 years ago
Tidy up SSE feature detection
Categories
(Core :: JavaScript Engine: JIT, enhancement)
Core
JavaScript Engine: JIT
Tracking
()
RESOLVED
FIXED
mozilla31
People
(Reporter: sunfish, Assigned: sunfish)
Details
Attachments
(4 files)
2.53 KB,
patch
|
sstangl
:
review+
|
Details | Diff | Splinter Review |
8.36 KB,
patch
|
sstangl
:
review+
|
Details | Diff | Splinter Review |
1.52 KB,
patch
|
sstangl
:
review+
|
Details | Diff | Splinter Review |
3.34 KB,
patch
|
sstangl
:
review+
|
Details | Diff | Splinter Review |
The following is a series of patches which tity up SSE hardware feature detection.
Assignee | ||
Comment 1•10 years ago
|
||
Make JSC::MacroAssembler::isSSE2Present and friends public, and use them to implement AssemblerX86Shared::HasSSE2 and friends. This is a minor change, but it prepares for a later patch. Also, define HasSSE2 in debug mode only for use in asserts, since the JIT requires SSE2.
Assignee: nobody → sunfish
Attachment #8408711 -
Flags: review?(sstangl)
Assignee | ||
Comment 2•10 years ago
|
||
No functionality change; this just moves code out of line.
Attachment #8408715 -
Flags: review?(sstangl)
Assignee | ||
Comment 3•10 years ago
|
||
Simplify the inline asm code used to invoke cpuid. don't save and restore %rbx on x64, simplify the use of constraints, and drop unnecessary volatile qualifiers.
Attachment #8408718 -
Flags: review?(sstangl)
Assignee | ||
Comment 4•10 years ago
|
||
Use predefined SSE target macros, when available, to detect SSE availability. This eliminates the need for a special case for Mac OS, as MacOS always defines the SSE target macros.
Attachment #8408721 -
Flags: review?(sstangl)
Comment 5•10 years ago
|
||
Comment on attachment 8408711 [details] [diff] [review] ssecheck-cleanup.patch Review of attachment 8408711 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/jit/shared/Assembler-x86-shared.h @@ +780,5 @@ > void breakpoint() { > masm.int3(); > } > > +#ifndef NDEBUG NDEBUG is a WebKit-ism that doesn't belong outside of codebases imported from Apple. #ifdef DEBUG?
Attachment #8408711 -
Flags: review?(sstangl) → review+
Updated•10 years ago
|
Attachment #8408715 -
Flags: review?(sstangl) → review+
Updated•10 years ago
|
Attachment #8408718 -
Flags: review?(sstangl) → review+
Comment 6•10 years ago
|
||
Comment on attachment 8408721 [details] [diff] [review] ssecheck-ifdef.patch Review of attachment 8408721 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/assembler/assembler/MacroAssemblerX86Common.h @@ +1320,5 @@ > } > > static bool isSSE2Present() > { > +#if defined(__SSE2__) && !defined(DEBUG) nit: trailing whitespace
Attachment #8408721 -
Flags: review?(sstangl) → review+
Comment 7•10 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/3f36eb16f2bb https://hg.mozilla.org/mozilla-central/rev/b5869e103bfa https://hg.mozilla.org/mozilla-central/rev/6c0b4353730f https://hg.mozilla.org/mozilla-central/rev/c1c947d321b9
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla31
You need to log in
before you can comment on or make changes to this bug.
Description
•