| Index: src/compiler/arm64/code-generator-arm64.cc
|
| diff --git a/src/compiler/arm64/code-generator-arm64.cc b/src/compiler/arm64/code-generator-arm64.cc
|
| index 0c5238b64a65bcb6fd34290eb42db1e55c75c27c..672a32e00637787c51cf48b876f42cbe8bdcd807 100644
|
| --- a/src/compiler/arm64/code-generator-arm64.cc
|
| +++ b/src/compiler/arm64/code-generator-arm64.cc
|
| @@ -253,7 +253,7 @@ class Arm64OperandConverter final : public InstructionOperandConverter {
|
| int from_sp = offset.offset() + frame_access_state()->GetSPToFPOffset();
|
| // Convert FP-offsets to SP-offsets if it results in better code.
|
| if (Assembler::IsImmLSUnscaled(from_sp) ||
|
| - Assembler::IsImmLSScaled(from_sp, LSDoubleWord)) {
|
| + Assembler::IsImmLSScaled(from_sp, 3)) {
|
| offset = FrameOffset::FromStackPointer(from_sp);
|
| }
|
| }
|
| @@ -1945,11 +1945,11 @@ void CodeGenerator::FinishFrame(Frame* frame) {
|
| }
|
|
|
| // Save FP registers.
|
| - CPURegList saves_fp = CPURegList(CPURegister::kFPRegister, kDRegSizeInBits,
|
| + CPURegList saves_fp = CPURegList(CPURegister::kVRegister, kDRegSizeInBits,
|
| descriptor->CalleeSavedFPRegisters());
|
| int saved_count = saves_fp.Count();
|
| if (saved_count != 0) {
|
| - DCHECK(saves_fp.list() == CPURegList::GetCalleeSavedFP().list());
|
| + DCHECK(saves_fp.list() == CPURegList::GetCalleeSavedV().list());
|
| frame->AllocateSavedCalleeRegisterSlots(saved_count *
|
| (kDoubleSize / kPointerSize));
|
| }
|
| @@ -2068,11 +2068,11 @@ void CodeGenerator::AssembleConstructFrame() {
|
| }
|
|
|
| // Save FP registers.
|
| - CPURegList saves_fp = CPURegList(CPURegister::kFPRegister, kDRegSizeInBits,
|
| + CPURegList saves_fp = CPURegList(CPURegister::kVRegister, kDRegSizeInBits,
|
| descriptor->CalleeSavedFPRegisters());
|
| int saved_count = saves_fp.Count();
|
| if (saved_count != 0) {
|
| - DCHECK(saves_fp.list() == CPURegList::GetCalleeSavedFP().list());
|
| + DCHECK(saves_fp.list() == CPURegList::GetCalleeSavedV().list());
|
| __ PushCPURegList(saves_fp);
|
| }
|
| // Save registers.
|
| @@ -2098,7 +2098,7 @@ void CodeGenerator::AssembleReturn(InstructionOperand* pop) {
|
| }
|
|
|
| // Restore fp registers.
|
| - CPURegList saves_fp = CPURegList(CPURegister::kFPRegister, kDRegSizeInBits,
|
| + CPURegList saves_fp = CPURegList(CPURegister::kVRegister, kDRegSizeInBits,
|
| descriptor->CalleeSavedFPRegisters());
|
| if (saves_fp.Count() != 0) {
|
| __ PopCPURegList(saves_fp);
|
| @@ -2198,7 +2198,7 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| }
|
| } else if (src.type() == Constant::kFloat32) {
|
| if (destination->IsFPRegister()) {
|
| - FPRegister dst = g.ToDoubleRegister(destination).S();
|
| + VRegister dst = g.ToDoubleRegister(destination).S();
|
| __ Fmov(dst, src.ToFloat32());
|
| } else {
|
| DCHECK(destination->IsFPStackSlot());
|
| @@ -2206,7 +2206,7 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| __ Str(wzr, g.ToMemOperand(destination, masm()));
|
| } else {
|
| UseScratchRegisterScope scope(masm());
|
| - FPRegister temp = scope.AcquireS();
|
| + VRegister temp = scope.AcquireS();
|
| __ Fmov(temp, src.ToFloat32());
|
| __ Str(temp, g.ToMemOperand(destination, masm()));
|
| }
|
| @@ -2214,7 +2214,7 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| } else {
|
| DCHECK_EQ(Constant::kFloat64, src.type());
|
| if (destination->IsFPRegister()) {
|
| - FPRegister dst = g.ToDoubleRegister(destination);
|
| + VRegister dst = g.ToDoubleRegister(destination);
|
| __ Fmov(dst, src.ToFloat64());
|
| } else {
|
| DCHECK(destination->IsFPStackSlot());
|
| @@ -2222,16 +2222,16 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| __ Str(xzr, g.ToMemOperand(destination, masm()));
|
| } else {
|
| UseScratchRegisterScope scope(masm());
|
| - FPRegister temp = scope.AcquireD();
|
| + VRegister temp = scope.AcquireD();
|
| __ Fmov(temp, src.ToFloat64());
|
| __ Str(temp, g.ToMemOperand(destination, masm()));
|
| }
|
| }
|
| }
|
| } else if (source->IsFPRegister()) {
|
| - FPRegister src = g.ToDoubleRegister(source);
|
| + VRegister src = g.ToDoubleRegister(source);
|
| if (destination->IsFPRegister()) {
|
| - FPRegister dst = g.ToDoubleRegister(destination);
|
| + VRegister dst = g.ToDoubleRegister(destination);
|
| __ Fmov(dst, src);
|
| } else {
|
| DCHECK(destination->IsFPStackSlot());
|
| @@ -2244,7 +2244,7 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| __ Ldr(g.ToDoubleRegister(destination), src);
|
| } else {
|
| UseScratchRegisterScope scope(masm());
|
| - FPRegister temp = scope.AcquireD();
|
| + VRegister temp = scope.AcquireD();
|
| __ Ldr(temp, src);
|
| __ Str(temp, g.ToMemOperand(destination, masm()));
|
| }
|
| @@ -2288,10 +2288,10 @@ void CodeGenerator::AssembleSwap(InstructionOperand* source,
|
| __ Str(temp_1, src);
|
| } else if (source->IsFPRegister()) {
|
| UseScratchRegisterScope scope(masm());
|
| - FPRegister temp = scope.AcquireD();
|
| - FPRegister src = g.ToDoubleRegister(source);
|
| + VRegister temp = scope.AcquireD();
|
| + VRegister src = g.ToDoubleRegister(source);
|
| if (destination->IsFPRegister()) {
|
| - FPRegister dst = g.ToDoubleRegister(destination);
|
| + VRegister dst = g.ToDoubleRegister(destination);
|
| __ Fmov(temp, src);
|
| __ Fmov(src, dst);
|
| __ Fmov(dst, temp);
|
|
|