Re: [webkit-dev] jit, unordered compare

2009-10-16 Thread Zoltan Herczeg
Hi fortunately, no, I don't need double branch here. cmpvs reg0, reg0 is a conditional instruction, which only executes if the v flag is set. My proposal would be to add a new DoubleCondition called DoubleEqualOrNAN, or something similar to clarify what we expect from the conditional branch.

Re: [webkit-dev] jit, unordered compare

2009-10-12 Thread Geoffrey Garen
Hi Zoltan. I believe you're talking about this code for op_jfalse: zeroDouble(fpRegT0); emitLoadDouble(cond, fpRegT1); addJump(branchDouble(DoubleEqual, fpRegT0, fpRegT1), target); and this code for op_jtrue: zeroDouble(fpRegT0); emitLoadDouble(cond,

Re: [webkit-dev] jit, unordered compare

2009-10-12 Thread Zoltan Herczeg
Hi, unfortunately cmf was used by the old fpa (floating point accelerator), which is replaced by vfp (vector floating point) for some time. Perhaps I can try a cmpvs reg0, reg0 instruction, which sets zero flag if one argument is NaN (since reg0 is always equal to reg0). Otherwise it does nothing

Re: [webkit-dev] jit, unordered compare

2009-10-12 Thread Geoffrey Garen
unfortunately cmf was used by the old fpa (floating point accelerator), which is replaced by vfp (vector floating point) for some time. Perhaps I can try a cmpvs reg0, reg0 instruction, which sets zero flag if one argument is NaN (since reg0 is always equal to reg0). Otherwise it does