| Index: src/compiler/arm/code-generator-arm.cc
|
| diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc
|
| index eba80dfa6a013390f84471447ab318806ddc5b50..c473b9b6aa5d04923149a5c41f4b1f5d27beb5f6 100644
|
| --- a/src/compiler/arm/code-generator-arm.cc
|
| +++ b/src/compiler/arm/code-generator-arm.cc
|
| @@ -1898,10 +1898,10 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| int src_code = LocationOperand::cast(source)->register_code();
|
| if (destination->IsFloatRegister()) {
|
| int dst_code = LocationOperand::cast(destination)->register_code();
|
| - __ VmovExtended(dst_code, src_code);
|
| + __ VmovExtended(dst_code, src_code, kScratchReg);
|
| } else {
|
| DCHECK(destination->IsFloatStackSlot());
|
| - __ VmovExtended(g.ToMemOperand(destination), src_code);
|
| + __ VmovExtended(g.ToMemOperand(destination), src_code, kScratchReg);
|
| }
|
| }
|
| } else if (source->IsFPStackSlot()) {
|
| @@ -1916,7 +1916,7 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| // GapResolver may give us reg codes that don't map to actual
|
| // s-registers. Generate code to work around those cases.
|
| int dst_code = LocationOperand::cast(destination)->register_code();
|
| - __ VmovExtended(dst_code, src);
|
| + __ VmovExtended(dst_code, src, kScratchReg);
|
| }
|
| } else {
|
| DCHECK(destination->IsFPStackSlot());
|
| @@ -1988,11 +1988,15 @@ void CodeGenerator::AssembleSwap(InstructionOperand* source,
|
| int src_code = LocationOperand::cast(source)->register_code();
|
| if (destination->IsFPRegister()) {
|
| int dst_code = LocationOperand::cast(destination)->register_code();
|
| - __ VswpExtended(dst_code, src_code);
|
| + __ VmovExtended(temp.low().code(), src_code, kScratchReg);
|
| + __ VmovExtended(src_code, dst_code, kScratchReg);
|
| + __ VmovExtended(dst_code, temp.low().code(), kScratchReg);
|
| } else {
|
| DCHECK(destination->IsFPStackSlot());
|
| MemOperand dst = g.ToMemOperand(destination);
|
| - __ VswpExtended(dst, src_code);
|
| + __ VmovExtended(temp.low().code(), src_code, kScratchReg);
|
| + __ VmovExtended(src_code, dst, kScratchReg);
|
| + __ vstr(temp.low(), dst);
|
| }
|
| }
|
| } else if (source->IsFPStackSlot()) {
|
|
|