Closed Bug 831754 Opened 12 years ago Closed 12 years ago

IonMonkey: Add patchable call instruction

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla21

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(2 files)

We need this to implement breakpoints in the baseline compiler.
Attached patch Part 1: ARM (deleted) — Splinter Review
Emits a MOVW, MOVT, BLX/NOP sequence and the BLX/NOP can be toggled. I tested this with some other debugging patches and it works with qemu-arm.
Attachment #703309 - Flags: review?(mrosenberg)
Attached patch Part 2: x86/x64 (deleted) — Splinter Review
Attachment #703315 - Flags: review?(dvander)
Attachment #703315 - Flags: review?(dvander) → review+
Comment on attachment 703309 [details] [diff] [review] Part 1: ARM Review of attachment 703309 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/ion/arm/Assembler-arm.cpp @@ +2497,5 @@ > + inst = inst->next(); > + JS_ASSERT(inst->is<InstNOP>() || inst->is<InstBLXReg>()); > + > + if (enabled) > + *inst = InstBLXReg(ScratchRegister, Always); You may want to only call updateTop() when the actual instruction has been changed, since it will mostly likely involve making a rather slow syscall.
Attachment #703309 - Flags: review?(mrosenberg) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/c7b78d418a1e https://hg.mozilla.org/integration/mozilla-inbound/rev/ef3ed8dd4726 (In reply to Marty Rosenberg [:mjrosenb] from comment #3) > You may want to only call updateTop() when the actual instruction has been > changed, since it will mostly likely involve making a rather slow syscall. OK, I changed ToggleCall to be a no-op if it doesn't change anything.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: