The DFG JIT has an on-the-fly register allocator, which works by having the code generator specify when a value is needed, when it is being used, and when it is not needed anymore. But the DFG non-speculative JIT path for generating ValueToInt32 conversions where the source is a double will first kill a register and then allocate it. Sometimes this works by accident (if there are other uses of the register), but when visiting http://www.skinnytaste.com/2011/06/ricotta-cheese-chocolate-chip-muffins.html, it generates an assertion failure. The DFG non-speculative JIT should really first allocate the register and then kill it rather than the other way around.
Created attachment 103389 [details] the patch
Comment on attachment 103389 [details] the patch r- actually, you should make a testcase for this.
Is this a dup of bug 65930?
(In reply to comment #3) > Is this a dup of bug 65930? Yeah it is - I didn't see the other bug.
*** This bug has been marked as a duplicate of bug 65930 ***