| 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 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 Heap::RootListIndex index, | 208 Heap::RootListIndex index, |
| 209 BranchDelaySlot bdslot = PROTECT); | 209 BranchDelaySlot bdslot = PROTECT); |
| 210 | 210 |
| 211 // GetLabelFunction must be lambda '[](size_t index) -> Label*' or a | 211 // GetLabelFunction must be lambda '[](size_t index) -> Label*' or a |
| 212 // functor/function with 'Label *func(size_t index)' declaration. | 212 // functor/function with 'Label *func(size_t index)' declaration. |
| 213 template <typename Func> | 213 template <typename Func> |
| 214 void GenerateSwitchTable(Register index, size_t case_count, | 214 void GenerateSwitchTable(Register index, size_t case_count, |
| 215 Func GetLabelFunction); | 215 Func GetLabelFunction); |
| 216 #undef COND_ARGS | 216 #undef COND_ARGS |
| 217 | 217 |
| 218 // Emit code that loads |parameter_index|'th parameter from the stack to |
| 219 // the register according to the CallInterfaceDescriptor definition. |
| 220 // |sp_to_caller_sp_offset_in_words| specifies the number of words pushed |
| 221 // below the caller's sp. |
| 222 template <class Descriptor> |
| 223 void LoadParameterFromStack( |
| 224 Register reg, typename Descriptor::ParameterIndices parameter_index, |
| 225 int sp_to_ra_offset_in_words = 0) { |
| 226 DCHECK(Descriptor::kPassLastArgsOnStack); |
| 227 UNIMPLEMENTED(); |
| 228 } |
| 229 |
| 218 // Emit code to discard a non-negative number of pointer-sized elements | 230 // Emit code to discard a non-negative number of pointer-sized elements |
| 219 // from the stack, clobbering only the sp register. | 231 // from the stack, clobbering only the sp register. |
| 220 void Drop(int count, | 232 void Drop(int count, |
| 221 Condition cond = cc_always, | 233 Condition cond = cc_always, |
| 222 Register reg = no_reg, | 234 Register reg = no_reg, |
| 223 const Operand& op = Operand(no_reg)); | 235 const Operand& op = Operand(no_reg)); |
| 224 | 236 |
| 225 // Trivial case of DropAndRet that utilizes the delay slot and only emits | 237 // Trivial case of DropAndRet that utilizes the delay slot and only emits |
| 226 // 2 instructions. | 238 // 2 instructions. |
| 227 void DropAndRet(int drop); | 239 void DropAndRet(int drop); |
| (...skipping 1687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1915 dd(GetLabelFunction(index)); | 1927 dd(GetLabelFunction(index)); |
| 1916 } | 1928 } |
| 1917 } | 1929 } |
| 1918 | 1930 |
| 1919 #define ACCESS_MASM(masm) masm-> | 1931 #define ACCESS_MASM(masm) masm-> |
| 1920 | 1932 |
| 1921 } // namespace internal | 1933 } // namespace internal |
| 1922 } // namespace v8 | 1934 } // namespace v8 |
| 1923 | 1935 |
| 1924 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1936 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
| OLD | NEW |