OLD | NEW |
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 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "src/bailout-reason.h" | 10 #include "src/bailout-reason.h" |
(...skipping 2006 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2017 | 2017 |
2018 // Return true if the sequence is a young sequence geneated by | 2018 // Return true if the sequence is a young sequence geneated by |
2019 // EmitFrameSetupForCodeAgePatching. Otherwise, this method asserts that the | 2019 // EmitFrameSetupForCodeAgePatching. Otherwise, this method asserts that the |
2020 // sequence is a code age sequence (emitted by EmitCodeAgeSequence). | 2020 // sequence is a code age sequence (emitted by EmitCodeAgeSequence). |
2021 static bool IsYoungSequence(Isolate* isolate, byte* sequence); | 2021 static bool IsYoungSequence(Isolate* isolate, byte* sequence); |
2022 | 2022 |
2023 // Jumps to found label if a prototype map has dictionary elements. | 2023 // Jumps to found label if a prototype map has dictionary elements. |
2024 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, | 2024 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, |
2025 Register scratch1, Label* found); | 2025 Register scratch1, Label* found); |
2026 | 2026 |
| 2027 // OSR needs to adjust locals on the stack down one word over the vector. |
| 2028 void OSRDropVectorFromStack(int unoptimized_slot_count, Register scratch0, |
| 2029 Register scratch1); |
| 2030 |
2027 // Perform necessary maintenance operations before a push or after a pop. | 2031 // Perform necessary maintenance operations before a push or after a pop. |
2028 // | 2032 // |
2029 // Note that size is specified in bytes. | 2033 // Note that size is specified in bytes. |
2030 void PushPreamble(Operand total_size); | 2034 void PushPreamble(Operand total_size); |
2031 void PopPostamble(Operand total_size); | 2035 void PopPostamble(Operand total_size); |
2032 | 2036 |
2033 void PushPreamble(int count, int size) { PushPreamble(count * size); } | 2037 void PushPreamble(int count, int size) { PushPreamble(count * size); } |
2034 void PopPostamble(int count, int size) { PopPostamble(count * size); } | 2038 void PopPostamble(int count, int size) { PopPostamble(count * size); } |
2035 | 2039 |
2036 private: | 2040 private: |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2317 #error "Unsupported option" | 2321 #error "Unsupported option" |
2318 #define CODE_COVERAGE_STRINGIFY(x) #x | 2322 #define CODE_COVERAGE_STRINGIFY(x) #x |
2319 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 2323 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
2320 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2324 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
2321 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2325 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
2322 #else | 2326 #else |
2323 #define ACCESS_MASM(masm) masm-> | 2327 #define ACCESS_MASM(masm) masm-> |
2324 #endif | 2328 #endif |
2325 | 2329 |
2326 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2330 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |