Closed
Bug 810375
Opened 11 years ago
Closed 11 years ago
BaselineCompiler: Support local/arg inc/dec ops
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(3 files)
992 bytes,
patch
|
djvj
:
review+
|
Details | Diff | Splinter Review |
7.02 KB,
patch
|
djvj
:
review+
|
Details | Diff | Splinter Review |
1.57 KB,
patch
|
djvj
:
review+
|
Details | Diff | Splinter Review |
No description provided.
Assignee | ||
Comment 1•11 years ago
|
||
Attachment #680131 -
Flags: review?(kvijayan)
Assignee | ||
Comment 2•11 years ago
|
||
Uses an inline path for int32 and double. We can test for both with a single compare and in these cases POS is a no-op.
Attachment #680152 -
Flags: review?(kvijayan)
Assignee | ||
Comment 3•11 years ago
|
||
i++ is decomposed as getlocal 0 pos dup one add setlocal 0 The patch doesn't attempt to DUP unsynced constants etc directly. There are probably other uses of DUP but here it doesn't matter.
Attachment #680172 -
Flags: review?(kvijayan)
Updated•11 years ago
|
Attachment #680131 -
Flags: review?(kvijayan) → review+
Updated•11 years ago
|
Attachment #680152 -
Flags: review?(kvijayan) → review+
Updated•11 years ago
|
Attachment #680172 -
Flags: review?(kvijayan) → review+
Comment 4•11 years ago
|
||
There's something I don't understand about decomposed ops. JSOP_LOCALINC has the decompose flag set on it, but in the emitted bytecode it doesn't actually seem to be decomposed. The couple of other inc ops I checked actually had the surrogate ops emitted, but not LOCALINC. Is there something I'm missing?
Assignee | ||
Comment 5•11 years ago
|
||
(In reply to Kannan Vijayan [:djvj] from comment #4) > There's something I don't understand about decomposed ops. JSOP_LOCALINC > has the decompose flag set on it, but in the emitted bytecode it doesn't > actually seem to be decomposed. Are you using a recent build? Local/arg ops were decomposed in bug 804636. js> dis(function() { var i; i++; }); flags: LAMBDA loc op ----- -- main: 00000: getlocal 0 00003: pop 00004: localinc 11 00007: getlocal 0 00010: pos 00011: dup 00012: one 00013: add 00014: setlocal 0 00017: pop 00018: pop 00019: stop
Assignee | ||
Comment 6•11 years ago
|
||
https://hg.mozilla.org/projects/ionmonkey/rev/6942d3709009 https://hg.mozilla.org/projects/ionmonkey/rev/79b5f9e429d0 https://hg.mozilla.org/projects/ionmonkey/rev/281c54efd991
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•