| Index: src/a64/lithium-codegen-a64.cc
|
| diff --git a/src/a64/lithium-codegen-a64.cc b/src/a64/lithium-codegen-a64.cc
|
| index 3793e325561cbbdcaae9cb029a7e21f8add141e8..abfff857e6541ca78719dbc176dccaf18fd02d54 100644
|
| --- a/src/a64/lithium-codegen-a64.cc
|
| +++ b/src/a64/lithium-codegen-a64.cc
|
| @@ -1648,7 +1648,7 @@ void LCodeGen::DoArgumentsElements(LArgumentsElements* instr) {
|
|
|
| void LCodeGen::DoArgumentsLength(LArgumentsLength* instr) {
|
| Register elements = ToRegister(instr->elements());
|
| - Register result = ToRegister(instr->result());
|
| + Register result = ToRegister32(instr->result());
|
| Label done;
|
|
|
| // If no arguments adaptor frame the number of arguments is fixed.
|
| @@ -1657,10 +1657,10 @@ void LCodeGen::DoArgumentsLength(LArgumentsLength* instr) {
|
| __ B(eq, &done);
|
|
|
| // Arguments adaptor frame present. Get argument length from there.
|
| - __ Ldr(result, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
|
| - __ Ldrsw(result,
|
| - UntagSmiMemOperand(result,
|
| - ArgumentsAdaptorFrameConstants::kLengthOffset));
|
| + __ Ldr(result.X(), MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
|
| + __ Ldr(result,
|
| + UntagSmiMemOperand(result.X(),
|
| + ArgumentsAdaptorFrameConstants::kLengthOffset));
|
|
|
| // Argument length is in result register.
|
| __ Bind(&done);
|
|
|