Closed
Bug 822222
Opened 13 years ago
Closed 13 years ago
BaselineCompiler: Add interrupt checks
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(2 files)
|
11.92 KB,
patch
|
djvj
:
review+
|
Details | Diff | Splinter Review |
|
7.15 KB,
patch
|
djvj
:
review+
|
Details | Diff | Splinter Review |
Need this to make jit-test/tests/basic/shell-watchdog.js not timeout.
| Assignee | ||
Comment 1•13 years ago
|
||
As we add the more uncommon ops, it's getting annoying to add an ICStub class etc just to perform a VM call. This patch allows making VM calls from the compiler itself, and rewrites DEFVAR to use it. To reuse the return address -> pc mapping mechanism, this patch adds an ICEntry with no stubs. This should avoid a lot of boilerplate code, is faster and avoids allocating stubs.
I can convert some of the other calls in a follow-up patch.
Attachment #692952 -
Flags: review?(kvijayan)
| Assignee | ||
Comment 2•13 years ago
|
||
Like Ion, emits an interrupt check at every LOOPHEAD op.
Attachment #692969 -
Flags: review?(kvijayan)
Comment 3•13 years ago
|
||
Comment on attachment 692952 [details] [diff] [review]
Part 1: Allow direct VM calls
Review of attachment 692952 [details] [diff] [review]:
-----------------------------------------------------------------
Awesome. I was worried that the generated code for this would be really fat and bloat up the mainline jitcode, but it's pretty slim.
::: js/src/ion/shared/BaselineCompiler-shared.h
@@ +36,5 @@
> // has been allocated.
> + struct ICLoadLabel {
> + size_t icEntry;
> + CodeOffsetLabel label;
> + };
Nice. Generalizing this had to happen sometime :)
Attachment #692952 -
Flags: review?(kvijayan) → review+
Updated•13 years ago
|
Attachment #692969 -
Flags: review?(kvijayan) → review+
| Assignee | ||
Comment 4•13 years ago
|
||
https://hg.mozilla.org/projects/ionmonkey/rev/31004c39ccf3
https://hg.mozilla.org/projects/ionmonkey/rev/54876ec5e5b8
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•