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 |