Closed Bug 677715 Opened 13 years ago Closed 13 years ago

IonMonkey: Assertion failure: need a constant table at CodeGenerator-shared.cpp:122

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: adrake, Assigned: dvander)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

Attached file Test case
Attached test case trips this assert on IonMonkey tip. Filed by request, since it wasn't known that this could happen.
Assignee: general → dvander
Blocks: 677337
Status: NEW → ASSIGNED
Attached patch fixSplinter Review
For some reason I left an important part out of the initial bailouts patch: slots can be constants in which case they are neither in memory nor in a register. But they still have to be rematerialized in a bailout.

This patch introduces a constant pool in IonScript. The pool is avoided for small integers and as usual there is a little bitpacking in the snapshot for compression.

Also, I removed the existing double pool from x86 since it can now use the constant pool. DeferredData is now no longer used, but I'm leaving it in for now. It might come in handy for the ARM port or some future op, and if not we can tear it out later (it's not very big).
Attachment #552039 - Flags: review?(sstangl)
Comment on attachment 552039 [details] [diff] [review]
fix

Review of attachment 552039 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/ion/Snapshots.cpp
@@ +75,5 @@
>  //              If "reg" is InvalidReg1, this byte is followed by a [vws]
>  //              stack offset. Otherwise, "reg" encodes a GPR register.
>  //
>  //         JSVAL_TYPE_NULL:
> +//              Reg field:

"Reg value" please -- at first glance it looks like the numbers are referring to a bitfield. Also comment that this encodes small Int32 constants (as opposed to Int32 values with other significance).

@@ +83,2 @@
>  //
>  //         JSVAL_TYPE_UNDEFINED:

"Reg value:".
Attachment #552039 - Flags: review?(sstangl) → review+
http://hg.mozilla.org/projects/ionmonkey/rev/cbed9bf55b22
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.