OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 void ProcessDeferred(); | 198 void ProcessDeferred(); |
199 | 199 |
200 bool is_eval() { return is_eval_; } | 200 bool is_eval() { return is_eval_; } |
201 | 201 |
202 // State | 202 // State |
203 bool has_cc() const { return cc_reg_ != al; } | 203 bool has_cc() const { return cc_reg_ != al; } |
204 TypeofState typeof_state() const { return state_->typeof_state(); } | 204 TypeofState typeof_state() const { return state_->typeof_state(); } |
205 JumpTarget* true_target() const { return state_->true_target(); } | 205 JumpTarget* true_target() const { return state_->true_target(); } |
206 JumpTarget* false_target() const { return state_->false_target(); } | 206 JumpTarget* false_target() const { return state_->false_target(); } |
207 | 207 |
| 208 // We don't track loop nesting level on ARM yet. |
| 209 int loop_nesting() const { return 0; } |
208 | 210 |
209 // Node visitors. | 211 // Node visitors. |
210 void VisitStatements(ZoneList<Statement*>* statements); | 212 void VisitStatements(ZoneList<Statement*>* statements); |
211 | 213 |
212 #define DEF_VISIT(type) \ | 214 #define DEF_VISIT(type) \ |
213 void Visit##type(type* node); | 215 void Visit##type(type* node); |
214 NODE_LIST(DEF_VISIT) | 216 NODE_LIST(DEF_VISIT) |
215 #undef DEF_VISIT | 217 #undef DEF_VISIT |
216 | 218 |
217 // Visit a statement and then spill the virtual frame if control flow can | 219 // Visit a statement and then spill the virtual frame if control flow can |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 | 312 |
311 static InlineRuntimeLUT* FindInlineRuntimeLUT(Handle<String> name); | 313 static InlineRuntimeLUT* FindInlineRuntimeLUT(Handle<String> name); |
312 bool CheckForInlineRuntimeCall(CallRuntime* node); | 314 bool CheckForInlineRuntimeCall(CallRuntime* node); |
313 static bool PatchInlineRuntimeEntry(Handle<String> name, | 315 static bool PatchInlineRuntimeEntry(Handle<String> name, |
314 const InlineRuntimeLUT& new_entry, | 316 const InlineRuntimeLUT& new_entry, |
315 InlineRuntimeLUT* old_entry); | 317 InlineRuntimeLUT* old_entry); |
316 | 318 |
317 Handle<JSFunction> BuildBoilerplate(FunctionLiteral* node); | 319 Handle<JSFunction> BuildBoilerplate(FunctionLiteral* node); |
318 void ProcessDeclarations(ZoneList<Declaration*>* declarations); | 320 void ProcessDeclarations(ZoneList<Declaration*>* declarations); |
319 | 321 |
320 Handle<Code> ComputeCallInitialize(int argc); | 322 Handle<Code> ComputeCallInitialize(int argc, InlineCacheInLoop in_loop); |
321 Handle<Code> ComputeCallInitializeInLoop(int argc); | |
322 | 323 |
323 // Declare global variables and functions in the given array of | 324 // Declare global variables and functions in the given array of |
324 // name/value pairs. | 325 // name/value pairs. |
325 void DeclareGlobals(Handle<FixedArray> pairs); | 326 void DeclareGlobals(Handle<FixedArray> pairs); |
326 | 327 |
327 // Instantiate the function boilerplate. | 328 // Instantiate the function boilerplate. |
328 void InstantiateBoilerplate(Handle<JSFunction> boilerplate); | 329 void InstantiateBoilerplate(Handle<JSFunction> boilerplate); |
329 | 330 |
330 // Support for type checks. | 331 // Support for type checks. |
331 void GenerateIsSmi(ZoneList<Expression*>* args); | 332 void GenerateIsSmi(ZoneList<Expression*>* args); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 friend class JumpTarget; | 450 friend class JumpTarget; |
450 friend class Reference; | 451 friend class Reference; |
451 | 452 |
452 DISALLOW_COPY_AND_ASSIGN(CodeGenerator); | 453 DISALLOW_COPY_AND_ASSIGN(CodeGenerator); |
453 }; | 454 }; |
454 | 455 |
455 | 456 |
456 } } // namespace v8::internal | 457 } } // namespace v8::internal |
457 | 458 |
458 #endif // V8_ARM_CODEGEN_ARM_H_ | 459 #endif // V8_ARM_CODEGEN_ARM_H_ |
OLD | NEW |