Status: Accepted
Owner: [email protected]
Labels: Type-Bug Priority-High

New issue 1033 by [email protected]: Register allocator bug in parallel moves
http://code.google.com/p/v8/issues/detail?id=1033

(1) When resolving a cycle of double operands, we use register xmm0 as a scratch register to break the cycle. (2) When performing a double memory-to-memory move we use register xmm0 to perform the move.

We thus can't support double cycles involving even a single a memory-to-memory move (unless we happen to break the cycle right exactly at that move). If we hit such a cycle, one of the operands will get the wrong value.

This code path is not covered by our tests but it can be reproduced by Kraken's imaging-darkroom benchmark. (The benchmark itself doesn't test it's result, but it hits the code path in question.)

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to