Index: src/x87/builtins-x87.cc |
diff --git a/src/x87/builtins-x87.cc b/src/x87/builtins-x87.cc |
index 731e0b543e9e3ca5a303e1b1ce57d308b02f5975..c561ac1458532d2324963b66ef57b8e639b9d849 100644 |
--- a/src/x87/builtins-x87.cc |
+++ b/src/x87/builtins-x87.cc |
@@ -614,9 +614,8 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
// Load accumulator, register file, bytecode offset, dispatch table into |
// registers. |
__ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex); |
- __ mov(kInterpreterRegisterFileRegister, ebp); |
- __ add(kInterpreterRegisterFileRegister, |
- Immediate(InterpreterFrameConstants::kRegisterFilePointerFromFp)); |
+ __ mov(edx, ebp); |
+ __ add(edx, Immediate(InterpreterFrameConstants::kRegisterFileFromFp)); |
__ mov(kInterpreterBytecodeOffsetRegister, |
Immediate(BytecodeArray::kHeaderSize - kHeapObjectTag)); |
__ mov(kInterpreterDispatchTableRegister, |
@@ -644,13 +643,7 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) { |
- // TODO(rmcilroy): List of things not currently dealt with here but done in |
- // fullcodegen's EmitReturnSequence. |
- // - Supporting FLAG_trace for Runtime::TraceExit. |
- // - Support profiler (specifically decrementing profiling_counter |
- // appropriately and calling out to HandleInterrupts if necessary). |
- |
- // The return value is in accumulator, which is already in rax. |
+ // The return value is in accumulator, which is already in eax. |
// Leave the frame (also dropping the register file). |
__ leave(); |
@@ -753,18 +746,14 @@ void Builtins::Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm) { |
static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) { |
- // Initialize register file register and dispatch table register. |
- __ mov(kInterpreterRegisterFileRegister, ebp); |
- __ add(kInterpreterRegisterFileRegister, |
- Immediate(InterpreterFrameConstants::kRegisterFilePointerFromFp)); |
+ // Initialize the dispatch table register. |
__ mov(kInterpreterDispatchTableRegister, |
Immediate(ExternalReference::interpreter_dispatch_table_address( |
masm->isolate()))); |
// Get the bytecode array pointer from the frame. |
__ mov(kInterpreterBytecodeArrayRegister, |
- Operand(kInterpreterRegisterFileRegister, |
- InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer)); |
+ Operand(ebp, InterpreterFrameConstants::kBytecodeArrayFromFp)); |
if (FLAG_debug_code) { |
// Check function data field is actually a BytecodeArray object. |
@@ -775,10 +764,8 @@ static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) { |
} |
// Get the target bytecode offset from the frame. |
- __ mov( |
- kInterpreterBytecodeOffsetRegister, |
- Operand(kInterpreterRegisterFileRegister, |
- InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer)); |
+ __ mov(kInterpreterBytecodeOffsetRegister, |
+ Operand(ebp, InterpreterFrameConstants::kBytecodeOffsetFromFp)); |
__ SmiUntag(kInterpreterBytecodeOffsetRegister); |
// Dispatch to the target bytecode. |