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 |