OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved.7 | 1 // Copyright 2012 the V8 project authors. All rights reserved.7 |
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 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 osr_pc_offset_ = masm()->pc_offset(); | 252 osr_pc_offset_ = masm()->pc_offset(); |
253 | 253 |
254 // Adjust the frame size, subsuming the unoptimized frame into the | 254 // Adjust the frame size, subsuming the unoptimized frame into the |
255 // optimized frame. | 255 // optimized frame. |
256 int slots = GetStackSlotCount() - graph()->osr()->UnoptimizedFrameSlots(); | 256 int slots = GetStackSlotCount() - graph()->osr()->UnoptimizedFrameSlots(); |
257 ASSERT(slots >= 0); | 257 ASSERT(slots >= 0); |
258 __ Subu(sp, sp, Operand(slots * kPointerSize)); | 258 __ Subu(sp, sp, Operand(slots * kPointerSize)); |
259 } | 259 } |
260 | 260 |
261 | 261 |
| 262 void LCodeGen::GenerateBodyInstructionPre(LInstruction* instr) { |
| 263 if (!instr->IsLazyBailout() && !instr->IsGap()) { |
| 264 safepoints_.BumpLastLazySafepointIndex(); |
| 265 } |
| 266 } |
| 267 |
| 268 |
262 bool LCodeGen::GenerateDeferredCode() { | 269 bool LCodeGen::GenerateDeferredCode() { |
263 ASSERT(is_generating()); | 270 ASSERT(is_generating()); |
264 if (deferred_.length() > 0) { | 271 if (deferred_.length() > 0) { |
265 for (int i = 0; !is_aborted() && i < deferred_.length(); i++) { | 272 for (int i = 0; !is_aborted() && i < deferred_.length(); i++) { |
266 LDeferredCode* code = deferred_[i]; | 273 LDeferredCode* code = deferred_[i]; |
267 | 274 |
268 HValue* value = | 275 HValue* value = |
269 instructions_->at(code->instruction_index())->hydrogen_value(); | 276 instructions_->at(code->instruction_index())->hydrogen_value(); |
270 RecordAndWritePosition( | 277 RecordAndWritePosition( |
271 chunk()->graph()->SourcePositionToScriptPosition(value->position())); | 278 chunk()->graph()->SourcePositionToScriptPosition(value->position())); |
(...skipping 5444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5716 __ Subu(scratch, result, scratch); | 5723 __ Subu(scratch, result, scratch); |
5717 __ lw(result, FieldMemOperand(scratch, | 5724 __ lw(result, FieldMemOperand(scratch, |
5718 FixedArray::kHeaderSize - kPointerSize)); | 5725 FixedArray::kHeaderSize - kPointerSize)); |
5719 __ bind(&done); | 5726 __ bind(&done); |
5720 } | 5727 } |
5721 | 5728 |
5722 | 5729 |
5723 #undef __ | 5730 #undef __ |
5724 | 5731 |
5725 } } // namespace v8::internal | 5732 } } // namespace v8::internal |
OLD | NEW |