| 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_LITHIUM_CODEGEN_PPC_H_ | 5 #ifndef V8_PPC_LITHIUM_CODEGEN_PPC_H_ |
| 6 #define V8_PPC_LITHIUM_CODEGEN_PPC_H_ | 6 #define V8_PPC_LITHIUM_CODEGEN_PPC_H_ |
| 7 | 7 |
| 8 #include "src/ppc/lithium-ppc.h" | 8 #include "src/ppc/lithium-ppc.h" |
| 9 | 9 |
| 10 #include "src/ppc/lithium-gap-resolver-ppc.h" | 10 #include "src/ppc/lithium-gap-resolver-ppc.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 LOperand* temp1, LOperand* temp2, | 104 LOperand* temp1, LOperand* temp2, |
| 105 IntegerSignedness signedness); | 105 IntegerSignedness signedness); |
| 106 | 106 |
| 107 void DoDeferredTaggedToI(LTaggedToI* instr); | 107 void DoDeferredTaggedToI(LTaggedToI* instr); |
| 108 void DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr); | 108 void DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr); |
| 109 void DoDeferredStackCheck(LStackCheck* instr); | 109 void DoDeferredStackCheck(LStackCheck* instr); |
| 110 void DoDeferredMaybeGrowElements(LMaybeGrowElements* instr); | 110 void DoDeferredMaybeGrowElements(LMaybeGrowElements* instr); |
| 111 void DoDeferredStringCharCodeAt(LStringCharCodeAt* instr); | 111 void DoDeferredStringCharCodeAt(LStringCharCodeAt* instr); |
| 112 void DoDeferredStringCharFromCode(LStringCharFromCode* instr); | 112 void DoDeferredStringCharFromCode(LStringCharFromCode* instr); |
| 113 void DoDeferredAllocate(LAllocate* instr); | 113 void DoDeferredAllocate(LAllocate* instr); |
| 114 void DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, | |
| 115 Label* map_check, Label* bool_load); | |
| 116 void DoDeferredInstanceMigration(LCheckMaps* instr, Register object); | 114 void DoDeferredInstanceMigration(LCheckMaps* instr, Register object); |
| 117 void DoDeferredLoadMutableDouble(LLoadFieldByIndex* instr, Register result, | 115 void DoDeferredLoadMutableDouble(LLoadFieldByIndex* instr, Register result, |
| 118 Register object, Register index); | 116 Register object, Register index); |
| 119 | 117 |
| 120 // Parallel move support. | 118 // Parallel move support. |
| 121 void DoParallelMove(LParallelMove* move); | 119 void DoParallelMove(LParallelMove* move); |
| 122 void DoGap(LGap* instr); | 120 void DoGap(LGap* instr); |
| 123 | 121 |
| 124 MemOperand PrepareKeyedOperand(Register key, Register base, | 122 MemOperand PrepareKeyedOperand(Register key, Register base, |
| 125 bool key_is_constant, bool key_is_tagged, | 123 bool key_is_constant, bool key_is_tagged, |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 | 234 |
| 237 void RecordAndWritePosition(int position) override; | 235 void RecordAndWritePosition(int position) override; |
| 238 | 236 |
| 239 static Condition TokenToCondition(Token::Value op); | 237 static Condition TokenToCondition(Token::Value op); |
| 240 void EmitGoto(int block); | 238 void EmitGoto(int block); |
| 241 | 239 |
| 242 // EmitBranch expects to be the last instruction of a block. | 240 // EmitBranch expects to be the last instruction of a block. |
| 243 template <class InstrType> | 241 template <class InstrType> |
| 244 void EmitBranch(InstrType instr, Condition condition, CRegister cr = cr7); | 242 void EmitBranch(InstrType instr, Condition condition, CRegister cr = cr7); |
| 245 template <class InstrType> | 243 template <class InstrType> |
| 244 void EmitTrueBranch(InstrType instr, Condition condition, CRegister cr = cr7); |
| 245 template <class InstrType> |
| 246 void EmitFalseBranch(InstrType instr, Condition condition, | 246 void EmitFalseBranch(InstrType instr, Condition condition, |
| 247 CRegister cr = cr7); | 247 CRegister cr = cr7); |
| 248 void EmitNumberUntagD(LNumberUntagD* instr, Register input, | 248 void EmitNumberUntagD(LNumberUntagD* instr, Register input, |
| 249 DoubleRegister result, NumberUntagDMode mode); | 249 DoubleRegister result, NumberUntagDMode mode); |
| 250 | 250 |
| 251 // Emits optimized code for typeof x == "y". Modifies input register. | 251 // Emits optimized code for typeof x == "y". Modifies input register. |
| 252 // Returns the condition on which a final split to | 252 // Returns the condition on which a final split to |
| 253 // true and false label should be made, to optimize fallthrough. | 253 // true and false label should be made, to optimize fallthrough. |
| 254 Condition EmitTypeofIs(Label* true_label, Label* false_label, Register input, | 254 Condition EmitTypeofIs(Label* true_label, Label* false_label, Register input, |
| 255 Handle<String> type_name); | 255 Handle<String> type_name); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 LCodeGen* codegen_; | 355 LCodeGen* codegen_; |
| 356 Label entry_; | 356 Label entry_; |
| 357 Label exit_; | 357 Label exit_; |
| 358 Label* external_exit_; | 358 Label* external_exit_; |
| 359 int instruction_index_; | 359 int instruction_index_; |
| 360 }; | 360 }; |
| 361 } | 361 } |
| 362 } // namespace v8::internal | 362 } // namespace v8::internal |
| 363 | 363 |
| 364 #endif // V8_PPC_LITHIUM_CODEGEN_PPC_H_ | 364 #endif // V8_PPC_LITHIUM_CODEGEN_PPC_H_ |
| OLD | NEW |