Index: src/ia32/builtins-ia32.cc |
diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc |
index 31f56461eec9e230c2f3a5b4a9b55934873135c8..d985edbb3fa88770f6019cf0628287b77d22e17d 100644 |
--- a/src/ia32/builtins-ia32.cc |
+++ b/src/ia32/builtins-ia32.cc |
@@ -572,8 +572,8 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
// Push bytecode array. |
__ push(kInterpreterBytecodeArrayRegister); |
- // Push zero for bytecode array offset. |
- __ push(Immediate(0)); |
+ // Push Smi tagged initial bytecode array offset. |
+ __ push(Immediate(Smi::FromInt(BytecodeArray::kHeaderSize - kHeapObjectTag))); |
// Allocate the local and temporary register file on the stack. |
{ |
@@ -606,11 +606,8 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
__ j(greater_equal, &loop_header); |
} |
- // Load accumulator, register file, bytecode offset, dispatch table into |
- // registers. |
+ // Load accumulator, bytecode offset and dispatch table into registers. |
__ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex); |
- __ mov(edx, ebp); |
- __ add(edx, Immediate(InterpreterFrameConstants::kRegisterFileFromFp)); |
__ mov(kInterpreterBytecodeOffsetRegister, |
Immediate(BytecodeArray::kHeaderSize - kHeapObjectTag)); |
__ mov(kInterpreterDispatchTableRegister, |