OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); | 57 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); |
58 void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); | 58 void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); |
59 public: | 59 public: |
60 void Jump(Register target, Condition cond = al); | 60 void Jump(Register target, Condition cond = al); |
61 void Jump(byte* target, RelocInfo::Mode rmode, Condition cond = al); | 61 void Jump(byte* target, RelocInfo::Mode rmode, Condition cond = al); |
62 void Jump(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al); | 62 void Jump(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al); |
63 void Call(Register target, Condition cond = al); | 63 void Call(Register target, Condition cond = al); |
64 void Call(byte* target, RelocInfo::Mode rmode, Condition cond = al); | 64 void Call(byte* target, RelocInfo::Mode rmode, Condition cond = al); |
65 void Call(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al); | 65 void Call(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al); |
66 void Ret(Condition cond = al); | 66 void Ret(Condition cond = al); |
| 67 void Drop(int stack_elements, Condition cond = al); |
| 68 void Call(Label* target); |
| 69 void Move(Register dst, Handle<Object> value); |
67 // Jumps to the label at the index given by the Smi in "index". | 70 // Jumps to the label at the index given by the Smi in "index". |
68 void SmiJumpTable(Register index, Vector<Label*> targets); | 71 void SmiJumpTable(Register index, Vector<Label*> targets); |
69 // Load an object from the root table. | 72 // Load an object from the root table. |
70 void LoadRoot(Register destination, | 73 void LoadRoot(Register destination, |
71 Heap::RootListIndex index, | 74 Heap::RootListIndex index, |
72 Condition cond = al); | 75 Condition cond = al); |
73 | 76 |
74 // Sets the remembered set bit for [address+offset], where address is the | 77 // Sets the remembered set bit for [address+offset], where address is the |
75 // address of the heap object 'object'. The address must be in the first 8K | 78 // address of the heap object 'object'. The address must be in the first 8K |
76 // of an allocated page. The 'scratch' register is used in the | 79 // of an allocated page. The 'scratch' register is used in the |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 #endif | 144 #endif |
142 | 145 |
143 // --------------------------------------------------------------------------- | 146 // --------------------------------------------------------------------------- |
144 // Exception handling | 147 // Exception handling |
145 | 148 |
146 // Push a new try handler and link into try handler chain. | 149 // Push a new try handler and link into try handler chain. |
147 // The return address must be passed in register lr. | 150 // The return address must be passed in register lr. |
148 // On exit, r0 contains TOS (code slot). | 151 // On exit, r0 contains TOS (code slot). |
149 void PushTryHandler(CodeLocation try_location, HandlerType type); | 152 void PushTryHandler(CodeLocation try_location, HandlerType type); |
150 | 153 |
| 154 // Unlink the stack handler on top of the stack from the try handler chain. |
| 155 void PopTryHandler(); |
151 | 156 |
152 // --------------------------------------------------------------------------- | 157 // --------------------------------------------------------------------------- |
153 // Inline caching support | 158 // Inline caching support |
154 | 159 |
155 // Generates code that verifies that the maps of objects in the | 160 // Generates code that verifies that the maps of objects in the |
156 // prototype chain of object hasn't changed since the code was | 161 // prototype chain of object hasn't changed since the code was |
157 // generated and branches to the miss label if any map has. If | 162 // generated and branches to the miss label if any map has. If |
158 // necessary the function also generates code for security check | 163 // necessary the function also generates code for security check |
159 // in case of global object holders. The scratch and holder | 164 // in case of global object holders. The scratch and holder |
160 // registers are always clobbered, but the object register is only | 165 // registers are always clobbered, but the object register is only |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
404 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 409 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
405 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 410 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
406 #else | 411 #else |
407 #define ACCESS_MASM(masm) masm-> | 412 #define ACCESS_MASM(masm) masm-> |
408 #endif | 413 #endif |
409 | 414 |
410 | 415 |
411 } } // namespace v8::internal | 416 } } // namespace v8::internal |
412 | 417 |
413 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 418 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
OLD | NEW |