Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 4815 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4826 Operand(scratch2_, LSL, kPointerSizeLog2 - kSmiTagSize)); | 4826 Operand(scratch2_, LSL, kPointerSizeLog2 - kSmiTagSize)); |
| 4827 | 4827 |
| 4828 // Calculate location of the first key name. | 4828 // Calculate location of the first key name. |
| 4829 __ add(map_result_, | 4829 __ add(map_result_, |
| 4830 map_result_, | 4830 map_result_, |
| 4831 Operand(FixedArray::kHeaderSize - kHeapObjectTag + | 4831 Operand(FixedArray::kHeaderSize - kHeapObjectTag + |
| 4832 DescriptorArray::kFirstIndex * kPointerSize)); | 4832 DescriptorArray::kFirstIndex * kPointerSize)); |
| 4833 // Loop through all the keys in the descriptor array. If one of these is the | 4833 // Loop through all the keys in the descriptor array. If one of these is the |
| 4834 // symbol valueOf the result is false. | 4834 // symbol valueOf the result is false. |
| 4835 Label entry, loop; | 4835 Label entry, loop; |
| 4836 // The use of ip to store the valueOf symbol asumes that it is not otherwise | |
|
Erik Corry
2010/08/13 12:36:22
asumes -> assumes
| |
| 4837 // used in the loop below. | |
| 4838 __ mov(ip, Operand(Factory::value_of_symbol())); | |
| 4836 __ jmp(&entry); | 4839 __ jmp(&entry); |
| 4837 __ bind(&loop); | 4840 __ bind(&loop); |
| 4838 __ ldr(scratch2_, FieldMemOperand(map_result_, 0)); | 4841 __ ldr(scratch2_, MemOperand(map_result_, 0)); |
| 4839 __ cmp(scratch2_, Operand(Factory::value_of_symbol())); | 4842 __ cmp(scratch2_, ip); |
| 4840 __ b(eq, &false_result); | 4843 __ b(eq, &false_result); |
| 4841 __ add(map_result_, map_result_, Operand(kPointerSize)); | 4844 __ add(map_result_, map_result_, Operand(kPointerSize)); |
| 4842 __ bind(&entry); | 4845 __ bind(&entry); |
| 4843 __ cmp(map_result_, Operand(scratch1_)); | 4846 __ cmp(map_result_, Operand(scratch1_)); |
| 4844 __ b(ne, &loop); | 4847 __ b(ne, &loop); |
| 4845 | 4848 |
| 4846 // Reload map as register map_result_ was used as temporary above. | 4849 // Reload map as register map_result_ was used as temporary above. |
| 4847 __ ldr(map_result_, FieldMemOperand(object_, HeapObject::kMapOffset)); | 4850 __ ldr(map_result_, FieldMemOperand(object_, HeapObject::kMapOffset)); |
| 4848 | 4851 |
| 4849 // If a valueOf property is not found on the object check that it's | 4852 // If a valueOf property is not found on the object check that it's |
| (...skipping 6713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11563 __ bind(&string_add_runtime); | 11566 __ bind(&string_add_runtime); |
| 11564 __ TailCallRuntime(Runtime::kStringAdd, 2, 1); | 11567 __ TailCallRuntime(Runtime::kStringAdd, 2, 1); |
| 11565 } | 11568 } |
| 11566 | 11569 |
| 11567 | 11570 |
| 11568 #undef __ | 11571 #undef __ |
| 11569 | 11572 |
| 11570 } } // namespace v8::internal | 11573 } } // namespace v8::internal |
| 11571 | 11574 |
| 11572 #endif // V8_TARGET_ARCH_ARM | 11575 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |