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 4810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4821 __ add(scratch1_, | 4821 __ add(scratch1_, |
4822 map_result_, | 4822 map_result_, |
4823 Operand(FixedArray::kHeaderSize - kHeapObjectTag)); | 4823 Operand(FixedArray::kHeaderSize - kHeapObjectTag)); |
4824 __ add(scratch1_, | 4824 __ add(scratch1_, |
4825 scratch1_, | 4825 scratch1_, |
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 + | 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 __ jmp(&entry); | 4836 __ jmp(&entry); |
4837 __ bind(&loop); | 4837 __ bind(&loop); |
4838 __ ldr(scratch2_, FieldMemOperand(map_result_, 0)); | 4838 __ ldr(scratch2_, FieldMemOperand(map_result_, 0)); |
4839 __ cmp(scratch2_, Operand(Factory::value_of_symbol())); | 4839 __ cmp(scratch2_, Operand(Factory::value_of_symbol())); |
4840 __ b(eq, &false_result); | 4840 __ b(eq, &false_result); |
4841 __ add(map_result_, map_result_, Operand(kPointerSize)); | 4841 __ add(map_result_, map_result_, Operand(kPointerSize)); |
(...skipping 6721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11563 __ bind(&string_add_runtime); | 11563 __ bind(&string_add_runtime); |
11564 __ TailCallRuntime(Runtime::kStringAdd, 2, 1); | 11564 __ TailCallRuntime(Runtime::kStringAdd, 2, 1); |
11565 } | 11565 } |
11566 | 11566 |
11567 | 11567 |
11568 #undef __ | 11568 #undef __ |
11569 | 11569 |
11570 } } // namespace v8::internal | 11570 } } // namespace v8::internal |
11571 | 11571 |
11572 #endif // V8_TARGET_ARCH_ARM | 11572 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |