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_COMPILER_CODE_GENERATOR_IMPL_H_ | 5 #ifndef V8_COMPILER_CODE_GENERATOR_IMPL_H_ |
6 #define V8_COMPILER_CODE_GENERATOR_IMPL_H_ | 6 #define V8_COMPILER_CODE_GENERATOR_IMPL_H_ |
7 | 7 |
8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
9 #include "src/compiler/code-generator.h" | 9 #include "src/compiler/code-generator.h" |
10 #include "src/compiler/instruction.h" | 10 #include "src/compiler/instruction.h" |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 Linkage* linkage() const { return gen_->linkage(); } | 163 Linkage* linkage() const { return gen_->linkage(); } |
164 | 164 |
165 protected: | 165 protected: |
166 CodeGenerator* gen_; | 166 CodeGenerator* gen_; |
167 Instruction* instr_; | 167 Instruction* instr_; |
168 }; | 168 }; |
169 | 169 |
170 // Eager deoptimization exit. | 170 // Eager deoptimization exit. |
171 class DeoptimizationExit : public ZoneObject { | 171 class DeoptimizationExit : public ZoneObject { |
172 public: | 172 public: |
173 explicit DeoptimizationExit(int deoptimization_id) | 173 explicit DeoptimizationExit(int deoptimization_id, SourcePosition pos) |
174 : deoptimization_id_(deoptimization_id) {} | 174 : deoptimization_id_(deoptimization_id), pos_(pos) {} |
175 | 175 |
176 int deoptimization_id() const { return deoptimization_id_; } | 176 int deoptimization_id() const { return deoptimization_id_; } |
177 Label* label() { return &label_; } | 177 Label* label() { return &label_; } |
| 178 SourcePosition pos() const { return pos_; } |
178 | 179 |
179 private: | 180 private: |
180 int const deoptimization_id_; | 181 int const deoptimization_id_; |
181 Label label_; | 182 Label label_; |
| 183 SourcePosition const pos_; |
182 }; | 184 }; |
183 | 185 |
184 // Generator for out-of-line code that is emitted after the main code is done. | 186 // Generator for out-of-line code that is emitted after the main code is done. |
185 class OutOfLineCode : public ZoneObject { | 187 class OutOfLineCode : public ZoneObject { |
186 public: | 188 public: |
187 explicit OutOfLineCode(CodeGenerator* gen); | 189 explicit OutOfLineCode(CodeGenerator* gen); |
188 virtual ~OutOfLineCode(); | 190 virtual ~OutOfLineCode(); |
189 | 191 |
190 virtual void Generate() = 0; | 192 virtual void Generate() = 0; |
191 | 193 |
(...skipping 19 matching lines...) Expand all Loading... |
211 #if V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_ARM | 213 #if V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_ARM |
212 masm->CheckConstPool(true, false); | 214 masm->CheckConstPool(true, false); |
213 #endif | 215 #endif |
214 } | 216 } |
215 | 217 |
216 } // namespace compiler | 218 } // namespace compiler |
217 } // namespace internal | 219 } // namespace internal |
218 } // namespace v8 | 220 } // namespace v8 |
219 | 221 |
220 #endif // V8_COMPILER_CODE_GENERATOR_IMPL_H | 222 #endif // V8_COMPILER_CODE_GENERATOR_IMPL_H |
OLD | NEW |