| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 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 6464 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  6475   __ Jump(r2); |  6475   __ Jump(r2); | 
|  6476 } |  6476 } | 
|  6477  |  6477  | 
|  6478  |  6478  | 
|  6479 void DirectCEntryStub::Generate(MacroAssembler* masm) { |  6479 void DirectCEntryStub::Generate(MacroAssembler* masm) { | 
|  6480   __ ldr(pc, MemOperand(sp, 0)); |  6480   __ ldr(pc, MemOperand(sp, 0)); | 
|  6481 } |  6481 } | 
|  6482  |  6482  | 
|  6483  |  6483  | 
|  6484 void DirectCEntryStub::GenerateCall(MacroAssembler* masm, |  6484 void DirectCEntryStub::GenerateCall(MacroAssembler* masm, | 
 |  6485                                     ExternalReference function) { | 
 |  6486   __ mov(r2, Operand(function)); | 
 |  6487   GenerateCall(masm, r2); | 
 |  6488 } | 
 |  6489  | 
 |  6490  | 
 |  6491 void DirectCEntryStub::GenerateCall(MacroAssembler* masm, | 
|  6485                                     Register target) { |  6492                                     Register target) { | 
|  6486   intptr_t code = |  6493   intptr_t code = | 
|  6487       reinterpret_cast<intptr_t>(GetCode(masm->isolate()).location()); |  6494       reinterpret_cast<intptr_t>(GetCode(masm->isolate()).location()); | 
|  6488   __ mov(lr, Operand(code, RelocInfo::CODE_TARGET)); |  6495   __ mov(lr, Operand(code, RelocInfo::CODE_TARGET)); | 
|  6489  |  6496  | 
|  6490   // Prevent literal pool emission during calculation of return address. |  6497   // Prevent literal pool emission during calculation of return address. | 
|  6491   Assembler::BlockConstPoolScope block_const_pool(masm); |  6498   Assembler::BlockConstPoolScope block_const_pool(masm); | 
|  6492  |  6499  | 
|  6493   // Push return address (accessible to GC through exit frame pc). |  6500   // Push return address (accessible to GC through exit frame pc). | 
|  6494   // Note that using pc with str is deprecated. |  6501   // Note that using pc with str is deprecated. | 
| (...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  7048  |  7055  | 
|  7049   __ bind(&need_incremental); |  7056   __ bind(&need_incremental); | 
|  7050  |  7057  | 
|  7051   // Fall through when we need to inform the incremental marker. |  7058   // Fall through when we need to inform the incremental marker. | 
|  7052 } |  7059 } | 
|  7053  |  7060  | 
|  7054  |  7061  | 
|  7055 void StoreArrayLiteralElementStub::Generate(MacroAssembler* masm) { |  7062 void StoreArrayLiteralElementStub::Generate(MacroAssembler* masm) { | 
|  7056   // ----------- S t a t e ------------- |  7063   // ----------- S t a t e ------------- | 
|  7057   //  -- r0    : element value to store |  7064   //  -- r0    : element value to store | 
 |  7065   //  -- r1    : array literal | 
 |  7066   //  -- r2    : map of array literal | 
|  7058   //  -- r3    : element index as smi |  7067   //  -- r3    : element index as smi | 
|  7059   //  -- sp[0] : array literal index in function as smi |  7068   //  -- r4    : array literal index in function as smi | 
|  7060   //  -- sp[4] : array literal |  | 
|  7061   // clobbers r1, r2, r4 |  | 
|  7062   // ----------------------------------- |  7069   // ----------------------------------- | 
|  7063  |  7070  | 
|  7064   Label element_done; |  7071   Label element_done; | 
|  7065   Label double_elements; |  7072   Label double_elements; | 
|  7066   Label smi_element; |  7073   Label smi_element; | 
|  7067   Label slow_elements; |  7074   Label slow_elements; | 
|  7068   Label fast_elements; |  7075   Label fast_elements; | 
|  7069  |  7076  | 
|  7070   // Get array literal index, array literal and its map. |  | 
|  7071   __ ldr(r4, MemOperand(sp, 0 * kPointerSize)); |  | 
|  7072   __ ldr(r1, MemOperand(sp, 1 * kPointerSize)); |  | 
|  7073   __ ldr(r2, FieldMemOperand(r1, JSObject::kMapOffset)); |  | 
|  7074  |  | 
|  7075   __ CheckFastElements(r2, r5, &double_elements); |  7077   __ CheckFastElements(r2, r5, &double_elements); | 
|  7076   // FAST_*_SMI_ELEMENTS or FAST_*_ELEMENTS |  7078   // FAST_*_SMI_ELEMENTS or FAST_*_ELEMENTS | 
|  7077   __ JumpIfSmi(r0, &smi_element); |  7079   __ JumpIfSmi(r0, &smi_element); | 
|  7078   __ CheckFastSmiElements(r2, r5, &fast_elements); |  7080   __ CheckFastSmiElements(r2, r5, &fast_elements); | 
|  7079  |  7081  | 
|  7080   // Store into the array literal requires a elements transition. Call into |  7082   // Store into the array literal requires a elements transition. Call into | 
|  7081   // the runtime. |  7083   // the runtime. | 
|  7082   __ bind(&slow_elements); |  7084   __ bind(&slow_elements); | 
|  7083   // call. |  7085   // call. | 
|  7084   __ Push(r1, r3, r0); |  7086   __ Push(r1, r3, r0); | 
| (...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  7488     __ Jump(generic_construct_stub, RelocInfo::CODE_TARGET); |  7490     __ Jump(generic_construct_stub, RelocInfo::CODE_TARGET); | 
|  7489   } |  7491   } | 
|  7490 } |  7492 } | 
|  7491  |  7493  | 
|  7492  |  7494  | 
|  7493 #undef __ |  7495 #undef __ | 
|  7494  |  7496  | 
|  7495 } }  // namespace v8::internal |  7497 } }  // namespace v8::internal | 
|  7496  |  7498  | 
|  7497 #endif  // V8_TARGET_ARCH_ARM |  7499 #endif  // V8_TARGET_ARCH_ARM | 
| OLD | NEW |