OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 // Class for patching compiled code. | 4 // Class for patching compiled code. |
5 | 5 |
6 #ifndef VM_CODE_PATCHER_H_ | 6 #ifndef VM_CODE_PATCHER_H_ |
7 #define VM_CODE_PATCHER_H_ | 7 #define VM_CODE_PATCHER_H_ |
8 | 8 |
9 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
10 | 10 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 | 46 |
47 // Return the target address of the static call before return_address | 47 // Return the target address of the static call before return_address |
48 // in given code. | 48 // in given code. |
49 static uword GetStaticCallTargetAt(uword return_address, const Code& code); | 49 static uword GetStaticCallTargetAt(uword return_address, const Code& code); |
50 | 50 |
51 // Get instance call information. Returns the call target and sets each | 51 // Get instance call information. Returns the call target and sets each |
52 // of the output parameters ic_data and arguments_descriptor if they are | 52 // of the output parameters ic_data and arguments_descriptor if they are |
53 // non-NULL. | 53 // non-NULL. |
54 static uword GetInstanceCallAt(uword return_address, | 54 static uword GetInstanceCallAt(uword return_address, |
55 const Code& code, | 55 const Code& code, |
56 ICData* ic_data, | 56 ICData* ic_data); |
57 Array* arguments_descriptor); | |
58 | 57 |
59 // Return the arguments descriptor array of the closure call | 58 // Return the arguments descriptor array of the closure call |
60 // before the given return address. | 59 // before the given return address. |
61 static RawArray* GetClosureArgDescAt(uword return_address, | 60 static RawArray* GetClosureArgDescAt(uword return_address, |
62 const Code& code); | 61 const Code& code); |
63 | 62 |
64 static intptr_t InstanceCallSizeInBytes(); | 63 static intptr_t InstanceCallSizeInBytes(); |
65 | 64 |
66 static void InsertCallAt(uword start, uword target); | 65 static void InsertCallAt(uword start, uword target); |
67 }; | 66 }; |
68 | 67 |
69 } // namespace dart | 68 } // namespace dart |
70 | 69 |
71 #endif // VM_CODE_PATCHER_H_ | 70 #endif // VM_CODE_PATCHER_H_ |
OLD | NEW |