| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_STACK_FRAME_H_ | 5 #ifndef VM_STACK_FRAME_H_ |
| 6 #define VM_STACK_FRAME_H_ | 6 #define VM_STACK_FRAME_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/object.h" | 9 #include "vm/object.h" |
| 10 #include "vm/stub_code.h" | 10 #include "vm/stub_code.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 // The pool pointer is not implemented on all architectures. | 43 // The pool pointer is not implemented on all architectures. |
| 44 static int SavedCallerPpSlotFromFp() { | 44 static int SavedCallerPpSlotFromFp() { |
| 45 if (kSavedCallerPpSlotFromFp != kSavedCallerFpSlotFromFp) { | 45 if (kSavedCallerPpSlotFromFp != kSavedCallerFpSlotFromFp) { |
| 46 return kSavedCallerPpSlotFromFp; | 46 return kSavedCallerPpSlotFromFp; |
| 47 } | 47 } |
| 48 UNREACHABLE(); | 48 UNREACHABLE(); |
| 49 return 0; | 49 return 0; |
| 50 } | 50 } |
| 51 | 51 |
| 52 void set_pc(uword value) { | 52 void set_pc(uword value) { |
| 53 *reinterpret_cast<uword*>(sp() + (kSavedPcSlotFromSp * kWordSize)) = value; | 53 *reinterpret_cast<uword*>(sp_ + (kSavedPcSlotFromSp * kWordSize)) = value; |
| 54 } | |
| 55 | |
| 56 void set_pc_marker(RawCode* code) { | |
| 57 *reinterpret_cast<RawCode**>(fp() + (kPcMarkerSlotFromFp * kWordSize)) = | |
| 58 code; | |
| 59 } | 54 } |
| 60 | 55 |
| 61 // Visit objects in the frame. | 56 // Visit objects in the frame. |
| 62 virtual void VisitObjectPointers(ObjectPointerVisitor* visitor); | 57 virtual void VisitObjectPointers(ObjectPointerVisitor* visitor); |
| 63 | 58 |
| 64 const char* ToCString() const; | 59 const char* ToCString() const; |
| 65 | 60 |
| 66 // Check validity of a frame, used for assertion purposes. | 61 // Check validity of a frame, used for assertion purposes. |
| 67 virtual bool IsValid() const; | 62 virtual bool IsValid() const; |
| 68 | 63 |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 uword pc_; | 324 uword pc_; |
| 330 GrowableArray<DeoptInstr*> deopt_instructions_; | 325 GrowableArray<DeoptInstr*> deopt_instructions_; |
| 331 ObjectPool& object_table_; | 326 ObjectPool& object_table_; |
| 332 | 327 |
| 333 DISALLOW_COPY_AND_ASSIGN(InlinedFunctionsIterator); | 328 DISALLOW_COPY_AND_ASSIGN(InlinedFunctionsIterator); |
| 334 }; | 329 }; |
| 335 | 330 |
| 336 } // namespace dart | 331 } // namespace dart |
| 337 | 332 |
| 338 #endif // VM_STACK_FRAME_H_ | 333 #endif // VM_STACK_FRAME_H_ |
| OLD | NEW |