| 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 |