+ return MacroAssembler::Jump(AssemblerLabel(m_patchableCodeOffset));
+}
+
+CodeLocationJump OSRExit::codeLocationForRepatch(CodeBlock* dfgCodeBlock) const
+{
+ return CodeLocationJump(dfgCodeBlock->getJITCode().dataAddressAtOffset(m_patchableCodeOffset));
+}
+
+void OSRExit::correctJump(LinkBuffer& linkBuffer)
+{
+ MacroAssembler::Label label;
+ label.m_label.m_offset = m_patchableCodeOffset;
+ m_patchableCodeOffset = linkBuffer.offsetOf(label);
+}
+
+bool OSRExit::considerAddingAsFrequentExitSiteSlow(CodeBlock* profiledCodeBlock)
+{
+ FrequentExitSite exitSite;
+
+ if (m_kind == ArgumentsEscaped) {
+ // Count this one globally. It doesn't matter where in the code block the arguments excaped;
+ // the fact that they did is not associated with any particular instruction.
+ exitSite = FrequentExitSite(m_kind);
+ } else
+ exitSite = FrequentExitSite(m_codeOriginForExitProfile.bytecodeIndex, m_kind);