| OLD | NEW | 
|     1 // Copyright 2009 the V8 project authors. All rights reserved. |     1 // Copyright 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 154 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   165     // Visit all the explicit declarations unless there is an illegal |   165     // Visit all the explicit declarations unless there is an illegal | 
|   166     // redeclaration. |   166     // redeclaration. | 
|   167     if (scope()->HasIllegalRedeclaration()) { |   167     if (scope()->HasIllegalRedeclaration()) { | 
|   168       scope()->VisitIllegalRedeclaration(this); |   168       scope()->VisitIllegalRedeclaration(this); | 
|   169     } else { |   169     } else { | 
|   170       VisitDeclarations(scope()->declarations()); |   170       VisitDeclarations(scope()->declarations()); | 
|   171     } |   171     } | 
|   172   } |   172   } | 
|   173  |   173  | 
|   174   // Check the stack for overflow or break request. |   174   // Check the stack for overflow or break request. | 
|   175   // Put the lr setup instruction in the delay slot.  The kInstrSize is |  | 
|   176   // added to the implicit 8 byte offset that always applies to operations |  | 
|   177   // with pc and gives a return address 12 bytes down. |  | 
|   178   { Comment cmnt(masm_, "[ Stack check"); |   175   { Comment cmnt(masm_, "[ Stack check"); | 
|   179     __ LoadRoot(r2, Heap::kStackLimitRootIndex); |   176     __ LoadRoot(r2, Heap::kStackLimitRootIndex); | 
|   180     __ add(lr, pc, Operand(Assembler::kInstrSize)); |  | 
|   181     __ cmp(sp, Operand(r2)); |   177     __ cmp(sp, Operand(r2)); | 
|   182     StackCheckStub stub; |   178     StackCheckStub stub; | 
|   183     __ mov(pc, |   179     __ mov(ip, | 
|   184            Operand(reinterpret_cast<intptr_t>(stub.GetCode().location()), |   180            Operand(reinterpret_cast<intptr_t>(stub.GetCode().location()), | 
|   185                    RelocInfo::CODE_TARGET), |   181                    RelocInfo::CODE_TARGET), | 
|   186            LeaveCC, |   182            LeaveCC, | 
|   187            lo); |   183            lo); | 
 |   184     __ Call(ip, lo); | 
|   188   } |   185   } | 
|   189  |   186  | 
|   190   if (FLAG_trace) { |   187   if (FLAG_trace) { | 
|   191     __ CallRuntime(Runtime::kTraceEnter, 0); |   188     __ CallRuntime(Runtime::kTraceEnter, 0); | 
|   192   } |   189   } | 
|   193  |   190  | 
|   194   { Comment cmnt(masm_, "[ Body"); |   191   { Comment cmnt(masm_, "[ Body"); | 
|   195     ASSERT(loop_depth() == 0); |   192     ASSERT(loop_depth() == 0); | 
|   196     VisitStatements(function()->body()); |   193     VisitStatements(function()->body()); | 
|   197     ASSERT(loop_depth() == 0); |   194     ASSERT(loop_depth() == 0); | 
| (...skipping 3223 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3421   __ mov(r1, Operand(r1, ASR, 1));  // Un-smi-tag value. |  3418   __ mov(r1, Operand(r1, ASR, 1));  // Un-smi-tag value. | 
|  3422   __ add(pc, r1, Operand(masm_->CodeObject())); |  3419   __ add(pc, r1, Operand(masm_->CodeObject())); | 
|  3423 } |  3420 } | 
|  3424  |  3421  | 
|  3425  |  3422  | 
|  3426 #undef __ |  3423 #undef __ | 
|  3427  |  3424  | 
|  3428 } }  // namespace v8::internal |  3425 } }  // namespace v8::internal | 
|  3429  |  3426  | 
|  3430 #endif  // V8_TARGET_ARCH_ARM |  3427 #endif  // V8_TARGET_ARCH_ARM | 
| OLD | NEW |