Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(133)

Side by Side Diff: src/compiler/arm64/code-generator-arm64.cc

Issue 744743002: [turbofan] use double temp registers for stack-stack swap on arm64 (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/code-generator.h" 5 #include "src/compiler/code-generator.h"
6 6
7 #include "src/arm64/macro-assembler-arm64.h" 7 #include "src/arm64/macro-assembler-arm64.h"
8 #include "src/compiler/code-generator-impl.h" 8 #include "src/compiler/code-generator-impl.h"
9 #include "src/compiler/gap-resolver.h" 9 #include "src/compiler/gap-resolver.h"
10 #include "src/compiler/node-matchers.h" 10 #include "src/compiler/node-matchers.h"
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 __ Mov(dst, temp); 952 __ Mov(dst, temp);
953 } else { 953 } else {
954 DCHECK(destination->IsStackSlot()); 954 DCHECK(destination->IsStackSlot());
955 MemOperand dst = g.ToMemOperand(destination, masm()); 955 MemOperand dst = g.ToMemOperand(destination, masm());
956 __ Mov(temp, src); 956 __ Mov(temp, src);
957 __ Ldr(src, dst); 957 __ Ldr(src, dst);
958 __ Str(temp, dst); 958 __ Str(temp, dst);
959 } 959 }
960 } else if (source->IsStackSlot() || source->IsDoubleStackSlot()) { 960 } else if (source->IsStackSlot() || source->IsDoubleStackSlot()) {
961 UseScratchRegisterScope scope(masm()); 961 UseScratchRegisterScope scope(masm());
962 CPURegister temp_0 = scope.AcquireX(); 962 DoubleRegister temp_0 = scope.AcquireD();
963 CPURegister temp_1 = scope.AcquireX(); 963 DoubleRegister temp_1 = scope.AcquireD();
964 MemOperand src = g.ToMemOperand(source, masm()); 964 MemOperand src = g.ToMemOperand(source, masm());
965 MemOperand dst = g.ToMemOperand(destination, masm()); 965 MemOperand dst = g.ToMemOperand(destination, masm());
966 __ Ldr(temp_0, src); 966 __ Ldr(temp_0, src);
967 __ Ldr(temp_1, dst); 967 __ Ldr(temp_1, dst);
968 __ Str(temp_0, dst); 968 __ Str(temp_0, dst);
969 __ Str(temp_1, src); 969 __ Str(temp_1, src);
970 } else if (source->IsDoubleRegister()) { 970 } else if (source->IsDoubleRegister()) {
971 UseScratchRegisterScope scope(masm()); 971 UseScratchRegisterScope scope(masm());
972 FPRegister temp = scope.AcquireD(); 972 FPRegister temp = scope.AcquireD();
973 FPRegister src = g.ToDoubleRegister(source); 973 FPRegister src = g.ToDoubleRegister(source);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 } 1013 }
1014 } 1014 }
1015 MarkLazyDeoptSite(); 1015 MarkLazyDeoptSite();
1016 } 1016 }
1017 1017
1018 #undef __ 1018 #undef __
1019 1019
1020 } // namespace compiler 1020 } // namespace compiler
1021 } // namespace internal 1021 } // namespace internal
1022 } // namespace v8 1022 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698