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

Side by Side Diff: src/compiler/arm64/instruction-selector-arm64.cc

Issue 1376173003: [arm64] Use SP-offset rather than FP-offset. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase. Created 5 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 | « src/compiler/arm64/instruction-codes-arm64.h ('k') | src/compiler/frame.h » ('j') | 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/instruction-selector-impl.h" 5 #include "src/compiler/instruction-selector-impl.h"
6 #include "src/compiler/node-matchers.h" 6 #include "src/compiler/node-matchers.h"
7 #include "src/compiler/node-properties.h" 7 #include "src/compiler/node-properties.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
(...skipping 1425 matching lines...) Expand 10 before | Expand all | Expand 10 after
1436 1436
1437 // Push the arguments to the stack. 1437 // Push the arguments to the stack.
1438 int aligned_push_count = static_cast<int>(arguments->size()); 1438 int aligned_push_count = static_cast<int>(arguments->size());
1439 bool pushed_count_uneven = aligned_push_count & 1; 1439 bool pushed_count_uneven = aligned_push_count & 1;
1440 // TODO(dcarney): claim and poke probably take small immediates, 1440 // TODO(dcarney): claim and poke probably take small immediates,
1441 // loop here or whatever. 1441 // loop here or whatever.
1442 // Bump the stack pointer(s). 1442 // Bump the stack pointer(s).
1443 if (aligned_push_count > 0) { 1443 if (aligned_push_count > 0) {
1444 // TODO(dcarney): it would be better to bump the csp here only 1444 // TODO(dcarney): it would be better to bump the csp here only
1445 // and emit paired stores with increment for non c frames. 1445 // and emit paired stores with increment for non c frames.
1446 Emit(kArm64Claim, g.NoOutput(), g.TempImmediate(aligned_push_count)); 1446 Emit(kArm64ClaimForCallArguments, g.NoOutput(),
1447 g.TempImmediate(aligned_push_count));
1447 } 1448 }
1448 // Move arguments to the stack. 1449 // Move arguments to the stack.
1449 { 1450 {
1450 int slot = aligned_push_count - 1; 1451 int slot = aligned_push_count - 1;
1451 // Emit the uneven pushes. 1452 // Emit the uneven pushes.
1452 if (pushed_count_uneven) { 1453 if (pushed_count_uneven) {
1453 Node* input = (*arguments)[slot]; 1454 Node* input = (*arguments)[slot];
1454 Emit(kArm64Poke, g.NoOutput(), g.UseRegister(input), 1455 Emit(kArm64Poke, g.NoOutput(), g.UseRegister(input),
1455 g.TempImmediate(slot)); 1456 g.TempImmediate(slot));
1456 slot--; 1457 slot--;
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
1979 MachineOperatorBuilder::kFloat64RoundTruncate | 1980 MachineOperatorBuilder::kFloat64RoundTruncate |
1980 MachineOperatorBuilder::kFloat64RoundTiesAway | 1981 MachineOperatorBuilder::kFloat64RoundTiesAway |
1981 MachineOperatorBuilder::kWord32ShiftIsSafe | 1982 MachineOperatorBuilder::kWord32ShiftIsSafe |
1982 MachineOperatorBuilder::kInt32DivIsSafe | 1983 MachineOperatorBuilder::kInt32DivIsSafe |
1983 MachineOperatorBuilder::kUint32DivIsSafe; 1984 MachineOperatorBuilder::kUint32DivIsSafe;
1984 } 1985 }
1985 1986
1986 } // namespace compiler 1987 } // namespace compiler
1987 } // namespace internal 1988 } // namespace internal
1988 } // namespace v8 1989 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm64/instruction-codes-arm64.h ('k') | src/compiler/frame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698