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_ARM_MACRO_ASSEMBLER_ARM_H_ | 5 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/frames.h" | 10 #include "src/frames.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 int CallSize(Handle<Code> code, | 116 int CallSize(Handle<Code> code, |
117 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, | 117 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, |
118 TypeFeedbackId ast_id = TypeFeedbackId::None(), | 118 TypeFeedbackId ast_id = TypeFeedbackId::None(), |
119 Condition cond = al); | 119 Condition cond = al); |
120 void Ret(Condition cond = al); | 120 void Ret(Condition cond = al); |
121 | 121 |
122 // Used for patching in calls to the deoptimizer. | 122 // Used for patching in calls to the deoptimizer. |
123 void CallDeoptimizer(Address target); | 123 void CallDeoptimizer(Address target); |
124 static int CallDeoptimizerSize(); | 124 static int CallDeoptimizerSize(); |
125 | 125 |
| 126 // Emit code that loads |parameter_index|'th parameter from the stack to |
| 127 // the register according to the CallInterfaceDescriptor definition. |
| 128 // |sp_to_caller_sp_offset_in_words| specifies the number of words pushed |
| 129 // below the caller's sp. |
| 130 template <class Descriptor> |
| 131 void LoadParameterFromStack( |
| 132 Register reg, typename Descriptor::ParameterIndices parameter_index, |
| 133 int sp_to_ra_offset_in_words = 0) { |
| 134 DCHECK(Descriptor::kPassLastArgsOnStack); |
| 135 UNIMPLEMENTED(); |
| 136 } |
| 137 |
126 // Emit code to discard a non-negative number of pointer-sized elements | 138 // Emit code to discard a non-negative number of pointer-sized elements |
127 // from the stack, clobbering only the sp register. | 139 // from the stack, clobbering only the sp register. |
128 void Drop(int count, Condition cond = al); | 140 void Drop(int count, Condition cond = al); |
129 void Drop(Register count, Condition cond = al); | 141 void Drop(Register count, Condition cond = al); |
130 | 142 |
131 void Ret(int drop, Condition cond = al); | 143 void Ret(int drop, Condition cond = al); |
132 | 144 |
133 // Swap two registers. If the scratch register is omitted then a slightly | 145 // Swap two registers. If the scratch register is omitted then a slightly |
134 // less efficient form using xor instead of mov is emitted. | 146 // less efficient form using xor instead of mov is emitted. |
135 void Swap(Register reg1, | 147 void Swap(Register reg1, |
(...skipping 1472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1608 inline MemOperand NativeContextMemOperand() { | 1620 inline MemOperand NativeContextMemOperand() { |
1609 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); | 1621 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); |
1610 } | 1622 } |
1611 | 1623 |
1612 #define ACCESS_MASM(masm) masm-> | 1624 #define ACCESS_MASM(masm) masm-> |
1613 | 1625 |
1614 } // namespace internal | 1626 } // namespace internal |
1615 } // namespace v8 | 1627 } // namespace v8 |
1616 | 1628 |
1617 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1629 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
OLD | NEW |