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

Side by Side Diff: src/mips/full-codegen-mips.cc

Issue 700523003: Classes: Partial fix for constructor not calling super (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 1 month 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 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_MIPS 7 #if V8_TARGET_ARCH_MIPS
8 8
9 // Note on Mips implementation: 9 // Note on Mips implementation:
10 // 10 //
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 // Add a label for checking the size of the code used for returning. 433 // Add a label for checking the size of the code used for returning.
434 Label check_exit_codesize; 434 Label check_exit_codesize;
435 masm_->bind(&check_exit_codesize); 435 masm_->bind(&check_exit_codesize);
436 #endif 436 #endif
437 // Make sure that the constant pool is not emitted inside of the return 437 // Make sure that the constant pool is not emitted inside of the return
438 // sequence. 438 // sequence.
439 { Assembler::BlockTrampolinePoolScope block_trampoline_pool(masm_); 439 { Assembler::BlockTrampolinePoolScope block_trampoline_pool(masm_);
440 // Here we use masm_-> instead of the __ macro to avoid the code coverage 440 // Here we use masm_-> instead of the __ macro to avoid the code coverage
441 // tool from instrumenting as we rely on the code size here. 441 // tool from instrumenting as we rely on the code size here.
442 int32_t sp_delta = (info_->scope()->num_parameters() + 1) * kPointerSize; 442 int32_t sp_delta = (info_->scope()->num_parameters() + 1) * kPointerSize;
443 CodeGenerator::RecordPositions(masm_, function()->end_position() - 1); 443 if (function()->end_position() != RelocInfo::kNoPosition) {
444 CodeGenerator::RecordPositions(masm_, function()->end_position() - 1);
445 }
444 __ RecordJSReturn(); 446 __ RecordJSReturn();
445 masm_->mov(sp, fp); 447 masm_->mov(sp, fp);
446 int no_frame_start = masm_->pc_offset(); 448 int no_frame_start = masm_->pc_offset();
447 masm_->MultiPop(static_cast<RegList>(fp.bit() | ra.bit())); 449 masm_->MultiPop(static_cast<RegList>(fp.bit() | ra.bit()));
448 masm_->Addu(sp, sp, Operand(sp_delta)); 450 masm_->Addu(sp, sp, Operand(sp_delta));
449 masm_->Jump(ra); 451 masm_->Jump(ra);
450 info_->AddNoFrameRange(no_frame_start, masm_->pc_offset()); 452 info_->AddNoFrameRange(no_frame_start, masm_->pc_offset());
451 } 453 }
452 454
453 #ifdef DEBUG 455 #ifdef DEBUG
(...skipping 4825 matching lines...) Expand 10 before | Expand all | Expand 10 after
5279 Assembler::target_address_at(pc_immediate_load_address)) == 5281 Assembler::target_address_at(pc_immediate_load_address)) ==
5280 reinterpret_cast<uint32_t>( 5282 reinterpret_cast<uint32_t>(
5281 isolate->builtins()->OsrAfterStackCheck()->entry())); 5283 isolate->builtins()->OsrAfterStackCheck()->entry()));
5282 return OSR_AFTER_STACK_CHECK; 5284 return OSR_AFTER_STACK_CHECK;
5283 } 5285 }
5284 5286
5285 5287
5286 } } // namespace v8::internal 5288 } } // namespace v8::internal
5287 5289
5288 #endif // V8_TARGET_ARCH_MIPS 5290 #endif // V8_TARGET_ARCH_MIPS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698