| OLD | NEW | 
|     1 // Copyright 2011 the V8 project authors. All rights reserved. |     1 // Copyright 2011 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 934 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   945                                                   Register parameter_map, |   945                                                   Register parameter_map, | 
|   946                                                   Register scratch, |   946                                                   Register scratch, | 
|   947                                                   Label* slow_case) { |   947                                                   Label* slow_case) { | 
|   948   // Element is in arguments backing store, which is referenced by the |   948   // Element is in arguments backing store, which is referenced by the | 
|   949   // second element of the parameter_map. The parameter_map register |   949   // second element of the parameter_map. The parameter_map register | 
|   950   // must be loaded with the parameter map of the arguments object and is |   950   // must be loaded with the parameter map of the arguments object and is | 
|   951   // overwritten. |   951   // overwritten. | 
|   952   const int kBackingStoreOffset = FixedArray::kHeaderSize + kPointerSize; |   952   const int kBackingStoreOffset = FixedArray::kHeaderSize + kPointerSize; | 
|   953   Register backing_store = parameter_map; |   953   Register backing_store = parameter_map; | 
|   954   __ ldr(backing_store, FieldMemOperand(parameter_map, kBackingStoreOffset)); |   954   __ ldr(backing_store, FieldMemOperand(parameter_map, kBackingStoreOffset)); | 
 |   955   Handle<Map> fixed_array_map(masm->isolate()->heap()->fixed_array_map()); | 
 |   956   __ CheckMap(backing_store, scratch, fixed_array_map, slow_case, | 
 |   957               DONT_DO_SMI_CHECK); | 
|   955   __ ldr(scratch, FieldMemOperand(backing_store, FixedArray::kLengthOffset)); |   958   __ ldr(scratch, FieldMemOperand(backing_store, FixedArray::kLengthOffset)); | 
|   956   __ cmp(key, Operand(scratch)); |   959   __ cmp(key, Operand(scratch)); | 
|   957   __ b(cs, slow_case); |   960   __ b(cs, slow_case); | 
|   958   __ mov(scratch, Operand(kPointerSize >> 1)); |   961   __ mov(scratch, Operand(kPointerSize >> 1)); | 
|   959   __ mul(scratch, key, scratch); |   962   __ mul(scratch, key, scratch); | 
|   960   __ add(scratch, |   963   __ add(scratch, | 
|   961          scratch, |   964          scratch, | 
|   962          Operand(FixedArray::kHeaderSize - kHeapObjectTag)); |   965          Operand(FixedArray::kHeaderSize - kHeapObjectTag)); | 
|   963   return MemOperand(backing_store, scratch); |   966   return MemOperand(backing_store, scratch); | 
|   964 } |   967 } | 
| (...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1713     Register reg = Assembler::GetRn(instr_at_patch); |  1716     Register reg = Assembler::GetRn(instr_at_patch); | 
|  1714     patcher.masm()->tst(reg, Operand(kSmiTagMask)); |  1717     patcher.masm()->tst(reg, Operand(kSmiTagMask)); | 
|  1715     patcher.EmitCondition(eq); |  1718     patcher.EmitCondition(eq); | 
|  1716   } |  1719   } | 
|  1717 } |  1720 } | 
|  1718  |  1721  | 
|  1719  |  1722  | 
|  1720 } }  // namespace v8::internal |  1723 } }  // namespace v8::internal | 
|  1721  |  1724  | 
|  1722 #endif  // V8_TARGET_ARCH_ARM |  1725 #endif  // V8_TARGET_ARCH_ARM | 
| OLD | NEW |