Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: src/arm/macro-assembler-arm.h

Issue 466033: Fast codegen: Working break and continue. (Closed)
Patch Set: Fixed bug in ARM PopTryHandler, merge with head. Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « src/arm/fast-codegen-arm.cc ('k') | src/arm/macro-assembler-arm.cc » ('j') | src/fast-codegen.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698