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

Side by Side Diff: src/a64/lithium-codegen-a64.cc

Issue 184923002: Clear optimized code cache in shared function info when code gets deoptimized (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix assert Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 901 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 if (length == 0) return; 912 if (length == 0) return;
913 913
914 Handle<DeoptimizationInputData> data = 914 Handle<DeoptimizationInputData> data =
915 factory()->NewDeoptimizationInputData(length, TENURED); 915 factory()->NewDeoptimizationInputData(length, TENURED);
916 916
917 Handle<ByteArray> translations = 917 Handle<ByteArray> translations =
918 translations_.CreateByteArray(isolate()->factory()); 918 translations_.CreateByteArray(isolate()->factory());
919 data->SetTranslationByteArray(*translations); 919 data->SetTranslationByteArray(*translations);
920 data->SetInlinedFunctionCount(Smi::FromInt(inlined_function_count_)); 920 data->SetInlinedFunctionCount(Smi::FromInt(inlined_function_count_));
921 data->SetOptimizationId(Smi::FromInt(info_->optimization_id())); 921 data->SetOptimizationId(Smi::FromInt(info_->optimization_id()));
922 if (info_->IsOptimizing()) {
923 data->SetSharedFunctionInfo(*info_->shared_info());
924 } else {
925 data->SetSharedFunctionInfo(Smi::FromInt(0));
926 }
922 927
923 Handle<FixedArray> literals = 928 Handle<FixedArray> literals =
924 factory()->NewFixedArray(deoptimization_literals_.length(), TENURED); 929 factory()->NewFixedArray(deoptimization_literals_.length(), TENURED);
925 { AllowDeferredHandleDereference copy_handles; 930 { AllowDeferredHandleDereference copy_handles;
926 for (int i = 0; i < deoptimization_literals_.length(); i++) { 931 for (int i = 0; i < deoptimization_literals_.length(); i++) {
927 literals->set(i, *deoptimization_literals_[i]); 932 literals->set(i, *deoptimization_literals_[i]);
928 } 933 }
929 data->SetLiteralArray(*literals); 934 data->SetLiteralArray(*literals);
930 } 935 }
931 936
(...skipping 4734 matching lines...) Expand 10 before | Expand all | Expand 10 after
5666 __ Bind(&out_of_object); 5671 __ Bind(&out_of_object);
5667 __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset)); 5672 __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset));
5668 // Index is equal to negated out of object property index plus 1. 5673 // Index is equal to negated out of object property index plus 1.
5669 __ Sub(result, result, Operand::UntagSmiAndScale(index, kPointerSizeLog2)); 5674 __ Sub(result, result, Operand::UntagSmiAndScale(index, kPointerSizeLog2));
5670 __ Ldr(result, FieldMemOperand(result, 5675 __ Ldr(result, FieldMemOperand(result,
5671 FixedArray::kHeaderSize - kPointerSize)); 5676 FixedArray::kHeaderSize - kPointerSize));
5672 __ Bind(&done); 5677 __ Bind(&done);
5673 } 5678 }
5674 5679
5675 } } // namespace v8::internal 5680 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/a64/deoptimizer-a64.cc ('k') | src/arm/deoptimizer-arm.cc » ('j') | src/objects.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698