| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_S390_MACRO_ASSEMBLER_S390_H_ | 5 #ifndef V8_S390_MACRO_ASSEMBLER_S390_H_ |
| 6 #define V8_S390_MACRO_ASSEMBLER_S390_H_ | 6 #define V8_S390_MACRO_ASSEMBLER_S390_H_ |
| 7 | 7 |
| 8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
| 9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
| 10 #include "src/frames.h" | 10 #include "src/frames.h" |
| (...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 973 | 973 |
| 974 // FastAllocate is right now only used for folded allocations. It just | 974 // FastAllocate is right now only used for folded allocations. It just |
| 975 // increments the top pointer without checking against limit. This can only | 975 // increments the top pointer without checking against limit. This can only |
| 976 // be done if it was proved earlier that the allocation will succeed. | 976 // be done if it was proved earlier that the allocation will succeed. |
| 977 void FastAllocate(int object_size, Register result, Register scratch1, | 977 void FastAllocate(int object_size, Register result, Register scratch1, |
| 978 Register scratch2, AllocationFlags flags); | 978 Register scratch2, AllocationFlags flags); |
| 979 | 979 |
| 980 void FastAllocate(Register object_size, Register result, Register result_end, | 980 void FastAllocate(Register object_size, Register result, Register result_end, |
| 981 Register scratch, AllocationFlags flags); | 981 Register scratch, AllocationFlags flags); |
| 982 | 982 |
| 983 void AllocateTwoByteString(Register result, Register length, | |
| 984 Register scratch1, Register scratch2, | |
| 985 Register scratch3, Label* gc_required); | |
| 986 void AllocateOneByteString(Register result, Register length, | |
| 987 Register scratch1, Register scratch2, | |
| 988 Register scratch3, Label* gc_required); | |
| 989 void AllocateTwoByteConsString(Register result, Register length, | |
| 990 Register scratch1, Register scratch2, | |
| 991 Label* gc_required); | |
| 992 void AllocateOneByteConsString(Register result, Register length, | |
| 993 Register scratch1, Register scratch2, | |
| 994 Label* gc_required); | |
| 995 void AllocateTwoByteSlicedString(Register result, Register length, | |
| 996 Register scratch1, Register scratch2, | |
| 997 Label* gc_required); | |
| 998 void AllocateOneByteSlicedString(Register result, Register length, | |
| 999 Register scratch1, Register scratch2, | |
| 1000 Label* gc_required); | |
| 1001 | |
| 1002 // Allocates a heap number or jumps to the gc_required label if the young | 983 // Allocates a heap number or jumps to the gc_required label if the young |
| 1003 // space is full and a scavenge is needed. All registers are clobbered also | 984 // space is full and a scavenge is needed. All registers are clobbered also |
| 1004 // when control continues at the gc_required label. | 985 // when control continues at the gc_required label. |
| 1005 void AllocateHeapNumber(Register result, Register scratch1, Register scratch2, | 986 void AllocateHeapNumber(Register result, Register scratch1, Register scratch2, |
| 1006 Register heap_number_map, Label* gc_required, | 987 Register heap_number_map, Label* gc_required, |
| 1007 MutableMode mode = IMMUTABLE); | 988 MutableMode mode = IMMUTABLE); |
| 1008 void AllocateHeapNumberWithValue(Register result, DoubleRegister value, | 989 void AllocateHeapNumberWithValue(Register result, DoubleRegister value, |
| 1009 Register scratch1, Register scratch2, | 990 Register scratch1, Register scratch2, |
| 1010 Register heap_number_map, | 991 Register heap_number_map, |
| 1011 Label* gc_required); | 992 Label* gc_required); |
| (...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1658 Register scratch1, | 1639 Register scratch1, |
| 1659 Register scratch2, | 1640 Register scratch2, |
| 1660 Label* not_flat_one_byte_strings); | 1641 Label* not_flat_one_byte_strings); |
| 1661 | 1642 |
| 1662 // Checks if both instance types are sequential one-byte strings and jumps to | 1643 // Checks if both instance types are sequential one-byte strings and jumps to |
| 1663 // label if either is not. | 1644 // label if either is not. |
| 1664 void JumpIfBothInstanceTypesAreNotSequentialOneByte( | 1645 void JumpIfBothInstanceTypesAreNotSequentialOneByte( |
| 1665 Register first_object_instance_type, Register second_object_instance_type, | 1646 Register first_object_instance_type, Register second_object_instance_type, |
| 1666 Register scratch1, Register scratch2, Label* failure); | 1647 Register scratch1, Register scratch2, Label* failure); |
| 1667 | 1648 |
| 1668 // Check if instance type is sequential one-byte string and jump to label if | |
| 1669 // it is not. | |
| 1670 void JumpIfInstanceTypeIsNotSequentialOneByte(Register type, Register scratch, | |
| 1671 Label* failure); | |
| 1672 | |
| 1673 void JumpIfNotUniqueNameInstanceType(Register reg, Label* not_unique_name); | 1649 void JumpIfNotUniqueNameInstanceType(Register reg, Label* not_unique_name); |
| 1674 | 1650 |
| 1675 void EmitSeqStringSetCharCheck(Register string, Register index, | 1651 void EmitSeqStringSetCharCheck(Register string, Register index, |
| 1676 Register value, uint32_t encoding_mask); | 1652 Register value, uint32_t encoding_mask); |
| 1677 | 1653 |
| 1678 // --------------------------------------------------------------------------- | 1654 // --------------------------------------------------------------------------- |
| 1679 // Patching helpers. | 1655 // Patching helpers. |
| 1680 | 1656 |
| 1681 void ClampUint8(Register output_reg, Register input_reg); | 1657 void ClampUint8(Register output_reg, Register input_reg); |
| 1682 | 1658 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1823 inline MemOperand NativeContextMemOperand() { | 1799 inline MemOperand NativeContextMemOperand() { |
| 1824 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); | 1800 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); |
| 1825 } | 1801 } |
| 1826 | 1802 |
| 1827 #define ACCESS_MASM(masm) masm-> | 1803 #define ACCESS_MASM(masm) masm-> |
| 1828 | 1804 |
| 1829 } // namespace internal | 1805 } // namespace internal |
| 1830 } // namespace v8 | 1806 } // namespace v8 |
| 1831 | 1807 |
| 1832 #endif // V8_S390_MACRO_ASSEMBLER_S390_H_ | 1808 #endif // V8_S390_MACRO_ASSEMBLER_S390_H_ |
| OLD | NEW |