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

Side by Side Diff: src/deoptimizer.cc

Issue 1162993006: Add support for Embedded Constant Pools for PPC and Arm (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 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
« no previous file with comments | « src/debug.cc ('k') | src/factory.h » ('j') | src/objects.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/codegen.h" 8 #include "src/codegen.h"
9 #include "src/cpu-profiler.h" 9 #include "src/cpu-profiler.h"
10 #include "src/deoptimizer.h" 10 #include "src/deoptimizer.h"
(...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 if (is_topmost) output_frame->SetRegister(fp_reg.code(), fp_value); 985 if (is_topmost) output_frame->SetRegister(fp_reg.code(), fp_value);
986 if (trace_scope_ != NULL) { 986 if (trace_scope_ != NULL) {
987 PrintF(trace_scope_->file(), 987 PrintF(trace_scope_->file(),
988 " 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" 988 " 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08"
989 V8PRIxPTR " ; caller's fp\n", 989 V8PRIxPTR " ; caller's fp\n",
990 fp_value, output_offset, value); 990 fp_value, output_offset, value);
991 } 991 }
992 DCHECK(!is_bottommost || !has_alignment_padding_ || 992 DCHECK(!is_bottommost || !has_alignment_padding_ ||
993 (fp_value & kPointerSize) != 0); 993 (fp_value & kPointerSize) != 0);
994 994
995 if (FLAG_enable_ool_constant_pool) { 995 if (FLAG_enable_embedded_constant_pool) {
996 // For the bottommost output frame the constant pool pointer can be gotten 996 // For the bottommost output frame the constant pool pointer can be gotten
997 // from the input frame. For subsequent output frames, it can be read from 997 // from the input frame. For subsequent output frames, it can be read from
998 // the previous frame. 998 // the previous frame.
999 output_offset -= kPointerSize; 999 output_offset -= kPointerSize;
1000 input_offset -= kPointerSize; 1000 input_offset -= kPointerSize;
1001 if (is_bottommost) { 1001 if (is_bottommost) {
1002 value = input_->GetFrameSlot(input_offset); 1002 value = input_->GetFrameSlot(input_offset);
1003 } else { 1003 } else {
1004 value = output_[frame_index - 1]->GetConstantPool(); 1004 value = output_[frame_index - 1]->GetConstantPool();
1005 } 1005 }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 Code* non_optimized_code = function->shared()->code(); 1070 Code* non_optimized_code = function->shared()->code();
1071 FixedArray* raw_data = non_optimized_code->deoptimization_data(); 1071 FixedArray* raw_data = non_optimized_code->deoptimization_data();
1072 DeoptimizationOutputData* data = DeoptimizationOutputData::cast(raw_data); 1072 DeoptimizationOutputData* data = DeoptimizationOutputData::cast(raw_data);
1073 Address start = non_optimized_code->instruction_start(); 1073 Address start = non_optimized_code->instruction_start();
1074 unsigned pc_and_state = GetOutputInfo(data, node_id, function->shared()); 1074 unsigned pc_and_state = GetOutputInfo(data, node_id, function->shared());
1075 unsigned pc_offset = FullCodeGenerator::PcField::decode(pc_and_state); 1075 unsigned pc_offset = FullCodeGenerator::PcField::decode(pc_and_state);
1076 intptr_t pc_value = reinterpret_cast<intptr_t>(start + pc_offset); 1076 intptr_t pc_value = reinterpret_cast<intptr_t>(start + pc_offset);
1077 output_frame->SetPc(pc_value); 1077 output_frame->SetPc(pc_value);
1078 1078
1079 // Update constant pool. 1079 // Update constant pool.
1080 if (FLAG_enable_ool_constant_pool) { 1080 if (FLAG_enable_embedded_constant_pool) {
1081 intptr_t constant_pool_value = 1081 intptr_t constant_pool_value =
1082 reinterpret_cast<intptr_t>(non_optimized_code->constant_pool()); 1082 reinterpret_cast<intptr_t>(non_optimized_code->constant_pool());
1083 output_frame->SetConstantPool(constant_pool_value); 1083 output_frame->SetConstantPool(constant_pool_value);
1084 if (is_topmost) { 1084 if (is_topmost) {
1085 Register constant_pool_reg = 1085 Register constant_pool_reg =
1086 JavaScriptFrame::constant_pool_pointer_register(); 1086 JavaScriptFrame::constant_pool_pointer_register();
1087 output_frame->SetRegister(constant_pool_reg.code(), constant_pool_value); 1087 output_frame->SetRegister(constant_pool_reg.code(), constant_pool_value);
1088 } 1088 }
1089 } 1089 }
1090 1090
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1163 output_frame->SetCallerFp(output_offset, value); 1163 output_frame->SetCallerFp(output_offset, value);
1164 intptr_t fp_value = top_address + output_offset; 1164 intptr_t fp_value = top_address + output_offset;
1165 output_frame->SetFp(fp_value); 1165 output_frame->SetFp(fp_value);
1166 if (trace_scope_ != NULL) { 1166 if (trace_scope_ != NULL) {
1167 PrintF(trace_scope_->file(), 1167 PrintF(trace_scope_->file(),
1168 " 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" 1168 " 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08"
1169 V8PRIxPTR " ; caller's fp\n", 1169 V8PRIxPTR " ; caller's fp\n",
1170 fp_value, output_offset, value); 1170 fp_value, output_offset, value);
1171 } 1171 }
1172 1172
1173 if (FLAG_enable_ool_constant_pool) { 1173 if (FLAG_enable_embedded_constant_pool) {
1174 // Read the caller's constant pool from the previous frame. 1174 // Read the caller's constant pool from the previous frame.
1175 output_offset -= kPointerSize; 1175 output_offset -= kPointerSize;
1176 value = output_[frame_index - 1]->GetConstantPool(); 1176 value = output_[frame_index - 1]->GetConstantPool();
1177 output_frame->SetCallerConstantPool(output_offset, value); 1177 output_frame->SetCallerConstantPool(output_offset, value);
1178 if (trace_scope_) { 1178 if (trace_scope_) {
1179 PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" 1179 PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08"
1180 V8PRIxPTR "; caller's constant_pool\n", 1180 V8PRIxPTR "; caller's constant_pool\n",
1181 top_address + output_offset, output_offset, value); 1181 top_address + output_offset, output_offset, value);
1182 } 1182 }
1183 } 1183 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1218 1218
1219 DCHECK(0 == output_offset); 1219 DCHECK(0 == output_offset);
1220 1220
1221 Builtins* builtins = isolate_->builtins(); 1221 Builtins* builtins = isolate_->builtins();
1222 Code* adaptor_trampoline = 1222 Code* adaptor_trampoline =
1223 builtins->builtin(Builtins::kArgumentsAdaptorTrampoline); 1223 builtins->builtin(Builtins::kArgumentsAdaptorTrampoline);
1224 intptr_t pc_value = reinterpret_cast<intptr_t>( 1224 intptr_t pc_value = reinterpret_cast<intptr_t>(
1225 adaptor_trampoline->instruction_start() + 1225 adaptor_trampoline->instruction_start() +
1226 isolate_->heap()->arguments_adaptor_deopt_pc_offset()->value()); 1226 isolate_->heap()->arguments_adaptor_deopt_pc_offset()->value());
1227 output_frame->SetPc(pc_value); 1227 output_frame->SetPc(pc_value);
1228 if (FLAG_enable_ool_constant_pool) { 1228 if (FLAG_enable_embedded_constant_pool) {
1229 intptr_t constant_pool_value = 1229 intptr_t constant_pool_value =
1230 reinterpret_cast<intptr_t>(adaptor_trampoline->constant_pool()); 1230 reinterpret_cast<intptr_t>(adaptor_trampoline->constant_pool());
1231 output_frame->SetConstantPool(constant_pool_value); 1231 output_frame->SetConstantPool(constant_pool_value);
1232 } 1232 }
1233 } 1233 }
1234 1234
1235 1235
1236 void Deoptimizer::DoComputeConstructStubFrame(TranslationIterator* iterator, 1236 void Deoptimizer::DoComputeConstructStubFrame(TranslationIterator* iterator,
1237 int frame_index) { 1237 int frame_index) {
1238 Builtins* builtins = isolate_->builtins(); 1238 Builtins* builtins = isolate_->builtins();
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1297 output_frame->SetCallerFp(output_offset, value); 1297 output_frame->SetCallerFp(output_offset, value);
1298 intptr_t fp_value = top_address + output_offset; 1298 intptr_t fp_value = top_address + output_offset;
1299 output_frame->SetFp(fp_value); 1299 output_frame->SetFp(fp_value);
1300 if (trace_scope_ != NULL) { 1300 if (trace_scope_ != NULL) {
1301 PrintF(trace_scope_->file(), 1301 PrintF(trace_scope_->file(),
1302 " 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" 1302 " 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08"
1303 V8PRIxPTR " ; caller's fp\n", 1303 V8PRIxPTR " ; caller's fp\n",
1304 fp_value, output_offset, value); 1304 fp_value, output_offset, value);
1305 } 1305 }
1306 1306
1307 if (FLAG_enable_ool_constant_pool) { 1307 if (FLAG_enable_embedded_constant_pool) {
1308 // Read the caller's constant pool from the previous frame. 1308 // Read the caller's constant pool from the previous frame.
1309 output_offset -= kPointerSize; 1309 output_offset -= kPointerSize;
1310 value = output_[frame_index - 1]->GetConstantPool(); 1310 value = output_[frame_index - 1]->GetConstantPool();
1311 output_frame->SetCallerConstantPool(output_offset, value); 1311 output_frame->SetCallerConstantPool(output_offset, value);
1312 if (trace_scope_) { 1312 if (trace_scope_) {
1313 PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" 1313 PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08"
1314 V8PRIxPTR " ; caller's constant pool\n", 1314 V8PRIxPTR " ; caller's constant pool\n",
1315 top_address + output_offset, output_offset, value); 1315 top_address + output_offset, output_offset, value);
1316 } 1316 }
1317 } 1317 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 V8PRIxPTR " ; allocated receiver\n", 1385 V8PRIxPTR " ; allocated receiver\n",
1386 top_address + output_offset, output_offset, value); 1386 top_address + output_offset, output_offset, value);
1387 } 1387 }
1388 1388
1389 CHECK_EQ(0u, output_offset); 1389 CHECK_EQ(0u, output_offset);
1390 1390
1391 intptr_t pc = reinterpret_cast<intptr_t>( 1391 intptr_t pc = reinterpret_cast<intptr_t>(
1392 construct_stub->instruction_start() + 1392 construct_stub->instruction_start() +
1393 isolate_->heap()->construct_stub_deopt_pc_offset()->value()); 1393 isolate_->heap()->construct_stub_deopt_pc_offset()->value());
1394 output_frame->SetPc(pc); 1394 output_frame->SetPc(pc);
1395 if (FLAG_enable_ool_constant_pool) { 1395 if (FLAG_enable_embedded_constant_pool) {
1396 intptr_t constant_pool_value = 1396 intptr_t constant_pool_value =
1397 reinterpret_cast<intptr_t>(construct_stub->constant_pool()); 1397 reinterpret_cast<intptr_t>(construct_stub->constant_pool());
1398 output_frame->SetConstantPool(constant_pool_value); 1398 output_frame->SetConstantPool(constant_pool_value);
1399 } 1399 }
1400 } 1400 }
1401 1401
1402 1402
1403 void Deoptimizer::DoComputeAccessorStubFrame(TranslationIterator* iterator, 1403 void Deoptimizer::DoComputeAccessorStubFrame(TranslationIterator* iterator,
1404 int frame_index, 1404 int frame_index,
1405 bool is_setter_stub_frame) { 1405 bool is_setter_stub_frame) {
1406 JSFunction* accessor = JSFunction::cast(ComputeLiteral(iterator->Next())); 1406 JSFunction* accessor = JSFunction::cast(ComputeLiteral(iterator->Next()));
1407 // The receiver (and the implicit return value, if any) are expected in 1407 // The receiver (and the implicit return value, if any) are expected in
1408 // registers by the LoadIC/StoreIC, so they don't belong to the output stack 1408 // registers by the LoadIC/StoreIC, so they don't belong to the output stack
1409 // frame. This means that we have to use a height of 0. 1409 // frame. This means that we have to use a height of 0.
1410 unsigned height = 0; 1410 unsigned height = 0;
1411 unsigned height_in_bytes = height * kPointerSize; 1411 unsigned height_in_bytes = height * kPointerSize;
1412 const char* kind = is_setter_stub_frame ? "setter" : "getter"; 1412 const char* kind = is_setter_stub_frame ? "setter" : "getter";
1413 if (trace_scope_ != NULL) { 1413 if (trace_scope_ != NULL) {
1414 PrintF(trace_scope_->file(), 1414 PrintF(trace_scope_->file(),
1415 " translating %s stub => height=%u\n", kind, height_in_bytes); 1415 " translating %s stub => height=%u\n", kind, height_in_bytes);
1416 } 1416 }
1417 1417
1418 // We need 1 stack entry for the return address and enough entries for the 1418 // We need 1 stack entry for the return address and enough entries for the
1419 // StackFrame::INTERNAL (FP, context, frame type, code object and constant 1419 // StackFrame::INTERNAL (FP, context, frame type, code object and constant
1420 // pool (if FLAG_enable_ool_constant_pool)- see MacroAssembler::EnterFrame). 1420 // pool (if enabled)- see MacroAssembler::EnterFrame).
1421 // For a setter stub frame we need one additional entry for the implicit 1421 // For a setter stub frame we need one additional entry for the implicit
1422 // return value, see StoreStubCompiler::CompileStoreViaSetter. 1422 // return value, see StoreStubCompiler::CompileStoreViaSetter.
1423 unsigned fixed_frame_entries = 1423 unsigned fixed_frame_entries =
1424 (StandardFrameConstants::kFixedFrameSize / kPointerSize) + 1 + 1424 (StandardFrameConstants::kFixedFrameSize / kPointerSize) + 1 +
1425 (is_setter_stub_frame ? 1 : 0); 1425 (is_setter_stub_frame ? 1 : 0);
1426 unsigned fixed_frame_size = fixed_frame_entries * kPointerSize; 1426 unsigned fixed_frame_size = fixed_frame_entries * kPointerSize;
1427 unsigned output_frame_size = height_in_bytes + fixed_frame_size; 1427 unsigned output_frame_size = height_in_bytes + fixed_frame_size;
1428 1428
1429 // Allocate and store the output frame description. 1429 // Allocate and store the output frame description.
1430 FrameDescription* output_frame = 1430 FrameDescription* output_frame =
(...skipping 29 matching lines...) Expand all
1460 output_frame->SetCallerFp(output_offset, value); 1460 output_frame->SetCallerFp(output_offset, value);
1461 intptr_t fp_value = top_address + output_offset; 1461 intptr_t fp_value = top_address + output_offset;
1462 output_frame->SetFp(fp_value); 1462 output_frame->SetFp(fp_value);
1463 if (trace_scope_ != NULL) { 1463 if (trace_scope_ != NULL) {
1464 PrintF(trace_scope_->file(), 1464 PrintF(trace_scope_->file(),
1465 " 0x%08" V8PRIxPTR ": [top + %u] <- 0x%08" V8PRIxPTR 1465 " 0x%08" V8PRIxPTR ": [top + %u] <- 0x%08" V8PRIxPTR
1466 " ; caller's fp\n", 1466 " ; caller's fp\n",
1467 fp_value, output_offset, value); 1467 fp_value, output_offset, value);
1468 } 1468 }
1469 1469
1470 if (FLAG_enable_ool_constant_pool) { 1470 if (FLAG_enable_embedded_constant_pool) {
1471 // Read the caller's constant pool from the previous frame. 1471 // Read the caller's constant pool from the previous frame.
1472 output_offset -= kPointerSize; 1472 output_offset -= kPointerSize;
1473 value = output_[frame_index - 1]->GetConstantPool(); 1473 value = output_[frame_index - 1]->GetConstantPool();
1474 output_frame->SetCallerConstantPool(output_offset, value); 1474 output_frame->SetCallerConstantPool(output_offset, value);
1475 if (trace_scope_) { 1475 if (trace_scope_) {
1476 PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" 1476 PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08"
1477 V8PRIxPTR " ; caller's constant pool\n", 1477 V8PRIxPTR " ; caller's constant pool\n",
1478 top_address + output_offset, output_offset, value); 1478 top_address + output_offset, output_offset, value);
1479 } 1479 }
1480 } 1480 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1527 } 1527 }
1528 1528
1529 CHECK_EQ(0u, output_offset); 1529 CHECK_EQ(0u, output_offset);
1530 1530
1531 Smi* offset = is_setter_stub_frame ? 1531 Smi* offset = is_setter_stub_frame ?
1532 isolate_->heap()->setter_stub_deopt_pc_offset() : 1532 isolate_->heap()->setter_stub_deopt_pc_offset() :
1533 isolate_->heap()->getter_stub_deopt_pc_offset(); 1533 isolate_->heap()->getter_stub_deopt_pc_offset();
1534 intptr_t pc = reinterpret_cast<intptr_t>( 1534 intptr_t pc = reinterpret_cast<intptr_t>(
1535 accessor_stub->instruction_start() + offset->value()); 1535 accessor_stub->instruction_start() + offset->value());
1536 output_frame->SetPc(pc); 1536 output_frame->SetPc(pc);
1537 if (FLAG_enable_ool_constant_pool) { 1537 if (FLAG_enable_embedded_constant_pool) {
1538 intptr_t constant_pool_value = 1538 intptr_t constant_pool_value =
1539 reinterpret_cast<intptr_t>(accessor_stub->constant_pool()); 1539 reinterpret_cast<intptr_t>(accessor_stub->constant_pool());
1540 output_frame->SetConstantPool(constant_pool_value); 1540 output_frame->SetConstantPool(constant_pool_value);
1541 } 1541 }
1542 } 1542 }
1543 1543
1544 1544
1545 void Deoptimizer::DoComputeCompiledStubFrame(TranslationIterator* iterator, 1545 void Deoptimizer::DoComputeCompiledStubFrame(TranslationIterator* iterator,
1546 int frame_index) { 1546 int frame_index) {
1547 // 1547 //
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1634 intptr_t frame_ptr = input_->GetRegister(fp_reg.code()); 1634 intptr_t frame_ptr = input_->GetRegister(fp_reg.code());
1635 output_frame->SetRegister(fp_reg.code(), frame_ptr); 1635 output_frame->SetRegister(fp_reg.code(), frame_ptr);
1636 output_frame->SetFp(frame_ptr); 1636 output_frame->SetFp(frame_ptr);
1637 if (trace_scope_ != NULL) { 1637 if (trace_scope_ != NULL) {
1638 PrintF(trace_scope_->file(), 1638 PrintF(trace_scope_->file(),
1639 " 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" 1639 " 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08"
1640 V8PRIxPTR " ; caller's fp\n", 1640 V8PRIxPTR " ; caller's fp\n",
1641 top_address + output_frame_offset, output_frame_offset, value); 1641 top_address + output_frame_offset, output_frame_offset, value);
1642 } 1642 }
1643 1643
1644 if (FLAG_enable_ool_constant_pool) { 1644 if (FLAG_enable_embedded_constant_pool) {
1645 // Read the caller's constant pool from the input frame. 1645 // Read the caller's constant pool from the input frame.
1646 input_frame_offset -= kPointerSize; 1646 input_frame_offset -= kPointerSize;
1647 value = input_->GetFrameSlot(input_frame_offset); 1647 value = input_->GetFrameSlot(input_frame_offset);
1648 output_frame_offset -= kPointerSize; 1648 output_frame_offset -= kPointerSize;
1649 output_frame->SetCallerConstantPool(output_frame_offset, value); 1649 output_frame->SetCallerConstantPool(output_frame_offset, value);
1650 if (trace_scope_) { 1650 if (trace_scope_) {
1651 PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" 1651 PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08"
1652 V8PRIxPTR " ; caller's constant_pool\n", 1652 V8PRIxPTR " ; caller's constant_pool\n",
1653 top_address + output_frame_offset, output_frame_offset, value); 1653 top_address + output_frame_offset, output_frame_offset, value);
1654 } 1654 }
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1776 SetPlatformCompiledStubRegisters(output_frame, &descriptor); 1776 SetPlatformCompiledStubRegisters(output_frame, &descriptor);
1777 1777
1778 // Compute this frame's PC, state, and continuation. 1778 // Compute this frame's PC, state, and continuation.
1779 Code* trampoline = NULL; 1779 Code* trampoline = NULL;
1780 StubFunctionMode function_mode = descriptor.function_mode(); 1780 StubFunctionMode function_mode = descriptor.function_mode();
1781 StubFailureTrampolineStub(isolate_, 1781 StubFailureTrampolineStub(isolate_,
1782 function_mode).FindCodeInCache(&trampoline); 1782 function_mode).FindCodeInCache(&trampoline);
1783 DCHECK(trampoline != NULL); 1783 DCHECK(trampoline != NULL);
1784 output_frame->SetPc(reinterpret_cast<intptr_t>( 1784 output_frame->SetPc(reinterpret_cast<intptr_t>(
1785 trampoline->instruction_start())); 1785 trampoline->instruction_start()));
1786 if (FLAG_enable_ool_constant_pool) { 1786 if (FLAG_enable_embedded_constant_pool) {
1787 Register constant_pool_reg = 1787 Register constant_pool_reg =
1788 StubFailureTrampolineFrame::constant_pool_pointer_register(); 1788 StubFailureTrampolineFrame::constant_pool_pointer_register();
1789 intptr_t constant_pool_value = 1789 intptr_t constant_pool_value =
1790 reinterpret_cast<intptr_t>(trampoline->constant_pool()); 1790 reinterpret_cast<intptr_t>(trampoline->constant_pool());
1791 output_frame->SetConstantPool(constant_pool_value); 1791 output_frame->SetConstantPool(constant_pool_value);
1792 output_frame->SetRegister(constant_pool_reg.code(), constant_pool_value); 1792 output_frame->SetRegister(constant_pool_reg.code(), constant_pool_value);
1793 } 1793 }
1794 output_frame->SetState(Smi::FromInt(FullCodeGenerator::NO_REGISTERS)); 1794 output_frame->SetState(Smi::FromInt(FullCodeGenerator::NO_REGISTERS));
1795 Code* notify_failure = 1795 Code* notify_failure =
1796 isolate_->builtins()->builtin(Builtins::kNotifyStubFailureSaveDoubles); 1796 isolate_->builtins()->builtin(Builtins::kNotifyStubFailureSaveDoubles);
(...skipping 2045 matching lines...) Expand 10 before | Expand all | Expand 10 after
3842 last_position = raw_position ? SourcePosition::FromRaw(raw_position) 3842 last_position = raw_position ? SourcePosition::FromRaw(raw_position)
3843 : SourcePosition::Unknown(); 3843 : SourcePosition::Unknown();
3844 } else if (info->rmode() == RelocInfo::DEOPT_REASON) { 3844 } else if (info->rmode() == RelocInfo::DEOPT_REASON) {
3845 last_reason = static_cast<Deoptimizer::DeoptReason>(info->data()); 3845 last_reason = static_cast<Deoptimizer::DeoptReason>(info->data());
3846 } 3846 }
3847 } 3847 }
3848 return DeoptInfo(SourcePosition::Unknown(), NULL, Deoptimizer::kNoReason); 3848 return DeoptInfo(SourcePosition::Unknown(), NULL, Deoptimizer::kNoReason);
3849 } 3849 }
3850 } // namespace internal 3850 } // namespace internal
3851 } // namespace v8 3851 } // namespace v8
OLDNEW
« no previous file with comments | « src/debug.cc ('k') | src/factory.h » ('j') | src/objects.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698