Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 993 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1004 | 1004 |
| 1005 void LCodeGen::DeoptimizeIf(Condition cc, | 1005 void LCodeGen::DeoptimizeIf(Condition cc, |
| 1006 LEnvironment* environment) { | 1006 LEnvironment* environment) { |
| 1007 Deoptimizer::BailoutType bailout_type = info()->IsStub() | 1007 Deoptimizer::BailoutType bailout_type = info()->IsStub() |
| 1008 ? Deoptimizer::LAZY | 1008 ? Deoptimizer::LAZY |
| 1009 : Deoptimizer::EAGER; | 1009 : Deoptimizer::EAGER; |
| 1010 DeoptimizeIf(cc, environment, bailout_type); | 1010 DeoptimizeIf(cc, environment, bailout_type); |
| 1011 } | 1011 } |
| 1012 | 1012 |
| 1013 | 1013 |
| 1014 void LCodeGen::SoftDeoptimize(LEnvironment* environment) { | 1014 void LCodeGen::Deoptimize(LEnvironment* environment) { |
| 1015 ASSERT(!info()->IsStub()); | 1015 ASSERT(!info()->IsStub()); |
| 1016 DeoptimizeIf(no_condition, environment, Deoptimizer::SOFT); | 1016 DeoptimizeIf(no_condition, environment, Deoptimizer::SOFT); |
| 1017 } | 1017 } |
| 1018 | 1018 |
| 1019 | 1019 |
| 1020 void LCodeGen::RegisterDependentCodeForEmbeddedMaps(Handle<Code> code) { | 1020 void LCodeGen::RegisterDependentCodeForEmbeddedMaps(Handle<Code> code) { |
| 1021 ZoneList<Handle<Map> > maps(1, zone()); | 1021 ZoneList<Handle<Map> > maps(1, zone()); |
| 1022 int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT); | 1022 int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT); |
| 1023 for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) { | 1023 for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) { |
| 1024 RelocInfo::Mode mode = it.rinfo()->rmode(); | 1024 RelocInfo::Mode mode = it.rinfo()->rmode(); |
| (...skipping 5287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6312 void LCodeGen::DoLazyBailout(LLazyBailout* instr) { | 6312 void LCodeGen::DoLazyBailout(LLazyBailout* instr) { |
| 6313 EnsureSpaceForLazyDeopt(); | 6313 EnsureSpaceForLazyDeopt(); |
| 6314 ASSERT(instr->HasEnvironment()); | 6314 ASSERT(instr->HasEnvironment()); |
| 6315 LEnvironment* env = instr->environment(); | 6315 LEnvironment* env = instr->environment(); |
| 6316 RegisterEnvironmentForDeoptimization(env, Safepoint::kLazyDeopt); | 6316 RegisterEnvironmentForDeoptimization(env, Safepoint::kLazyDeopt); |
| 6317 safepoints_.RecordLazyDeoptimizationIndex(env->deoptimization_index()); | 6317 safepoints_.RecordLazyDeoptimizationIndex(env->deoptimization_index()); |
| 6318 } | 6318 } |
| 6319 | 6319 |
| 6320 | 6320 |
| 6321 void LCodeGen::DoDeoptimize(LDeoptimize* instr) { | 6321 void LCodeGen::DoDeoptimize(LDeoptimize* instr) { |
| 6322 if (instr->hydrogen_value()->IsSoftDeoptimize()) { | 6322 ASSERT(instr->hydrogen_value()->IsDeoptimize()); |
|
Jakob Kummerow
2013/07/22 16:53:12
This explicit ASSERT is unnecessary, as "instr->hy
danno
2013/07/23 12:18:14
Done.
| |
| 6323 SoftDeoptimize(instr->environment()); | 6323 if (instr->hydrogen()->type() == Deoptimizer::SOFT) { |
| 6324 Deoptimize(instr->environment()); | |
|
Jakob Kummerow
2013/07/22 16:53:12
I think I'd prefer to extend Deoptimize()'s signat
danno
2013/07/23 12:18:14
Done
| |
| 6324 } else { | 6325 } else { |
| 6325 DeoptimizeIf(no_condition, instr->environment()); | 6326 DeoptimizeIf(no_condition, instr->environment()); |
| 6326 } | 6327 } |
| 6327 } | 6328 } |
| 6328 | 6329 |
| 6329 | 6330 |
| 6330 void LCodeGen::DoDummyUse(LDummyUse* instr) { | 6331 void LCodeGen::DoDummyUse(LDummyUse* instr) { |
| 6331 // Nothing to see here, move on! | 6332 // Nothing to see here, move on! |
| 6332 } | 6333 } |
| 6333 | 6334 |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6497 FixedArray::kHeaderSize - kPointerSize)); | 6498 FixedArray::kHeaderSize - kPointerSize)); |
| 6498 __ bind(&done); | 6499 __ bind(&done); |
| 6499 } | 6500 } |
| 6500 | 6501 |
| 6501 | 6502 |
| 6502 #undef __ | 6503 #undef __ |
| 6503 | 6504 |
| 6504 } } // namespace v8::internal | 6505 } } // namespace v8::internal |
| 6505 | 6506 |
| 6506 #endif // V8_TARGET_ARCH_IA32 | 6507 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |