OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 int prologue_offset() const { | 250 int prologue_offset() const { |
251 ASSERT_NE(kPrologueOffsetNotSet, prologue_offset_); | 251 ASSERT_NE(kPrologueOffsetNotSet, prologue_offset_); |
252 return prologue_offset_; | 252 return prologue_offset_; |
253 } | 253 } |
254 | 254 |
255 void set_prologue_offset(int prologue_offset) { | 255 void set_prologue_offset(int prologue_offset) { |
256 ASSERT_EQ(kPrologueOffsetNotSet, prologue_offset_); | 256 ASSERT_EQ(kPrologueOffsetNotSet, prologue_offset_); |
257 prologue_offset_ = prologue_offset; | 257 prologue_offset_ = prologue_offset; |
258 } | 258 } |
259 | 259 |
| 260 int frame_destroy_offset() const { |
| 261 ASSERT_NE(kPrologueOffsetNotSet, frame_destroy_offset_); |
| 262 return frame_destroy_offset_; |
| 263 } |
| 264 |
| 265 void set_frame_destroy_offset(int frame_destroy_offset) { |
| 266 ASSERT_EQ(kPrologueOffsetNotSet, frame_destroy_offset_); |
| 267 frame_destroy_offset_ = frame_destroy_offset; |
| 268 } |
| 269 |
| 270 |
260 private: | 271 private: |
261 Isolate* isolate_; | 272 Isolate* isolate_; |
262 | 273 |
263 // Compilation mode. | 274 // Compilation mode. |
264 // BASE is generated by the full codegen, optionally prepared for bailouts. | 275 // BASE is generated by the full codegen, optionally prepared for bailouts. |
265 // OPTIMIZE is optimized code generated by the Hydrogen-based backend. | 276 // OPTIMIZE is optimized code generated by the Hydrogen-based backend. |
266 // NONOPT is generated by the full codegen and is not prepared for | 277 // NONOPT is generated by the full codegen and is not prepared for |
267 // recompilation/bailouts. These functions are never recompiled. | 278 // recompilation/bailouts. These functions are never recompiled. |
268 enum Mode { | 279 enum Mode { |
269 BASE, | 280 BASE, |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 void SaveHandle(Handle<T> *object) { | 364 void SaveHandle(Handle<T> *object) { |
354 if (!object->is_null()) { | 365 if (!object->is_null()) { |
355 Handle<T> handle(*(*object)); | 366 Handle<T> handle(*(*object)); |
356 *object = handle; | 367 *object = handle; |
357 } | 368 } |
358 } | 369 } |
359 | 370 |
360 const char* bailout_reason_; | 371 const char* bailout_reason_; |
361 | 372 |
362 int prologue_offset_; | 373 int prologue_offset_; |
| 374 int frame_destroy_offset_; |
363 | 375 |
364 // A copy of shared_info()->opt_count() to avoid handle deref | 376 // A copy of shared_info()->opt_count() to avoid handle deref |
365 // during graph optimization. | 377 // during graph optimization. |
366 int opt_count_; | 378 int opt_count_; |
367 | 379 |
368 DISALLOW_COPY_AND_ASSIGN(CompilationInfo); | 380 DISALLOW_COPY_AND_ASSIGN(CompilationInfo); |
369 }; | 381 }; |
370 | 382 |
371 | 383 |
372 // Exactly like a CompilationInfo, except also creates and enters a | 384 // Exactly like a CompilationInfo, except also creates and enters a |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 | 566 |
555 static void RecordFunctionCompilation(Logger::LogEventsAndTags tag, | 567 static void RecordFunctionCompilation(Logger::LogEventsAndTags tag, |
556 CompilationInfo* info, | 568 CompilationInfo* info, |
557 Handle<SharedFunctionInfo> shared); | 569 Handle<SharedFunctionInfo> shared); |
558 }; | 570 }; |
559 | 571 |
560 | 572 |
561 } } // namespace v8::internal | 573 } } // namespace v8::internal |
562 | 574 |
563 #endif // V8_COMPILER_H_ | 575 #endif // V8_COMPILER_H_ |
OLD | NEW |