void JIT::emit_op_call_put_result(Instruction* instruction) { int dst = instruction[1].u.operand; emitValueProfilingSite(); emitPutVirtualRegister(dst); if (canBeOptimized()) 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(); } }
void JIT::emitPutCallResult(Instruction* instruction) { int dst = instruction[1].u.operand; emitValueProfilingSite(regT4); emitStore(dst, regT1, regT0); }
void JIT::emitPutCallResult(Instruction* instruction) { int dst = instruction[1].u.operand; emitValueProfilingSite(regT4); emitPutVirtualRegister(dst); }
void JIT::emit_op_call_put_result(Instruction* instruction) { int dst = instruction[1].u.operand; emitValueProfilingSite(); emitStore(dst, regT1, regT0); }
void JIT::emitPutCallResult(const Op& bytecode) { emitValueProfilingSite(bytecode.metadata(m_codeBlock)); emitStore(bytecode.m_dst.offset(), regT1, regT0); }
void JIT::emit_op_call_put_result(Instruction* instruction) { int dst = instruction[1].u.operand; emitValueProfilingSite(FirstProfilingSite); emitPutVirtualRegister(dst); }