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

Side by Side Diff: src/x64/lithium-codegen-x64.cc

Issue 6383010: Merge r6479 into trunk (Revert r6543 and r6441).... (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: Created 9 years, 11 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/version.cc ('k') | src/x64/lithium-x64.h » ('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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 int num_arguments, 367 int num_arguments,
368 LInstruction* instr) { 368 LInstruction* instr) {
369 Abort("Unimplemented: %s", "CallRuntime"); 369 Abort("Unimplemented: %s", "CallRuntime");
370 } 370 }
371 371
372 372
373 void LCodeGen::RegisterLazyDeoptimization(LInstruction* instr) { 373 void LCodeGen::RegisterLazyDeoptimization(LInstruction* instr) {
374 // Create the environment to bailout to. If the call has side effects 374 // Create the environment to bailout to. If the call has side effects
375 // execution has to continue after the call otherwise execution can continue 375 // execution has to continue after the call otherwise execution can continue
376 // from a previous bailout point repeating the call. 376 // from a previous bailout point repeating the call.
377 LEnvironment* lazy_deoptimization_environment; 377 LEnvironment* deoptimization_environment;
378 ASSERT(!instr->IsControl()); 378 if (instr->HasDeoptimizationEnvironment()) {
379 ASSERT(instructions_->at(current_instruction_ + 1)->IsGap()); 379 deoptimization_environment = instr->deoptimization_environment();
380 LInstruction* next_instr = instructions_->at(current_instruction_ + 2);
381 if (next_instr->IsLazyBailout()) {
382 ASSERT(next_instr->HasEnvironment());
383 lazy_deoptimization_environment = next_instr->environment();
384 } else { 380 } else {
385 lazy_deoptimization_environment = instr->environment(); 381 deoptimization_environment = instr->environment();
386 } 382 }
387 383
388 RegisterEnvironmentForDeoptimization(lazy_deoptimization_environment); 384 RegisterEnvironmentForDeoptimization(deoptimization_environment);
389 RecordSafepoint(instr->pointer_map(), 385 RecordSafepoint(instr->pointer_map(),
390 lazy_deoptimization_environment->deoptimization_index()); 386 deoptimization_environment->deoptimization_index());
391 } 387 }
392 388
393 389
394 void LCodeGen::RegisterEnvironmentForDeoptimization(LEnvironment* environment) { 390 void LCodeGen::RegisterEnvironmentForDeoptimization(LEnvironment* environment) {
395 if (!environment->HasBeenRegistered()) { 391 if (!environment->HasBeenRegistered()) {
396 // Physical stack frame layout: 392 // Physical stack frame layout:
397 // -x ............. -4 0 ..................................... y 393 // -x ............. -4 0 ..................................... y
398 // [incoming arguments] [spill slots] [pushed outgoing arguments] 394 // [incoming arguments] [spill slots] [pushed outgoing arguments]
399 395
400 // Layout of the environment: 396 // Layout of the environment:
(...skipping 1491 matching lines...) Expand 10 before | Expand all | Expand 10 after
1892 1888
1893 void LCodeGen::DoOsrEntry(LOsrEntry* instr) { 1889 void LCodeGen::DoOsrEntry(LOsrEntry* instr) {
1894 Abort("Unimplemented: %s", "DoOsrEntry"); 1890 Abort("Unimplemented: %s", "DoOsrEntry");
1895 } 1891 }
1896 1892
1897 #undef __ 1893 #undef __
1898 1894
1899 } } // namespace v8::internal 1895 } } // namespace v8::internal
1900 1896
1901 #endif // V8_TARGET_ARCH_X64 1897 #endif // V8_TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « src/version.cc ('k') | src/x64/lithium-x64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698