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/mips64/assembler-mips64.h" | 10 #include "src/mips64/assembler-mips64.h" |
(...skipping 1804 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1815 | 1815 |
1816 // Activation support. | 1816 // Activation support. |
1817 void EnterFrame(StackFrame::Type type); | 1817 void EnterFrame(StackFrame::Type type); |
1818 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg); | 1818 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg); |
1819 void LeaveFrame(StackFrame::Type type); | 1819 void LeaveFrame(StackFrame::Type type); |
1820 | 1820 |
1821 // Expects object in a0 and returns map with validated enum cache | 1821 // Expects object in a0 and returns map with validated enum cache |
1822 // in a0. Assumes that any other register can be used as a scratch. | 1822 // in a0. Assumes that any other register can be used as a scratch. |
1823 void CheckEnumCache(Label* call_runtime); | 1823 void CheckEnumCache(Label* call_runtime); |
1824 | 1824 |
1825 // AllocationMemento support. Arrays may have an associated | 1825 // AllocationMemento support. Arrays may have an associated AllocationMemento |
1826 // AllocationMemento object that can be checked for in order to pretransition | 1826 // object that can be checked for in order to pretransition to another type. |
1827 // to another type. | 1827 // On entry, receiver_reg should point to the array object. scratch_reg gets |
1828 // On entry, receiver_reg should point to the array object. | 1828 // clobbered. If no info is present jump to no_memento_found, otherwise fall |
1829 // scratch_reg gets clobbered. | 1829 // through. |
1830 // If allocation info is present, jump to allocation_memento_present. | 1830 void TestJSArrayForAllocationMemento(Register receiver_reg, |
1831 void TestJSArrayForAllocationMemento( | 1831 Register scratch_reg, |
1832 Register receiver_reg, | 1832 Label* no_memento_found); |
1833 Register scratch_reg, | |
1834 Label* no_memento_found, | |
1835 Condition cond = al, | |
1836 Label* allocation_memento_present = NULL); | |
1837 | 1833 |
1838 void JumpIfJSArrayHasAllocationMemento(Register receiver_reg, | 1834 void JumpIfJSArrayHasAllocationMemento(Register receiver_reg, |
1839 Register scratch_reg, | 1835 Register scratch_reg, |
1840 Label* memento_found) { | 1836 Label* memento_found) { |
1841 Label no_memento_found; | 1837 Label no_memento_found; |
1842 TestJSArrayForAllocationMemento(receiver_reg, scratch_reg, | 1838 TestJSArrayForAllocationMemento(receiver_reg, scratch_reg, |
1843 &no_memento_found, eq, memento_found); | 1839 &no_memento_found); |
| 1840 Branch(memento_found); |
1844 bind(&no_memento_found); | 1841 bind(&no_memento_found); |
1845 } | 1842 } |
1846 | 1843 |
1847 // Jumps to found label if a prototype map has dictionary elements. | 1844 // Jumps to found label if a prototype map has dictionary elements. |
1848 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, | 1845 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, |
1849 Register scratch1, Label* found); | 1846 Register scratch1, Label* found); |
1850 | 1847 |
1851 bool IsDoubleZeroRegSet() { return has_double_zero_reg_set_; } | 1848 bool IsDoubleZeroRegSet() { return has_double_zero_reg_set_; } |
1852 | 1849 |
1853 private: | 1850 private: |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2012 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2009 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
2013 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2010 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
2014 #else | 2011 #else |
2015 #define ACCESS_MASM(masm) masm-> | 2012 #define ACCESS_MASM(masm) masm-> |
2016 #endif | 2013 #endif |
2017 | 2014 |
2018 } // namespace internal | 2015 } // namespace internal |
2019 } // namespace v8 | 2016 } // namespace v8 |
2020 | 2017 |
2021 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 2018 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |