Index: src/compiler/linkage.cc |
diff --git a/src/compiler/linkage.cc b/src/compiler/linkage.cc |
index 7c124cde15d7257001fa656df4170ad254a52325..3880f2fa088e2e14ae236b3a678009a8cfd7495d 100644 |
--- a/src/compiler/linkage.cc |
+++ b/src/compiler/linkage.cc |
@@ -420,16 +420,18 @@ CallDescriptor* Linkage::GetInterpreterDispatchDescriptor(Zone* zone) { |
STATIC_ASSERT(4 == Linkage::kInterpreterDispatchTableParameter); |
types.AddParam(kMachPtr); |
+#if defined(V8_TARGET_ARCH_IA32) || defined(V8_TARGET_ARCH_X87) |
+ // TODO(rmcilroy): Make the context param the one spilled to the stack once |
+ // Turbofan supports modified stack arguments in tail calls. |
+ locations.AddParam( |
+ LinkageLocation::ForCallerFrameSlot(kInterpreterDispatchTableSpillSlot)); |
+#else |
locations.AddParam(regloc(kInterpreterDispatchTableRegister)); |
+#endif |
STATIC_ASSERT(5 == Linkage::kInterpreterContextParameter); |
types.AddParam(kMachAnyTagged); |
-#if defined(V8_TARGET_ARCH_IA32) || defined(V8_TARGET_ARCH_X87) |
- locations.AddParam( |
- LinkageLocation::ForCallerFrameSlot(kInterpreterContextSpillSlot)); |
-#else |
locations.AddParam(regloc(kContextRegister)); |
-#endif |
LinkageLocation target_loc = LinkageLocation::ForAnyRegister(); |
return new (zone) CallDescriptor( // -- |