| OLD | NEW | 
|---|
| 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "vm/globals.h" | 5 #include "vm/globals.h" | 
| 6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) | 
| 7 | 7 | 
| 8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" | 
| 9 #include "vm/code_generator.h" | 9 #include "vm/code_generator.h" | 
| 10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" | 
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 393   __ ldr(R0, FieldAddress(R0, Code::instructions_offset())); | 393   __ ldr(R0, FieldAddress(R0, Code::instructions_offset())); | 
| 394   __ AddImmediate(R0, R0, Instructions::HeaderSize() - kHeapObjectTag); | 394   __ AddImmediate(R0, R0, Instructions::HeaderSize() - kHeapObjectTag); | 
| 395   __ bx(R0); | 395   __ bx(R0); | 
| 396 } | 396 } | 
| 397 | 397 | 
| 398 | 398 | 
| 399 // Input parameters: | 399 // Input parameters: | 
| 400 //   R2: smi-tagged argument count, may be zero. | 400 //   R2: smi-tagged argument count, may be zero. | 
| 401 //   FP[kParamEndSlotFromFp + 1]: last argument. | 401 //   FP[kParamEndSlotFromFp + 1]: last argument. | 
| 402 static void PushArgumentsArray(Assembler* assembler) { | 402 static void PushArgumentsArray(Assembler* assembler) { | 
|  | 403   StubCode* stub_code = Isolate::Current()->stub_code(); | 
| 403   // Allocate array to store arguments of caller. | 404   // Allocate array to store arguments of caller. | 
| 404   __ LoadImmediate(R1, reinterpret_cast<intptr_t>(Object::null())); | 405   __ LoadImmediate(R1, reinterpret_cast<intptr_t>(Object::null())); | 
| 405   // R1: null element type for raw Array. | 406   // R1: null element type for raw Array. | 
| 406   // R2: smi-tagged argument count, may be zero. | 407   // R2: smi-tagged argument count, may be zero. | 
| 407   __ BranchLink(&StubCode::AllocateArrayLabel()); | 408   __ BranchLink(&stub_code->AllocateArrayLabel()); | 
| 408   // R0: newly allocated array. | 409   // R0: newly allocated array. | 
| 409   // R2: smi-tagged argument count, may be zero (was preserved by the stub). | 410   // R2: smi-tagged argument count, may be zero (was preserved by the stub). | 
| 410   __ Push(R0);  // Array is in R0 and on top of stack. | 411   __ Push(R0);  // Array is in R0 and on top of stack. | 
| 411   __ add(R1, FP, Operand(R2, LSL, 1)); | 412   __ add(R1, FP, Operand(R2, LSL, 1)); | 
| 412   __ AddImmediate(R1, kParamEndSlotFromFp * kWordSize); | 413   __ AddImmediate(R1, kParamEndSlotFromFp * kWordSize); | 
| 413   __ AddImmediate(R3, R0, Array::data_offset() - kHeapObjectTag); | 414   __ AddImmediate(R3, R0, Array::data_offset() - kHeapObjectTag); | 
| 414   // R1: address of first argument on stack. | 415   // R1: address of first argument on stack. | 
| 415   // R3: address of first argument in array. | 416   // R3: address of first argument in array. | 
| 416   Label loop; | 417   Label loop; | 
| 417   __ Bind(&loop); | 418   __ Bind(&loop); | 
| (...skipping 1413 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1831   const Register right = R0; | 1832   const Register right = R0; | 
| 1832   __ ldr(left, Address(SP, 1 * kWordSize)); | 1833   __ ldr(left, Address(SP, 1 * kWordSize)); | 
| 1833   __ ldr(right, Address(SP, 0 * kWordSize)); | 1834   __ ldr(right, Address(SP, 0 * kWordSize)); | 
| 1834   GenerateIdenticalWithNumberCheckStub(assembler, left, right, temp); | 1835   GenerateIdenticalWithNumberCheckStub(assembler, left, right, temp); | 
| 1835   __ Ret(); | 1836   __ Ret(); | 
| 1836 } | 1837 } | 
| 1837 | 1838 | 
| 1838 }  // namespace dart | 1839 }  // namespace dart | 
| 1839 | 1840 | 
| 1840 #endif  // defined TARGET_ARCH_ARM | 1841 #endif  // defined TARGET_ARCH_ARM | 
| OLD | NEW | 
|---|