| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 6339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6350 // x3 index_smi element index as smi | 6350 // x3 index_smi element index as smi |
| 6351 // sp[0] array_index_smi array literal index in function as smi | 6351 // sp[0] array_index_smi array literal index in function as smi |
| 6352 // sp[1] array array literal | 6352 // sp[1] array array literal |
| 6353 | 6353 |
| 6354 Register value = x0; | 6354 Register value = x0; |
| 6355 Register index_smi = x3; | 6355 Register index_smi = x3; |
| 6356 | 6356 |
| 6357 Register array = x1; | 6357 Register array = x1; |
| 6358 Register array_map = x2; | 6358 Register array_map = x2; |
| 6359 Register array_index_smi = x4; | 6359 Register array_index_smi = x4; |
| 6360 // TODO(jbramley): Implement PeekPair and use it here. | 6360 __ PeekPair(array_index_smi, array, 0); |
| 6361 __ Peek(array, 1 * kPointerSize); | |
| 6362 __ Peek(array_index_smi, 0 * kPointerSize); | |
| 6363 __ Ldr(array_map, FieldMemOperand(array, JSObject::kMapOffset)); | 6361 __ Ldr(array_map, FieldMemOperand(array, JSObject::kMapOffset)); |
| 6364 | 6362 |
| 6365 Label double_elements, smi_element, fast_elements, slow_elements; | 6363 Label double_elements, smi_element, fast_elements, slow_elements; |
| 6366 __ CheckFastElements(array_map, x10, &double_elements); | 6364 __ CheckFastElements(array_map, x10, &double_elements); |
| 6367 __ JumpIfSmi(value, &smi_element); | 6365 __ JumpIfSmi(value, &smi_element); |
| 6368 __ CheckFastSmiElements(array_map, x10, &fast_elements); | 6366 __ CheckFastSmiElements(array_map, x10, &fast_elements); |
| 6369 | 6367 |
| 6370 // Store into the array literal requires an elements transition. Call into | 6368 // Store into the array literal requires an elements transition. Call into |
| 6371 // the runtime. | 6369 // the runtime. |
| 6372 __ Bind(&slow_elements); | 6370 __ Bind(&slow_elements); |
| (...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7061 __ Bind(&fast_elements_case); | 7059 __ Bind(&fast_elements_case); |
| 7062 GenerateCase(masm, FAST_ELEMENTS); | 7060 GenerateCase(masm, FAST_ELEMENTS); |
| 7063 } | 7061 } |
| 7064 | 7062 |
| 7065 | 7063 |
| 7066 #undef __ | 7064 #undef __ |
| 7067 | 7065 |
| 7068 } } // namespace v8::internal | 7066 } } // namespace v8::internal |
| 7069 | 7067 |
| 7070 #endif // V8_TARGET_ARCH_A64 | 7068 #endif // V8_TARGET_ARCH_A64 |
| OLD | NEW |