Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(487)

Side by Side Diff: src/mips/macro-assembler-mips.h

Issue 1696043002: [runtime] Unify and simplify how frames are marked (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix merge problems Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 744 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 lw(src3, MemOperand(sp, 0 * kPointerSize)); 755 lw(src3, MemOperand(sp, 0 * kPointerSize));
756 lw(src2, MemOperand(sp, 1 * kPointerSize)); 756 lw(src2, MemOperand(sp, 1 * kPointerSize));
757 lw(src1, MemOperand(sp, 2 * kPointerSize)); 757 lw(src1, MemOperand(sp, 2 * kPointerSize));
758 Addu(sp, sp, 3 * kPointerSize); 758 Addu(sp, sp, 3 * kPointerSize);
759 } 759 }
760 760
761 void Pop(uint32_t count = 1) { 761 void Pop(uint32_t count = 1) {
762 Addu(sp, sp, Operand(count * kPointerSize)); 762 Addu(sp, sp, Operand(count * kPointerSize));
763 } 763 }
764 764
765 // Push a fixed frame, consisting of ra, fp.
766 void PushCommonFrame(Register marker_reg = no_reg);
767
768 // Push a standard frame, consisting of ra, fp, context and JS function.
769 void PushStandardFrame(Register function_reg);
770
771 void PopCommonFrame(Register marker_reg = no_reg);
772
765 // Push and pop the registers that can hold pointers, as defined by the 773 // Push and pop the registers that can hold pointers, as defined by the
766 // RegList constant kSafepointSavedRegisters. 774 // RegList constant kSafepointSavedRegisters.
767 void PushSafepointRegisters(); 775 void PushSafepointRegisters();
768 void PopSafepointRegisters(); 776 void PopSafepointRegisters();
769 // Store value in register src in the safepoint stack slot for 777 // Store value in register src in the safepoint stack slot for
770 // register dst. 778 // register dst.
771 void StoreToSafepointRegisterSlot(Register src, Register dst); 779 void StoreToSafepointRegisterSlot(Register src, Register dst);
772 // Load the value of the src register from its safepoint stack slot 780 // Load the value of the src register from its safepoint stack slot
773 // into register dst. 781 // into register dst.
774 void LoadFromSafepointRegisterSlot(Register dst, Register src); 782 void LoadFromSafepointRegisterSlot(Register dst, Register src);
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 And(dst, src, Operand(mask)); 1614 And(dst, src, Operand(mask));
1607 } 1615 }
1608 } 1616 }
1609 1617
1610 template<typename Field> 1618 template<typename Field>
1611 void DecodeFieldToSmi(Register reg) { 1619 void DecodeFieldToSmi(Register reg) {
1612 DecodeField<Field>(reg, reg); 1620 DecodeField<Field>(reg, reg);
1613 } 1621 }
1614 1622
1615 // Generates function and stub prologue code. 1623 // Generates function and stub prologue code.
1616 void StubPrologue(); 1624 void StubPrologue(StackFrame::Type type);
1617 void Prologue(bool code_pre_aging); 1625 void Prologue(bool code_pre_aging);
1618 1626
1619 // Load the type feedback vector from a JavaScript frame. 1627 // Load the type feedback vector from a JavaScript frame.
1620 void EmitLoadTypeFeedbackVector(Register vector); 1628 void EmitLoadTypeFeedbackVector(Register vector);
1621 1629
1622 // Activation support. 1630 // Activation support.
1623 void EnterFrame(StackFrame::Type type); 1631 void EnterFrame(StackFrame::Type type);
1624 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg); 1632 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg);
1625 void LeaveFrame(StackFrame::Type type); 1633 void LeaveFrame(StackFrame::Type type);
1626 1634
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
1808 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1816 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1809 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1817 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1810 #else 1818 #else
1811 #define ACCESS_MASM(masm) masm-> 1819 #define ACCESS_MASM(masm) masm->
1812 #endif 1820 #endif
1813 1821
1814 } // namespace internal 1822 } // namespace internal
1815 } // namespace v8 1823 } // namespace v8
1816 1824
1817 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1825 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698