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

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

Issue 559143003: Thread the Lithium instruction down to DeoptimizeIf and friends. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebased Created 6 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 | Annotate | Revision Log
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/mips/lithium-codegen-mips.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 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_MIPS_LITHIUM_CODEGEN_MIPS_H_ 5 #ifndef V8_MIPS_LITHIUM_CODEGEN_MIPS_H_
6 #define V8_MIPS_LITHIUM_CODEGEN_MIPS_H_ 6 #define V8_MIPS_LITHIUM_CODEGEN_MIPS_H_
7 7
8 #include "src/deoptimizer.h" 8 #include "src/deoptimizer.h"
9 #include "src/lithium-codegen.h" 9 #include "src/lithium-codegen.h"
10 #include "src/mips/lithium-gap-resolver-mips.h" 10 #include "src/mips/lithium-gap-resolver-mips.h"
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 int formal_parameter_count, 221 int formal_parameter_count,
222 int arity, 222 int arity,
223 LInstruction* instr, 223 LInstruction* instr,
224 A1State a1_state); 224 A1State a1_state);
225 225
226 void RecordSafepointWithLazyDeopt(LInstruction* instr, 226 void RecordSafepointWithLazyDeopt(LInstruction* instr,
227 SafepointMode safepoint_mode); 227 SafepointMode safepoint_mode);
228 228
229 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, 229 void RegisterEnvironmentForDeoptimization(LEnvironment* environment,
230 Safepoint::DeoptMode mode); 230 Safepoint::DeoptMode mode);
231 void DeoptimizeIf(Condition condition, 231 void DeoptimizeIf(Condition condition, LInstruction* instr,
232 LEnvironment* environment,
233 Deoptimizer::BailoutType bailout_type, 232 Deoptimizer::BailoutType bailout_type,
234 Register src1 = zero_reg, 233 Register src1 = zero_reg,
235 const Operand& src2 = Operand(zero_reg)); 234 const Operand& src2 = Operand(zero_reg));
236 void DeoptimizeIf(Condition condition, 235 void DeoptimizeIf(Condition condition, LInstruction* instr,
237 LEnvironment* environment,
238 Register src1 = zero_reg, 236 Register src1 = zero_reg,
239 const Operand& src2 = Operand(zero_reg)); 237 const Operand& src2 = Operand(zero_reg));
240 238
241 void AddToTranslation(LEnvironment* environment, 239 void AddToTranslation(LEnvironment* environment,
242 Translation* translation, 240 Translation* translation,
243 LOperand* op, 241 LOperand* op,
244 bool is_tagged, 242 bool is_tagged,
245 bool is_uint32, 243 bool is_uint32,
246 int* object_index_pointer, 244 int* object_index_pointer,
247 int* dematerialized_index_pointer); 245 int* dematerialized_index_pointer);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 void EmitFalseBranch(InstrType instr, 288 void EmitFalseBranch(InstrType instr,
291 Condition condition, 289 Condition condition,
292 Register src1, 290 Register src1,
293 const Operand& src2); 291 const Operand& src2);
294 template<class InstrType> 292 template<class InstrType>
295 void EmitFalseBranchF(InstrType instr, 293 void EmitFalseBranchF(InstrType instr,
296 Condition condition, 294 Condition condition,
297 FPURegister src1, 295 FPURegister src1,
298 FPURegister src2); 296 FPURegister src2);
299 void EmitCmpI(LOperand* left, LOperand* right); 297 void EmitCmpI(LOperand* left, LOperand* right);
300 void EmitNumberUntagD(Register input, 298 void EmitNumberUntagD(LNumberUntagD* instr, Register input,
301 DoubleRegister result, 299 DoubleRegister result, NumberUntagDMode mode);
302 bool allow_undefined_as_nan,
303 bool deoptimize_on_minus_zero,
304 LEnvironment* env,
305 NumberUntagDMode mode);
306 300
307 // Emits optimized code for typeof x == "y". Modifies input register. 301 // Emits optimized code for typeof x == "y". Modifies input register.
308 // Returns the condition on which a final split to 302 // Returns the condition on which a final split to
309 // true and false label should be made, to optimize fallthrough. 303 // true and false label should be made, to optimize fallthrough.
310 // Returns two registers in cmp1 and cmp2 that can be used in the 304 // Returns two registers in cmp1 and cmp2 that can be used in the
311 // Branch instruction after EmitTypeofIs. 305 // Branch instruction after EmitTypeofIs.
312 Condition EmitTypeofIs(Label* true_label, 306 Condition EmitTypeofIs(Label* true_label,
313 Label* false_label, 307 Label* false_label,
314 Register input, 308 Register input,
315 Handle<String> type_name, 309 Handle<String> type_name,
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 LCodeGen* codegen_; 438 LCodeGen* codegen_;
445 Label entry_; 439 Label entry_;
446 Label exit_; 440 Label exit_;
447 Label* external_exit_; 441 Label* external_exit_;
448 int instruction_index_; 442 int instruction_index_;
449 }; 443 };
450 444
451 } } // namespace v8::internal 445 } } // namespace v8::internal
452 446
453 #endif // V8_MIPS_LITHIUM_CODEGEN_MIPS_H_ 447 #endif // V8_MIPS_LITHIUM_CODEGEN_MIPS_H_
OLDNEW
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/mips/lithium-codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698