void JIT::emit_op_call_put_result(Instruction* instruction) { int dst = instruction[1].u.operand; emitValueProfilingSite(); emitPutVirtualRegister(dst); if (canBeOptimizedOrInlined()) killLastResultRegister(); // Make lastResultRegister tracking simpler in the DFG. }
void JIT::emitPutCallResult(Instruction* instruction) { int dst = instruction[1].u.operand; emitValueProfilingSite(regT4); emitPutVirtualRegister(dst); if (canBeOptimizedOrInlined()) { // Make lastResultRegister tracking simpler in the DFG. This is needed because // the DFG may have the SetLocal corresponding to this Call's return value in // a different basic block, if inlining happened. The DFG isn't smart enough to // track the baseline JIT's last result register across basic blocks. killLastResultRegister(); } }