| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 1475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1486 // AllocationSiteInfo support. Arrays may have an associated | 1486 // AllocationSiteInfo support. Arrays may have an associated |
| 1487 // AllocationSiteInfo object that can be checked for in order to pretransition | 1487 // AllocationSiteInfo object that can be checked for in order to pretransition |
| 1488 // to another type. | 1488 // to another type. |
| 1489 // On entry, receiver should point to the array object. | 1489 // On entry, receiver should point to the array object. |
| 1490 // If allocation info is present, the Z flag is set (so that the eq | 1490 // If allocation info is present, the Z flag is set (so that the eq |
| 1491 // condition will pass). | 1491 // condition will pass). |
| 1492 void TestJSArrayForAllocationSiteInfo(Register receiver, | 1492 void TestJSArrayForAllocationSiteInfo(Register receiver, |
| 1493 Register scratch1, | 1493 Register scratch1, |
| 1494 Register scratch2); | 1494 Register scratch2); |
| 1495 | 1495 |
| 1496 // The stack pointer has to switch between csp and jssp when setting up and |
| 1497 // destroying the exit frame. Hence preserving/restoring the registers is |
| 1498 // slightly more complicated than simple push/pop operations. |
| 1499 void ExitFramePreserveFPRegs(); |
| 1500 void ExitFrameRestoreFPRegs(); |
| 1501 |
| 1496 // Enter exit frame. Exit frames are used when calling C code from generated | 1502 // Enter exit frame. Exit frames are used when calling C code from generated |
| 1497 // (JavaScript) code. | 1503 // (JavaScript) code. |
| 1498 // | 1504 // |
| 1499 // The stack pointer must be jssp on entry, and will be set to csp by this | 1505 // The stack pointer must be jssp on entry, and will be set to csp by this |
| 1500 // function. The frame pointer is also configured, but the only other | 1506 // function. The frame pointer is also configured, but the only other |
| 1501 // registers modified by this function are the provided scratch register, and | 1507 // registers modified by this function are the provided scratch register, and |
| 1502 // jssp. | 1508 // jssp. |
| 1503 // | 1509 // |
| 1504 // The 'extra_space' argument can be used to allocate some space in the exit | 1510 // The 'extra_space' argument can be used to allocate some space in the exit |
| 1505 // frame that will be ignored by the GC. This space will be reserved in the | 1511 // frame that will be ignored by the GC. This space will be reserved in the |
| 1506 // bottom of the frame immediately above the return address slot. | 1512 // bottom of the frame immediately above the return address slot. |
| 1507 // | 1513 // |
| 1508 // Set up a stack frame and registers as follows: | 1514 // Set up a stack frame and registers as follows: |
| 1509 // fp[8]: CallerPC (lr) | 1515 // fp[8]: CallerPC (lr) |
| 1510 // fp -> fp[0]: CallerFP (old fp) | 1516 // fp -> fp[0]: CallerFP (old fp) |
| 1511 // fp[-8]: SPOffset (new csp) | 1517 // fp[-8]: SPOffset (new csp) |
| 1512 // fp[-16]: CodeObject() | 1518 // fp[-16]: CodeObject() |
| 1513 // csp[...]: Saved doubles, if saved_doubles is true. | 1519 // fp[-16 - fp-size]: Saved doubles, if saved_doubles is true. |
| 1514 // csp[8]: Memory reserved for the caller if extra_space != 0. | 1520 // csp[8]: Memory reserved for the caller if extra_space != 0. |
| 1515 // Alignment padding, if necessary. | 1521 // Alignment padding, if necessary. |
| 1516 // csp -> csp[0]: Space reserved for the return address. | 1522 // csp -> csp[0]: Space reserved for the return address. |
| 1517 // | 1523 // |
| 1518 // This function also stores the new frame information in the top frame, so | 1524 // This function also stores the new frame information in the top frame, so |
| 1519 // that the new frame becomes the current frame. | 1525 // that the new frame becomes the current frame. |
| 1520 void EnterExitFrame(bool save_doubles, | 1526 void EnterExitFrame(bool save_doubles, |
| 1521 const Register& scratch, | 1527 const Register& scratch, |
| 1522 int extra_space = 0); | 1528 int extra_space = 0); |
| 1523 | 1529 |
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2110 #error "Unsupported option" | 2116 #error "Unsupported option" |
| 2111 #define CODE_COVERAGE_STRINGIFY(x) #x | 2117 #define CODE_COVERAGE_STRINGIFY(x) #x |
| 2112 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 2118 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
| 2113 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2119 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
| 2114 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2120 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
| 2115 #else | 2121 #else |
| 2116 #define ACCESS_MASM(masm) masm-> | 2122 #define ACCESS_MASM(masm) masm-> |
| 2117 #endif | 2123 #endif |
| 2118 | 2124 |
| 2119 #endif // V8_A64_MACRO_ASSEMBLER_A64_H_ | 2125 #endif // V8_A64_MACRO_ASSEMBLER_A64_H_ |
| OLD | NEW |