Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/ppc/lithium-codegen-ppc.h

Issue 1314263002: PPC: Correctify instanceof and make it optimizable. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/ppc/interface-descriptors-ppc.cc ('k') | src/ppc/lithium-codegen-ppc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « src/ppc/interface-descriptors-ppc.cc ('k') | src/ppc/lithium-codegen-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698