| 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_STUB_CODE_H_ | 5 #ifndef VM_STUB_CODE_H_ | 
| 6 #define VM_STUB_CODE_H_ | 6 #define VM_STUB_CODE_H_ | 
| 7 | 7 | 
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" | 
| 9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" | 
| 10 | 10 | 
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 109   static bool InInvocationStub(uword pc); | 109   static bool InInvocationStub(uword pc); | 
| 110 | 110 | 
| 111   // Check if the specified pc is in the jump to exception handler stub. | 111   // Check if the specified pc is in the jump to exception handler stub. | 
| 112   static bool InJumpToExceptionHandlerStub(uword pc); | 112   static bool InJumpToExceptionHandlerStub(uword pc); | 
| 113 | 113 | 
| 114   // Returns NULL if no stub found. | 114   // Returns NULL if no stub found. | 
| 115   static const char* NameOfStub(uword entry_point); | 115   static const char* NameOfStub(uword entry_point); | 
| 116 | 116 | 
| 117   // Define the shared stub code accessors. | 117   // Define the shared stub code accessors. | 
| 118 #define STUB_CODE_ACCESSOR(name)                                               \ | 118 #define STUB_CODE_ACCESSOR(name)                                               \ | 
| 119   static StubEntry* name##_entry() {                                           \ | 119   static const StubEntry* name##_entry() {                                     \ | 
| 120     return name##_entry_;                                                      \ | 120     return name##_entry_;                                                      \ | 
| 121   }                                                                            \ | 121   }                                                                            \ | 
| 122   static const ExternalLabel& name##Label() {                                  \ |  | 
| 123     return name##_entry()->label();                                            \ |  | 
| 124   }                                                                            \ |  | 
| 125   static uword name##EntryPoint() {                                            \ |  | 
| 126     return name##_entry()->EntryPoint();                                       \ |  | 
| 127   }                                                                            \ |  | 
| 128   static intptr_t name##Size() {                                               \ | 122   static intptr_t name##Size() {                                               \ | 
| 129     return name##_entry()->Size();                                             \ | 123     return name##_entry()->Size();                                             \ | 
| 130   } | 124   } | 
| 131   VM_STUB_CODE_LIST(STUB_CODE_ACCESSOR); | 125   VM_STUB_CODE_LIST(STUB_CODE_ACCESSOR); | 
| 132 #undef STUB_CODE_ACCESSOR | 126 #undef STUB_CODE_ACCESSOR | 
| 133 | 127 | 
| 134   static RawCode* GetAllocationStubForClass(const Class& cls); | 128   static RawCode* GetAllocationStubForClass(const Class& cls); | 
| 135 | 129 | 
| 136   static uword UnoptimizedStaticCallEntryPoint(intptr_t num_args_tested); | 130   static const StubEntry* UnoptimizedStaticCallEntry(intptr_t num_args_tested); | 
| 137 | 131 | 
| 138   static const intptr_t kNoInstantiator = 0; | 132   static const intptr_t kNoInstantiator = 0; | 
| 139 | 133 | 
| 140   static void EmitMegamorphicLookup( | 134   static void EmitMegamorphicLookup( | 
| 141       Assembler*, Register recv, Register cache, Register target); | 135       Assembler*, Register recv, Register cache, Register target); | 
| 142 | 136 | 
| 143  private: | 137  private: | 
| 144   friend class MegamorphicCacheTable; | 138   friend class MegamorphicCacheTable; | 
| 145 | 139 | 
| 146   static const intptr_t kStubCodeSize = 4 * KB; | 140   static const intptr_t kStubCodeSize = 4 * KB; | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
| 177       RangeCollectionMode range_collection_mode, | 171       RangeCollectionMode range_collection_mode, | 
| 178       bool optimized = false); | 172       bool optimized = false); | 
| 179   static void GenerateUsageCounterIncrement(Assembler* assembler, | 173   static void GenerateUsageCounterIncrement(Assembler* assembler, | 
| 180                                             Register temp_reg); | 174                                             Register temp_reg); | 
| 181   static void GenerateOptimizedUsageCounterIncrement(Assembler* assembler); | 175   static void GenerateOptimizedUsageCounterIncrement(Assembler* assembler); | 
| 182 }; | 176 }; | 
| 183 | 177 | 
| 184 }  // namespace dart | 178 }  // namespace dart | 
| 185 | 179 | 
| 186 #endif  // VM_STUB_CODE_H_ | 180 #endif  // VM_STUB_CODE_H_ | 
| OLD | NEW | 
|---|