OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_PPC_MACRO_ASSEMBLER_PPC_H_ | 5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 6 #define V8_PPC_MACRO_ASSEMBLER_PPC_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 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 int CallSize(Handle<Code> code, | 133 int CallSize(Handle<Code> code, |
134 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, | 134 RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, |
135 TypeFeedbackId ast_id = TypeFeedbackId::None(), | 135 TypeFeedbackId ast_id = TypeFeedbackId::None(), |
136 Condition cond = al); | 136 Condition cond = al); |
137 void Call(Handle<Code> code, RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, | 137 void Call(Handle<Code> code, RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, |
138 TypeFeedbackId ast_id = TypeFeedbackId::None(), | 138 TypeFeedbackId ast_id = TypeFeedbackId::None(), |
139 Condition cond = al); | 139 Condition cond = al); |
140 void Ret() { blr(); } | 140 void Ret() { blr(); } |
141 void Ret(Condition cond, CRegister cr = cr7) { bclr(cond, cr); } | 141 void Ret(Condition cond, CRegister cr = cr7) { bclr(cond, cr); } |
142 | 142 |
| 143 // Emit code that loads |parameter_index|'th parameter from the stack to |
| 144 // the register according to the CallInterfaceDescriptor definition. |
| 145 // |sp_to_caller_sp_offset_in_words| specifies the number of words pushed |
| 146 // below the caller's sp. |
| 147 template <class Descriptor> |
| 148 void LoadParameterFromStack( |
| 149 Register reg, typename Descriptor::ParameterIndices parameter_index, |
| 150 int sp_to_ra_offset_in_words = 0) { |
| 151 DCHECK(Descriptor::kPassLastArgsOnStack); |
| 152 UNIMPLEMENTED(); |
| 153 } |
| 154 |
143 // Emit code to discard a non-negative number of pointer-sized elements | 155 // Emit code to discard a non-negative number of pointer-sized elements |
144 // from the stack, clobbering only the sp register. | 156 // from the stack, clobbering only the sp register. |
145 void Drop(int count); | 157 void Drop(int count); |
146 void Drop(Register count, Register scratch = r0); | 158 void Drop(Register count, Register scratch = r0); |
147 | 159 |
148 void Ret(int drop) { | 160 void Ret(int drop) { |
149 Drop(drop); | 161 Drop(drop); |
150 blr(); | 162 blr(); |
151 } | 163 } |
152 | 164 |
(...skipping 1510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1663 inline MemOperand NativeContextMemOperand() { | 1675 inline MemOperand NativeContextMemOperand() { |
1664 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); | 1676 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); |
1665 } | 1677 } |
1666 | 1678 |
1667 #define ACCESS_MASM(masm) masm-> | 1679 #define ACCESS_MASM(masm) masm-> |
1668 | 1680 |
1669 } // namespace internal | 1681 } // namespace internal |
1670 } // namespace v8 | 1682 } // namespace v8 |
1671 | 1683 |
1672 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 1684 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
OLD | NEW |