OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 | 5 |
6 | 6 |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #if V8_TARGET_ARCH_MIPS64 | 9 #if V8_TARGET_ARCH_MIPS64 |
10 | 10 |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 // Decrease generous allocation count. | 427 // Decrease generous allocation count. |
428 __ Dsubu(a4, a4, Operand(1 << Map::Counter::kShift)); | 428 __ Dsubu(a4, a4, Operand(1 << Map::Counter::kShift)); |
429 __ Branch(USE_DELAY_SLOT, &allocate, ne, a6, | 429 __ Branch(USE_DELAY_SLOT, &allocate, ne, a6, |
430 Operand(Map::kSlackTrackingCounterEnd)); | 430 Operand(Map::kSlackTrackingCounterEnd)); |
431 __ sw(a4, bit_field3); // In delay slot. | 431 __ sw(a4, bit_field3); // In delay slot. |
432 | 432 |
433 __ Push(a1, a2, a1); // a1 = Constructor. | 433 __ Push(a1, a2, a1); // a1 = Constructor. |
434 __ CallRuntime(Runtime::kFinalizeInstanceSize, 1); | 434 __ CallRuntime(Runtime::kFinalizeInstanceSize, 1); |
435 | 435 |
436 __ Pop(a1, a2); | 436 __ Pop(a1, a2); |
437 // Slack tracking counter is Map::kSlackTrackingCounterEnd after runtime | 437 __ li(a6, Operand(Map::kSlackTrackingCounterEnd - 1)); |
438 // call. | |
439 __ li(a6, Map::kSlackTrackingCounterEnd); | |
440 | 438 |
441 __ bind(&allocate); | 439 __ bind(&allocate); |
442 } | 440 } |
443 | 441 |
444 // Now allocate the JSObject on the heap. | 442 // Now allocate the JSObject on the heap. |
445 // a1: constructor function | 443 // a1: constructor function |
446 // a2: initial map | 444 // a2: initial map |
447 __ lbu(a3, FieldMemOperand(a2, Map::kInstanceSizeOffset)); | 445 __ lbu(a3, FieldMemOperand(a2, Map::kInstanceSizeOffset)); |
448 if (create_memento) { | 446 if (create_memento) { |
449 __ Daddu(a3, a3, Operand(AllocationMemento::kSize / kPointerSize)); | 447 __ Daddu(a3, a3, Operand(AllocationMemento::kSize / kPointerSize)); |
(...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1818 __ break_(0xCC); | 1816 __ break_(0xCC); |
1819 } | 1817 } |
1820 } | 1818 } |
1821 | 1819 |
1822 | 1820 |
1823 #undef __ | 1821 #undef __ |
1824 | 1822 |
1825 } } // namespace v8::internal | 1823 } } // namespace v8::internal |
1826 | 1824 |
1827 #endif // V8_TARGET_ARCH_MIPS64 | 1825 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |