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 1644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1655 | 1655 |
1656 // Activation support. | 1656 // Activation support. |
1657 void EnterFrame(StackFrame::Type type); | 1657 void EnterFrame(StackFrame::Type type); |
1658 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg); | 1658 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg); |
1659 void LeaveFrame(StackFrame::Type type); | 1659 void LeaveFrame(StackFrame::Type type); |
1660 | 1660 |
1661 // Expects object in a0 and returns map with validated enum cache | 1661 // Expects object in a0 and returns map with validated enum cache |
1662 // in a0. Assumes that any other register can be used as a scratch. | 1662 // in a0. Assumes that any other register can be used as a scratch. |
1663 void CheckEnumCache(Label* call_runtime); | 1663 void CheckEnumCache(Label* call_runtime); |
1664 | 1664 |
1665 // AllocationMemento support. Arrays may have an associated | 1665 // AllocationMemento support. Arrays may have an associated AllocationMemento |
1666 // AllocationMemento object that can be checked for in order to pretransition | 1666 // object that can be checked for in order to pretransition to another type. |
1667 // to another type. | 1667 // On entry, receiver_reg should point to the array object. scratch_reg gets |
1668 // On entry, receiver_reg should point to the array object. | 1668 // clobbered. If no info is present jump to no_memento_found, otherwise fall |
1669 // scratch_reg gets clobbered. | 1669 // through. |
1670 // If allocation info is present, jump to allocation_memento_present. | 1670 void TestJSArrayForAllocationMemento(Register receiver_reg, |
1671 void TestJSArrayForAllocationMemento( | 1671 Register scratch_reg, |
1672 Register receiver_reg, | 1672 Label* no_memento_found); |
1673 Register scratch_reg, | |
1674 Label* no_memento_found, | |
1675 Condition cond = al, | |
1676 Label* allocation_memento_present = NULL); | |
1677 | 1673 |
1678 void JumpIfJSArrayHasAllocationMemento(Register receiver_reg, | 1674 void JumpIfJSArrayHasAllocationMemento(Register receiver_reg, |
1679 Register scratch_reg, | 1675 Register scratch_reg, |
1680 Label* memento_found) { | 1676 Label* memento_found) { |
1681 Label no_memento_found; | 1677 Label no_memento_found; |
1682 TestJSArrayForAllocationMemento(receiver_reg, scratch_reg, | 1678 TestJSArrayForAllocationMemento(receiver_reg, scratch_reg, |
1683 &no_memento_found, eq, memento_found); | 1679 &no_memento_found); |
| 1680 Branch(memento_found); |
1684 bind(&no_memento_found); | 1681 bind(&no_memento_found); |
1685 } | 1682 } |
1686 | 1683 |
1687 // Jumps to found label if a prototype map has dictionary elements. | 1684 // Jumps to found label if a prototype map has dictionary elements. |
1688 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, | 1685 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, |
1689 Register scratch1, Label* found); | 1686 Register scratch1, Label* found); |
1690 | 1687 |
1691 bool IsDoubleZeroRegSet() { return has_double_zero_reg_set_; } | 1688 bool IsDoubleZeroRegSet() { return has_double_zero_reg_set_; } |
1692 | 1689 |
1693 private: | 1690 private: |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1842 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1839 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1843 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1840 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1844 #else | 1841 #else |
1845 #define ACCESS_MASM(masm) masm-> | 1842 #define ACCESS_MASM(masm) masm-> |
1846 #endif | 1843 #endif |
1847 | 1844 |
1848 } // namespace internal | 1845 } // namespace internal |
1849 } // namespace v8 | 1846 } // namespace v8 |
1850 | 1847 |
1851 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1848 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |