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 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 void CallSelf() { | 145 void CallSelf() { |
146 Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location())); | 146 Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location())); |
147 Call(self, RelocInfo::CODE_TARGET); | 147 Call(self, RelocInfo::CODE_TARGET); |
148 } | 148 } |
149 | 149 |
150 // Register move. May do nothing if the registers are identical. | 150 // Register move. May do nothing if the registers are identical. |
151 void Move(Register dst, Handle<Object> value); | 151 void Move(Register dst, Handle<Object> value); |
152 void Move(Register dst, Register src, Condition cond = al); | 152 void Move(Register dst, Register src, Condition cond = al); |
153 void Move(DoubleRegister dst, DoubleRegister src); | 153 void Move(DoubleRegister dst, DoubleRegister src); |
154 | 154 |
155 void MultiPush(RegList regs); | 155 void MultiPush(RegList regs, Register location = sp); |
156 void MultiPop(RegList regs); | 156 void MultiPop(RegList regs, Register location = sp); |
| 157 |
| 158 void MultiPushDoubles(RegList dregs, Register location = sp); |
| 159 void MultiPopDoubles(RegList dregs, Register location = sp); |
157 | 160 |
158 // Load an object from the root table. | 161 // Load an object from the root table. |
159 void LoadRoot(Register destination, Heap::RootListIndex index, | 162 void LoadRoot(Register destination, Heap::RootListIndex index, |
160 Condition cond = al); | 163 Condition cond = al); |
161 // Store an object to the root table. | 164 // Store an object to the root table. |
162 void StoreRoot(Register source, Heap::RootListIndex index, | 165 void StoreRoot(Register source, Heap::RootListIndex index, |
163 Condition cond = al); | 166 Condition cond = al); |
164 | 167 |
165 // --------------------------------------------------------------------------- | 168 // --------------------------------------------------------------------------- |
166 // GC Support | 169 // GC Support |
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 } | 884 } |
882 | 885 |
883 void RetOnNoOverflow(void) { | 886 void RetOnNoOverflow(void) { |
884 Label label; | 887 Label label; |
885 | 888 |
886 bge(&label, cr0); | 889 bge(&label, cr0); |
887 Ret(); | 890 Ret(); |
888 bind(&label); | 891 bind(&label); |
889 } | 892 } |
890 | 893 |
891 // Pushes <count> double values to <location>, starting from d<first>. | |
892 void SaveFPRegs(Register location, int first, int count); | |
893 | |
894 // Pops <count> double values from <location>, starting from d<first>. | |
895 void RestoreFPRegs(Register location, int first, int count); | |
896 | |
897 // --------------------------------------------------------------------------- | 894 // --------------------------------------------------------------------------- |
898 // Runtime calls | 895 // Runtime calls |
899 | 896 |
900 // Call a code stub. | 897 // Call a code stub. |
901 void CallStub(CodeStub* stub, TypeFeedbackId ast_id = TypeFeedbackId::None(), | 898 void CallStub(CodeStub* stub, TypeFeedbackId ast_id = TypeFeedbackId::None(), |
902 Condition cond = al); | 899 Condition cond = al); |
903 | 900 |
904 // Call a code stub. | 901 // Call a code stub. |
905 void TailCallStub(CodeStub* stub, Condition cond = al); | 902 void TailCallStub(CodeStub* stub, Condition cond = al); |
906 | 903 |
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1570 #define ACCESS_MASM(masm) \ | 1567 #define ACCESS_MASM(masm) \ |
1571 masm->stop(__FILE_LINE__); \ | 1568 masm->stop(__FILE_LINE__); \ |
1572 masm-> | 1569 masm-> |
1573 #else | 1570 #else |
1574 #define ACCESS_MASM(masm) masm-> | 1571 #define ACCESS_MASM(masm) masm-> |
1575 #endif | 1572 #endif |
1576 } | 1573 } |
1577 } // namespace v8::internal | 1574 } // namespace v8::internal |
1578 | 1575 |
1579 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 1576 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
OLD | NEW |