Closed
Bug 787292
Opened 14 years ago
Closed 14 years ago
IonMonkey: Faster x64 boxed loads/stores
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: sstangl, Unassigned)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
|
6.64 KB,
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
It's faster to perform 32-bit loads/stores than 64-bit loads/stores plus boxing overhead. This patch does the former where possible, equalizing perf with x86 on some microbenchmark roughly equivalent to bitwise-and.
Attachment #657106 -
Flags: review?(dvander)
Comment on attachment 657106 [details] [diff] [review]
patch
Review of attachment 657106 [details] [diff] [review]:
-----------------------------------------------------------------
Nice catch.
::: js/src/ion/x64/MacroAssembler-x64.h
@@ +83,5 @@
> }
>
> + // Refers to the upper 32 bits of a 64-bit Value operand.
> + // On x86_64, the upper 32 bits do not necessarily only contain the type.
> + Operand ToUpper32(Operand base) {
static inline on these three
Attachment #657106 -
Flags: review?(dvander) → review+
| Reporter | ||
Comment 2•14 years ago
|
||
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Comment 3•14 years ago
|
||
One small issue here: you're failing a hundred tests on Win64. Unfortunately, those turn purple instead of orange on tbpl...
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
| Reporter | ||
Comment 4•14 years ago
|
||
http://hg.mozilla.org/projects/ionmonkey/rev/cb0450dcc3a3
Backed out to debug later when I have Windows around. The only probable source of failure is MSVC++ doing something stupid with the following function:
> uint32_t Upper32Of(JSValueShiftedTag tag) { // 64-bit input
> return (uint32_t)(tag >> 32);
> }
| Reporter | ||
Comment 5•14 years ago
|
||
http://hg.mozilla.org/projects/ionmonkey/rev/3fa0ad8ab5db
Passed tryserver. MSVC++ apparently doesn't do sane things when you shift 64-bit datatypes.
Status: REOPENED → RESOLVED
Closed: 14 years ago → 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•