| 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 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 5 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
| 6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
| 7 | 7 |
| 8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
| 9 #include "src/globals.h" | 9 #include "src/globals.h" |
| 10 #include "src/mips/assembler-mips.h" | 10 #include "src/mips/assembler-mips.h" |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 | 548 |
| 549 // FastAllocate is right now only used for folded allocations. It just | 549 // FastAllocate is right now only used for folded allocations. It just |
| 550 // increments the top pointer without checking against limit. This can only | 550 // increments the top pointer without checking against limit. This can only |
| 551 // be done if it was proved earlier that the allocation will succeed. | 551 // be done if it was proved earlier that the allocation will succeed. |
| 552 void FastAllocate(int object_size, Register result, Register scratch1, | 552 void FastAllocate(int object_size, Register result, Register scratch1, |
| 553 Register scratch2, AllocationFlags flags); | 553 Register scratch2, AllocationFlags flags); |
| 554 | 554 |
| 555 void FastAllocate(Register object_size, Register result, Register result_new, | 555 void FastAllocate(Register object_size, Register result, Register result_new, |
| 556 Register scratch, AllocationFlags flags); | 556 Register scratch, AllocationFlags flags); |
| 557 | 557 |
| 558 void AllocateTwoByteString(Register result, | |
| 559 Register length, | |
| 560 Register scratch1, | |
| 561 Register scratch2, | |
| 562 Register scratch3, | |
| 563 Label* gc_required); | |
| 564 void AllocateOneByteString(Register result, Register length, | |
| 565 Register scratch1, Register scratch2, | |
| 566 Register scratch3, Label* gc_required); | |
| 567 void AllocateTwoByteConsString(Register result, | |
| 568 Register length, | |
| 569 Register scratch1, | |
| 570 Register scratch2, | |
| 571 Label* gc_required); | |
| 572 void AllocateOneByteConsString(Register result, Register length, | |
| 573 Register scratch1, Register scratch2, | |
| 574 Label* gc_required); | |
| 575 void AllocateTwoByteSlicedString(Register result, | |
| 576 Register length, | |
| 577 Register scratch1, | |
| 578 Register scratch2, | |
| 579 Label* gc_required); | |
| 580 void AllocateOneByteSlicedString(Register result, Register length, | |
| 581 Register scratch1, Register scratch2, | |
| 582 Label* gc_required); | |
| 583 | |
| 584 // Allocates a heap number or jumps to the gc_required label if the young | 558 // Allocates a heap number or jumps to the gc_required label if the young |
| 585 // space is full and a scavenge is needed. All registers are clobbered also | 559 // space is full and a scavenge is needed. All registers are clobbered also |
| 586 // when control continues at the gc_required label. | 560 // when control continues at the gc_required label. |
| 587 void AllocateHeapNumber(Register result, | 561 void AllocateHeapNumber(Register result, |
| 588 Register scratch1, | 562 Register scratch1, |
| 589 Register scratch2, | 563 Register scratch2, |
| 590 Register heap_number_map, | 564 Register heap_number_map, |
| 591 Label* gc_required, | 565 Label* gc_required, |
| 592 MutableMode mode = IMMUTABLE); | 566 MutableMode mode = IMMUTABLE); |
| 593 void AllocateHeapNumberWithValue(Register result, | 567 void AllocateHeapNumberWithValue(Register result, |
| (...skipping 1010 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1604 | 1578 |
| 1605 // ------------------------------------------------------------------------- | 1579 // ------------------------------------------------------------------------- |
| 1606 // String utilities. | 1580 // String utilities. |
| 1607 | 1581 |
| 1608 // Checks if both instance types are sequential ASCII strings and jumps to | 1582 // Checks if both instance types are sequential ASCII strings and jumps to |
| 1609 // label if either is not. | 1583 // label if either is not. |
| 1610 void JumpIfBothInstanceTypesAreNotSequentialOneByte( | 1584 void JumpIfBothInstanceTypesAreNotSequentialOneByte( |
| 1611 Register first_object_instance_type, Register second_object_instance_type, | 1585 Register first_object_instance_type, Register second_object_instance_type, |
| 1612 Register scratch1, Register scratch2, Label* failure); | 1586 Register scratch1, Register scratch2, Label* failure); |
| 1613 | 1587 |
| 1614 // Check if instance type is sequential one-byte string and jump to label if | |
| 1615 // it is not. | |
| 1616 void JumpIfInstanceTypeIsNotSequentialOneByte(Register type, Register scratch, | |
| 1617 Label* failure); | |
| 1618 | |
| 1619 void JumpIfNotUniqueNameInstanceType(Register reg, Label* not_unique_name); | 1588 void JumpIfNotUniqueNameInstanceType(Register reg, Label* not_unique_name); |
| 1620 | 1589 |
| 1621 void EmitSeqStringSetCharCheck(Register string, | 1590 void EmitSeqStringSetCharCheck(Register string, |
| 1622 Register index, | 1591 Register index, |
| 1623 Register value, | 1592 Register value, |
| 1624 Register scratch, | 1593 Register scratch, |
| 1625 uint32_t encoding_mask); | 1594 uint32_t encoding_mask); |
| 1626 | 1595 |
| 1627 // Checks if both objects are sequential one-byte strings and jumps to label | 1596 // Checks if both objects are sequential one-byte strings and jumps to label |
| 1628 // if either is not. Assumes that neither object is a smi. | 1597 // if either is not. Assumes that neither object is a smi. |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1859 dd(GetLabelFunction(index)); | 1828 dd(GetLabelFunction(index)); |
| 1860 } | 1829 } |
| 1861 } | 1830 } |
| 1862 | 1831 |
| 1863 #define ACCESS_MASM(masm) masm-> | 1832 #define ACCESS_MASM(masm) masm-> |
| 1864 | 1833 |
| 1865 } // namespace internal | 1834 } // namespace internal |
| 1866 } // namespace v8 | 1835 } // namespace v8 |
| 1867 | 1836 |
| 1868 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1837 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
| OLD | NEW |