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_LITHIUM_CODEGEN_ARM_H_ | 5 #ifndef V8_ARM_LITHIUM_CODEGEN_ARM_H_ |
6 #define V8_ARM_LITHIUM_CODEGEN_ARM_H_ | 6 #define V8_ARM_LITHIUM_CODEGEN_ARM_H_ |
7 | 7 |
8 #include "src/arm/lithium-arm.h" | 8 #include "src/arm/lithium-arm.h" |
9 | 9 |
10 #include "src/arm/lithium-gap-resolver-arm.h" | 10 #include "src/arm/lithium-gap-resolver-arm.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 LOperand* temp2, | 108 LOperand* temp2, |
109 IntegerSignedness signedness); | 109 IntegerSignedness signedness); |
110 | 110 |
111 void DoDeferredTaggedToI(LTaggedToI* instr); | 111 void DoDeferredTaggedToI(LTaggedToI* instr); |
112 void DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr); | 112 void DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr); |
113 void DoDeferredStackCheck(LStackCheck* instr); | 113 void DoDeferredStackCheck(LStackCheck* instr); |
114 void DoDeferredMaybeGrowElements(LMaybeGrowElements* instr); | 114 void DoDeferredMaybeGrowElements(LMaybeGrowElements* instr); |
115 void DoDeferredStringCharCodeAt(LStringCharCodeAt* instr); | 115 void DoDeferredStringCharCodeAt(LStringCharCodeAt* instr); |
116 void DoDeferredStringCharFromCode(LStringCharFromCode* instr); | 116 void DoDeferredStringCharFromCode(LStringCharFromCode* instr); |
117 void DoDeferredAllocate(LAllocate* instr); | 117 void DoDeferredAllocate(LAllocate* instr); |
118 void DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, | |
119 Label* map_check, Label* bool_load); | |
120 void DoDeferredInstanceMigration(LCheckMaps* instr, Register object); | 118 void DoDeferredInstanceMigration(LCheckMaps* instr, Register object); |
121 void DoDeferredLoadMutableDouble(LLoadFieldByIndex* instr, | 119 void DoDeferredLoadMutableDouble(LLoadFieldByIndex* instr, |
122 Register result, | 120 Register result, |
123 Register object, | 121 Register object, |
124 Register index); | 122 Register index); |
125 | 123 |
126 // Parallel move support. | 124 // Parallel move support. |
127 void DoParallelMove(LParallelMove* move); | 125 void DoParallelMove(LParallelMove* move); |
128 void DoGap(LGap* instr); | 126 void DoGap(LGap* instr); |
129 | 127 |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 Safepoint::DeoptMode mode); | 263 Safepoint::DeoptMode mode); |
266 | 264 |
267 void RecordAndWritePosition(int position) override; | 265 void RecordAndWritePosition(int position) override; |
268 | 266 |
269 static Condition TokenToCondition(Token::Value op, bool is_unsigned); | 267 static Condition TokenToCondition(Token::Value op, bool is_unsigned); |
270 void EmitGoto(int block); | 268 void EmitGoto(int block); |
271 | 269 |
272 // EmitBranch expects to be the last instruction of a block. | 270 // EmitBranch expects to be the last instruction of a block. |
273 template<class InstrType> | 271 template<class InstrType> |
274 void EmitBranch(InstrType instr, Condition condition); | 272 void EmitBranch(InstrType instr, Condition condition); |
275 template<class InstrType> | 273 template <class InstrType> |
| 274 void EmitTrueBranch(InstrType instr, Condition condition); |
| 275 template <class InstrType> |
276 void EmitFalseBranch(InstrType instr, Condition condition); | 276 void EmitFalseBranch(InstrType instr, Condition condition); |
277 void EmitNumberUntagD(LNumberUntagD* instr, Register input, | 277 void EmitNumberUntagD(LNumberUntagD* instr, Register input, |
278 DwVfpRegister result, NumberUntagDMode mode); | 278 DwVfpRegister result, NumberUntagDMode mode); |
279 | 279 |
280 // Emits optimized code for typeof x == "y". Modifies input register. | 280 // Emits optimized code for typeof x == "y". Modifies input register. |
281 // Returns the condition on which a final split to | 281 // Returns the condition on which a final split to |
282 // true and false label should be made, to optimize fallthrough. | 282 // true and false label should be made, to optimize fallthrough. |
283 Condition EmitTypeofIs(Label* true_label, | 283 Condition EmitTypeofIs(Label* true_label, |
284 Label* false_label, | 284 Label* false_label, |
285 Register input, | 285 Register input, |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 LCodeGen* codegen_; | 397 LCodeGen* codegen_; |
398 Label entry_; | 398 Label entry_; |
399 Label exit_; | 399 Label exit_; |
400 Label* external_exit_; | 400 Label* external_exit_; |
401 int instruction_index_; | 401 int instruction_index_; |
402 }; | 402 }; |
403 | 403 |
404 } } // namespace v8::internal | 404 } } // namespace v8::internal |
405 | 405 |
406 #endif // V8_ARM_LITHIUM_CODEGEN_ARM_H_ | 406 #endif // V8_ARM_LITHIUM_CODEGEN_ARM_H_ |
OLD | NEW |