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

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

Issue 974873002: MIPS: Move stack unwinding logic into the runtime. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix comments. Created 5 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
« no previous file with comments | « src/mips/code-stubs-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 952 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 // ------------------------------------------------------------------------- 963 // -------------------------------------------------------------------------
964 // Exception handling. 964 // Exception handling.
965 965
966 // Push a new try handler and link into try handler chain. 966 // Push a new try handler and link into try handler chain.
967 void PushTryHandler(StackHandler::Kind kind, int handler_index); 967 void PushTryHandler(StackHandler::Kind kind, int handler_index);
968 968
969 // Unlink the stack handler on top of the stack from the try handler chain. 969 // Unlink the stack handler on top of the stack from the try handler chain.
970 // Must preserve the result register. 970 // Must preserve the result register.
971 void PopTryHandler(); 971 void PopTryHandler();
972 972
973 // Passes thrown value to the handler of top of the try handler chain.
974 void Throw(Register value);
975
976 // Propagates an uncatchable exception to the top of the current JS stack's
977 // handler chain.
978 void ThrowUncatchable(Register value);
979
980 // Copies a fixed number of fields of heap objects from src to dst. 973 // Copies a fixed number of fields of heap objects from src to dst.
981 void CopyFields(Register dst, Register src, RegList temps, int field_count); 974 void CopyFields(Register dst, Register src, RegList temps, int field_count);
982 975
983 // Copies a number of bytes from src to dst. All registers are clobbered. On 976 // Copies a number of bytes from src to dst. All registers are clobbered. On
984 // exit src and dst will point to the place just after where the last byte was 977 // exit src and dst will point to the place just after where the last byte was
985 // read or written and length will be zero. 978 // read or written and length will be zero.
986 void CopyBytes(Register src, 979 void CopyBytes(Register src,
987 Register dst, 980 Register dst,
988 Register length, 981 Register length,
989 Register scratch); 982 Register scratch);
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after
1647 Condition cond, // eq for new space, ne otherwise. 1640 Condition cond, // eq for new space, ne otherwise.
1648 Label* branch); 1641 Label* branch);
1649 1642
1650 // Helper for finding the mark bits for an address. Afterwards, the 1643 // Helper for finding the mark bits for an address. Afterwards, the
1651 // bitmap register points at the word with the mark bits and the mask 1644 // bitmap register points at the word with the mark bits and the mask
1652 // the position of the first bit. Leaves addr_reg unchanged. 1645 // the position of the first bit. Leaves addr_reg unchanged.
1653 inline void GetMarkBits(Register addr_reg, 1646 inline void GetMarkBits(Register addr_reg,
1654 Register bitmap_reg, 1647 Register bitmap_reg,
1655 Register mask_reg); 1648 Register mask_reg);
1656 1649
1657 // Helper for throwing exceptions. Compute a handler address and jump to
1658 // it. See the implementation for register usage.
1659 void JumpToHandlerEntry();
1660
1661 // Compute memory operands for safepoint stack slots. 1650 // Compute memory operands for safepoint stack slots.
1662 static int SafepointRegisterStackIndex(int reg_code); 1651 static int SafepointRegisterStackIndex(int reg_code);
1663 MemOperand SafepointRegisterSlot(Register reg); 1652 MemOperand SafepointRegisterSlot(Register reg);
1664 MemOperand SafepointRegistersAndDoublesSlot(Register reg); 1653 MemOperand SafepointRegistersAndDoublesSlot(Register reg);
1665 1654
1666 bool generating_stub_; 1655 bool generating_stub_;
1667 bool has_frame_; 1656 bool has_frame_;
1668 bool has_double_zero_reg_set_; 1657 bool has_double_zero_reg_set_;
1669 // This handle will be patched with the code object on installation. 1658 // This handle will be patched with the code object on installation.
1670 Handle<Object> code_object_; 1659 Handle<Object> code_object_;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1719 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 1708 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
1720 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1709 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1721 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1710 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1722 #else 1711 #else
1723 #define ACCESS_MASM(masm) masm-> 1712 #define ACCESS_MASM(masm) masm->
1724 #endif 1713 #endif
1725 1714
1726 } } // namespace v8::internal 1715 } } // namespace v8::internal
1727 1716
1728 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1717 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/mips/code-stubs-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698