Index: src/compiler/linkage.cc |
diff --git a/src/compiler/linkage.cc b/src/compiler/linkage.cc |
index 93b9a66ec203016c2f8b6791f935569b5f596ee7..69bc2d4d780847dfafab643b64238e8e447d27b2 100644 |
--- a/src/compiler/linkage.cc |
+++ b/src/compiler/linkage.cc |
@@ -394,19 +394,27 @@ CallDescriptor* Linkage::GetJSCallDescriptor(Zone* zone, bool is_osr, |
CallDescriptor* Linkage::GetInterpreterDispatchDescriptor(Zone* zone) { |
- MachineSignature::Builder types(zone, 0, 3); |
- LocationSignature::Builder locations(zone, 0, 3); |
+ MachineSignature::Builder types(zone, 0, 5); |
+ LocationSignature::Builder locations(zone, 0, 5); |
// Add registers for fixed parameters passed via interpreter dispatch. |
- STATIC_ASSERT(0 == Linkage::kInterpreterBytecodeOffsetParameter); |
+ STATIC_ASSERT(0 == Linkage::kInterpreterAccumulatorParameter); |
+ types.AddParam(kMachAnyTagged); |
+ locations.AddParam(regloc(kInterpreterAccumulatorRegister)); |
+ |
+ STATIC_ASSERT(1 == Linkage::kInterpreterRegisterFileParameter); |
+ types.AddParam(kMachPtr); |
+ locations.AddParam(regloc(kInterpreterRegisterFileRegister)); |
+ |
+ STATIC_ASSERT(2 == Linkage::kInterpreterBytecodeOffsetParameter); |
types.AddParam(kMachIntPtr); |
locations.AddParam(regloc(kInterpreterBytecodeOffsetRegister)); |
- STATIC_ASSERT(1 == Linkage::kInterpreterBytecodeArrayParameter); |
+ STATIC_ASSERT(3 == Linkage::kInterpreterBytecodeArrayParameter); |
types.AddParam(kMachAnyTagged); |
locations.AddParam(regloc(kInterpreterBytecodeArrayRegister)); |
- STATIC_ASSERT(2 == Linkage::kInterpreterDispatchTableParameter); |
+ STATIC_ASSERT(4 == Linkage::kInterpreterDispatchTableParameter); |
types.AddParam(kMachPtr); |
locations.AddParam(regloc(kInterpreterDispatchTableRegister)); |