| 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 a72070a06d1b6b5045461f2f6a353b9622bcd3b3..718e1ec3a58d830fb71722168ef17476573cb782 100644
|
| --- a/src/compiler/arm64/code-generator-arm64.cc
|
| +++ b/src/compiler/arm64/code-generator-arm64.cc
|
| @@ -257,7 +257,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);
|
| }
|
| }
|
| @@ -1938,11 +1938,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));
|
| }
|
| @@ -2014,11 +2014,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.
|
| @@ -2044,7 +2044,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);
|
| @@ -2144,7 +2144,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());
|
| @@ -2152,7 +2152,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()));
|
| }
|
| @@ -2160,7 +2160,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());
|
| @@ -2168,16 +2168,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());
|
| @@ -2190,7 +2190,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()));
|
| }
|
| @@ -2234,10 +2234,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);
|
|
|