Index: src/arm64/code-stubs-arm64.cc |
diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc |
index 732f8fa5b16247c5c0905dd5f7ab33c679401ad1..f12fed13dbe04c02222dac05de7f37fcff2b3319 100644 |
--- a/src/arm64/code-stubs-arm64.cc |
+++ b/src/arm64/code-stubs-arm64.cc |
@@ -2206,19 +2206,21 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) { |
void RestParamAccessStub::GenerateNew(MacroAssembler* masm) { |
// Stack layout on entry. |
- // jssp[0]: index of rest parameter (tagged) |
- // jssp[8]: number of parameters (tagged) |
- // jssp[16]: address of receiver argument |
+ // jssp[0]: language mode (tagged) |
+ // jssp[8]: index of rest parameter (tagged) |
+ // jssp[16]: number of parameters (tagged) |
+ // jssp[24]: address of receiver argument |
// |
// Returns pointer to result object in x0. |
// Get the stub arguments from the frame, and make an untagged copy of the |
// parameter count. |
- Register rest_index_smi = x1; |
- Register param_count_smi = x2; |
- Register params = x3; |
+ Register language_mode_smi = x1; |
+ Register rest_index_smi = x2; |
+ Register param_count_smi = x3; |
+ Register params = x4; |
Register param_count = x13; |
- __ Pop(rest_index_smi, param_count_smi, params); |
+ __ Pop(language_mode_smi, rest_index_smi, param_count_smi, params); |
__ SmiUntag(param_count, param_count_smi); |
// Test if arguments adaptor needed. |
@@ -2231,11 +2233,12 @@ void RestParamAccessStub::GenerateNew(MacroAssembler* masm) { |
__ Cmp(caller_ctx, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
__ B(ne, &runtime); |
- // x1 rest_index_smi index of rest parameter |
- // x2 param_count_smi number of parameters passed to function (smi) |
- // x3 params pointer to parameters |
- // x11 caller_fp caller's frame pointer |
- // x13 param_count number of parameters passed to function |
+ // x1 language_mode_smi language mode |
+ // x2 rest_index_smi index of rest parameter |
+ // x3 param_count_smi number of parameters passed to function (smi) |
+ // x4 params pointer to parameters |
+ // x11 caller_fp caller's frame pointer |
+ // x13 param_count number of parameters passed to function |
// Patch the argument length and parameters pointer. |
__ Ldr(param_count_smi, |
@@ -2246,8 +2249,8 @@ void RestParamAccessStub::GenerateNew(MacroAssembler* masm) { |
__ Add(params, x10, StandardFrameConstants::kCallerSPOffset); |
__ Bind(&runtime); |
- __ Push(params, param_count_smi, rest_index_smi); |
- __ TailCallRuntime(Runtime::kNewRestParam, 3, 1); |
+ __ Push(params, param_count_smi, rest_index_smi, language_mode_smi); |
+ __ TailCallRuntime(Runtime::kNewRestParam, 4, 1); |
} |