| 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 |