| 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 5411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5422 JSFunction::kPrototypeOrInitialMapOffset)); | 5422 JSFunction::kPrototypeOrInitialMapOffset)); |
| 5423 // Will both indicate a NULL and a Smi. | 5423 // Will both indicate a NULL and a Smi. |
| 5424 __ JumpIfSmi(x10, &unexpected_map); | 5424 __ JumpIfSmi(x10, &unexpected_map); |
| 5425 __ JumpIfObjectType(x10, x10, x11, MAP_TYPE, &map_ok); | 5425 __ JumpIfObjectType(x10, x10, x11, MAP_TYPE, &map_ok); |
| 5426 __ Bind(&unexpected_map); | 5426 __ Bind(&unexpected_map); |
| 5427 __ Abort(kUnexpectedInitialMapForArrayFunction); | 5427 __ Abort(kUnexpectedInitialMapForArrayFunction); |
| 5428 __ Bind(&map_ok); | 5428 __ Bind(&map_ok); |
| 5429 | 5429 |
| 5430 // In feedback_vector, we expect either undefined or a valid fixed array. | 5430 // In feedback_vector, we expect either undefined or a valid fixed array. |
| 5431 Label okay_here; | 5431 Label okay_here; |
| 5432 Handle<Map> cell_map = masm->isolate()->factory()->cell_map(); | 5432 Handle<Map> fixed_array_map = masm->isolate()->factory()->fixed_array_map(); |
| 5433 __ JumpIfRoot(feedback_vector, Heap::kUndefinedValueRootIndex, &okay_here); | 5433 __ JumpIfRoot(feedback_vector, Heap::kUndefinedValueRootIndex, &okay_here); |
| 5434 __ Ldr(x10, FieldMemOperand(feedback_vector, Cell::kMapOffset)); | 5434 __ Ldr(x10, FieldMemOperand(feedback_vector, FixedArray::kMapOffset)); |
| 5435 __ Cmp(x10, Operand(cell_map)); | 5435 __ Cmp(x10, Operand(fixed_array_map)); |
| 5436 __ Assert(eq, kExpectedFixedArrayInFeedbackVector); | 5436 __ Assert(eq, kExpectedFixedArrayInFeedbackVector); |
| 5437 | 5437 |
| 5438 // slot_index should be a smi if we don't have undefined in feedback_vector. | 5438 // slot_index should be a smi if we don't have undefined in feedback_vector. |
| 5439 __ AssertSmi(slot_index); | 5439 __ AssertSmi(slot_index); |
| 5440 | 5440 |
| 5441 __ Bind(&okay_here); | 5441 __ Bind(&okay_here); |
| 5442 } | 5442 } |
| 5443 | 5443 |
| 5444 Register allocation_site = x2; // Overwrites feedback_vector. | 5444 Register allocation_site = x2; // Overwrites feedback_vector. |
| 5445 Register kind = x3; | 5445 Register kind = x3; |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5712 MemOperand(fp, 6 * kPointerSize), | 5712 MemOperand(fp, 6 * kPointerSize), |
| 5713 NULL); | 5713 NULL); |
| 5714 } | 5714 } |
| 5715 | 5715 |
| 5716 | 5716 |
| 5717 #undef __ | 5717 #undef __ |
| 5718 | 5718 |
| 5719 } } // namespace v8::internal | 5719 } } // namespace v8::internal |
| 5720 | 5720 |
| 5721 #endif // V8_TARGET_ARCH_A64 | 5721 #endif // V8_TARGET_ARCH_A64 |
| OLD | NEW |