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

Side by Side Diff: src/arm64/code-stubs-arm64.cc

Issue 502713003: Encode CEntryStub properties in the minor key. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: encode Created 6 years, 3 months 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 | Annotate | Revision Log
« no previous file with comments | « src/arm64/code-stubs-arm64.h ('k') | src/code-stubs.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 1359 matching lines...) Expand 10 before | Expand all | Expand 10 after
1370 // (arg[argc-2]), or just below the receiver in case there are no arguments. 1370 // (arg[argc-2]), or just below the receiver in case there are no arguments.
1371 // - Adjust for the arg[] array. 1371 // - Adjust for the arg[] array.
1372 Register temp_argv = x11; 1372 Register temp_argv = x11;
1373 __ Add(temp_argv, jssp, Operand(x0, LSL, kPointerSizeLog2)); 1373 __ Add(temp_argv, jssp, Operand(x0, LSL, kPointerSizeLog2));
1374 // - Adjust for the receiver. 1374 // - Adjust for the receiver.
1375 __ Sub(temp_argv, temp_argv, 1 * kPointerSize); 1375 __ Sub(temp_argv, temp_argv, 1 * kPointerSize);
1376 1376
1377 // Enter the exit frame. Reserve three slots to preserve x21-x23 callee-saved 1377 // Enter the exit frame. Reserve three slots to preserve x21-x23 callee-saved
1378 // registers. 1378 // registers.
1379 FrameScope scope(masm, StackFrame::MANUAL); 1379 FrameScope scope(masm, StackFrame::MANUAL);
1380 __ EnterExitFrame(save_doubles_, x10, 3); 1380 __ EnterExitFrame(save_doubles(), x10, 3);
1381 DCHECK(csp.Is(__ StackPointer())); 1381 DCHECK(csp.Is(__ StackPointer()));
1382 1382
1383 // Poke callee-saved registers into reserved space. 1383 // Poke callee-saved registers into reserved space.
1384 __ Poke(argv, 1 * kPointerSize); 1384 __ Poke(argv, 1 * kPointerSize);
1385 __ Poke(argc, 2 * kPointerSize); 1385 __ Poke(argc, 2 * kPointerSize);
1386 __ Poke(target, 3 * kPointerSize); 1386 __ Poke(target, 3 * kPointerSize);
1387 1387
1388 // We normally only keep tagged values in callee-saved registers, as they 1388 // We normally only keep tagged values in callee-saved registers, as they
1389 // could be pushed onto the stack by called stubs and functions, and on the 1389 // could be pushed onto the stack by called stubs and functions, and on the
1390 // stack they can confuse the GC. However, we're only calling C functions 1390 // stack they can confuse the GC. However, we're only calling C functions
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1467 1467
1468 // The call succeeded, so unwind the stack and return. 1468 // The call succeeded, so unwind the stack and return.
1469 1469
1470 // Restore callee-saved registers x21-x23. 1470 // Restore callee-saved registers x21-x23.
1471 __ Mov(x11, argc); 1471 __ Mov(x11, argc);
1472 1472
1473 __ Peek(argv, 1 * kPointerSize); 1473 __ Peek(argv, 1 * kPointerSize);
1474 __ Peek(argc, 2 * kPointerSize); 1474 __ Peek(argc, 2 * kPointerSize);
1475 __ Peek(target, 3 * kPointerSize); 1475 __ Peek(target, 3 * kPointerSize);
1476 1476
1477 __ LeaveExitFrame(save_doubles_, x10, true); 1477 __ LeaveExitFrame(save_doubles(), x10, true);
1478 DCHECK(jssp.Is(__ StackPointer())); 1478 DCHECK(jssp.Is(__ StackPointer()));
1479 // Pop or drop the remaining stack slots and return from the stub. 1479 // Pop or drop the remaining stack slots and return from the stub.
1480 // jssp[24]: Arguments array (of size argc), including receiver. 1480 // jssp[24]: Arguments array (of size argc), including receiver.
1481 // jssp[16]: Preserved x23 (used for target). 1481 // jssp[16]: Preserved x23 (used for target).
1482 // jssp[8]: Preserved x22 (used for argc). 1482 // jssp[8]: Preserved x22 (used for argc).
1483 // jssp[0]: Preserved x21 (used for argv). 1483 // jssp[0]: Preserved x21 (used for argv).
1484 __ Drop(x11); 1484 __ Drop(x11);
1485 __ AssertFPCRState(); 1485 __ AssertFPCRState();
1486 __ Ret(); 1486 __ Ret();
1487 1487
(...skipping 3935 matching lines...) Expand 10 before | Expand all | Expand 10 after
5423 MemOperand(fp, 6 * kPointerSize), 5423 MemOperand(fp, 6 * kPointerSize),
5424 NULL); 5424 NULL);
5425 } 5425 }
5426 5426
5427 5427
5428 #undef __ 5428 #undef __
5429 5429
5430 } } // namespace v8::internal 5430 } } // namespace v8::internal
5431 5431
5432 #endif // V8_TARGET_ARCH_ARM64 5432 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm64/code-stubs-arm64.h ('k') | src/code-stubs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698