Investigating this, I've determined that the issue is due to a register allocation in the middle of generating control flow and we are under register pressure causing us to spill on one path in the control flow but not the other two. This is in SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull() in dfg/DFGSpeculativeJit32_64.cpp. Inspection shows that the problem also exists in dfg/DFGSpeculativeJit64.cpp.
Patch forth coming.
Created attachment 192101 [details]
Committed r145150: <http://trac.webkit.org/changeset/145150>