Commit 45452cc3 authored by jochen@chromium.org's avatar jochen@chromium.org

A64: Fix register usage in LCodeGen::ArgumentsLength

The result should be just stored in a W register

BUG=none
R=m.m.capewell@googlemail.com, ulan@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/170363002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent a7c82c49
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment