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/ia32/lithium-codegen-ia32.h

Issue 110573004: Merge bleeding_edge 17696:18016. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/parser
Patch Set: Created 7 years 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 Register input, 191 Register input,
192 Register temporary, 192 Register temporary,
193 Register temporary2); 193 Register temporary2);
194 194
195 int GetStackSlotCount() const { return chunk()->spill_slot_count(); } 195 int GetStackSlotCount() const { return chunk()->spill_slot_count(); }
196 196
197 void Abort(BailoutReason reason); 197 void Abort(BailoutReason reason);
198 198
199 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } 199 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); }
200 200
201 void SaveCallerDoubles();
202 void RestoreCallerDoubles();
203
201 // Code generation passes. Returns true if code generation should 204 // Code generation passes. Returns true if code generation should
202 // continue. 205 // continue.
203 void GenerateBodyInstructionPre(LInstruction* instr) V8_OVERRIDE; 206 void GenerateBodyInstructionPre(LInstruction* instr) V8_OVERRIDE;
204 void GenerateBodyInstructionPost(LInstruction* instr) V8_OVERRIDE; 207 void GenerateBodyInstructionPost(LInstruction* instr) V8_OVERRIDE;
205 bool GeneratePrologue(); 208 bool GeneratePrologue();
206 bool GenerateDeferredCode(); 209 bool GenerateDeferredCode();
207 bool GenerateJumpTable(); 210 bool GenerateJumpTable();
208 bool GenerateSafepointTable(); 211 bool GenerateSafepointTable();
209 212
210 // Generates the custom OSR entrypoint and sets the osr_pc_offset. 213 // Generates the custom OSR entrypoint and sets the osr_pc_offset.
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 Register temp, 343 Register temp,
341 X87Register res_reg, 344 X87Register res_reg,
342 bool allow_undefined_as_nan, 345 bool allow_undefined_as_nan,
343 bool deoptimize_on_minus_zero, 346 bool deoptimize_on_minus_zero,
344 LEnvironment* env, 347 LEnvironment* env,
345 NumberUntagDMode mode = NUMBER_CANDIDATE_IS_ANY_TAGGED); 348 NumberUntagDMode mode = NUMBER_CANDIDATE_IS_ANY_TAGGED);
346 349
347 // Emits optimized code for typeof x == "y". Modifies input register. 350 // Emits optimized code for typeof x == "y". Modifies input register.
348 // Returns the condition on which a final split to 351 // Returns the condition on which a final split to
349 // true and false label should be made, to optimize fallthrough. 352 // true and false label should be made, to optimize fallthrough.
350 Condition EmitTypeofIs(Label* true_label, 353 Condition EmitTypeofIs(LTypeofIsAndBranch* instr, Register input);
351 Label* false_label,
352 Register input,
353 Handle<String> type_name);
354 354
355 // Emits optimized code for %_IsObject(x). Preserves input register. 355 // Emits optimized code for %_IsObject(x). Preserves input register.
356 // Returns the condition on which a final split to 356 // Returns the condition on which a final split to
357 // true and false label should be made, to optimize fallthrough. 357 // true and false label should be made, to optimize fallthrough.
358 Condition EmitIsObject(Register input, 358 Condition EmitIsObject(Register input,
359 Register temp1, 359 Register temp1,
360 Label* is_not_object, 360 Label* is_not_object,
361 Label* is_object); 361 Label* is_object);
362 362
363 // Emits optimized code for %_IsString(x). Preserves input register. 363 // Emits optimized code for %_IsString(x). Preserves input register.
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 Label exit_; 538 Label exit_;
539 Label* external_exit_; 539 Label* external_exit_;
540 Label done_; 540 Label done_;
541 int instruction_index_; 541 int instruction_index_;
542 LCodeGen::X87Stack x87_stack_; 542 LCodeGen::X87Stack x87_stack_;
543 }; 543 };
544 544
545 } } // namespace v8::internal 545 } } // namespace v8::internal
546 546
547 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_ 547 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698