Closed Bug 822222 Opened 13 years ago Closed 13 years ago

BaselineCompiler: Add interrupt checks

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(2 files)

Need this to make jit-test/tests/basic/shell-watchdog.js not timeout.
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)
Like Ion, emits an interrupt check at every LOOPHEAD op.
Attachment #692969 - Flags: review?(kvijayan)
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+
Attachment #692969 - Flags: review?(kvijayan) → review+
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.

Attachment

General

Created:
Updated:
Size: