Index: src/ia32/macro-assembler-ia32.cc |
diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc |
index 53ffa39357c97a47aa53df3f934a712fb30e9380..c85789efa1e2dff5a90b0d1e3f3a79e383d7239e 100644 |
--- a/src/ia32/macro-assembler-ia32.cc |
+++ b/src/ia32/macro-assembler-ia32.cc |
@@ -3287,6 +3287,22 @@ void MacroAssembler::TruncatingDiv(Register dividend, int32_t divisor) { |
} |
+void MacroAssembler::OSRDropVectorFromStack(int unoptimized_slot_count, |
+ Register scratch0, |
+ Register scratch1) { |
+ if (unoptimized_slot_count > 0) { |
+ Label loop_start; |
+ lea(scratch0, |
+ Operand(ebp, JavaScriptFrameConstants::kFeedbackVectorOffset)); |
+ bind(&loop_start); |
+ mov(scratch1, Operand(scratch0, -1 * kPointerSize)); |
+ mov(Operand(scratch0, 0), scratch1); |
+ sub(scratch0, Immediate(kPointerSize)); |
+ cmp(scratch0, esp); |
+ j(greater, &loop_start); |
+ } |
+ add(esp, Immediate(kPointerSize)); |
+} |
} } // namespace v8::internal |
#endif // V8_TARGET_ARCH_IA32 |