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 |