When generating code for ia32, make sure that there is enough reloc space
authorjochen <jochen@chromium.org>
Fri, 5 Dec 2014 11:15:20 +0000 (03:15 -0800)
committerCommit bot <commit-bot@chromium.org>
Fri, 5 Dec 2014 11:15:32 +0000 (11:15 +0000)
Compare with LCodeGen::FinishCode

BUG=none
R=jarin@chromium.org,mstarzinger@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/777243002

Cr-Commit-Position: refs/heads/master@{#25679}

src/compiler/arm/code-generator-arm.cc
src/compiler/arm64/code-generator-arm64.cc
src/compiler/code-generator.cc
src/compiler/code-generator.h
src/compiler/ia32/code-generator-ia32.cc
src/compiler/mips/code-generator-mips.cc
src/compiler/mips64/code-generator-mips64.cc
src/compiler/x64/code-generator-x64.cc

index f2489a4676aa2c694c68e980566243495ef11db0..9e0dc903f4d8f53d564d0c96c9a855d2fcf93b52 100644 (file)
@@ -1104,6 +1104,9 @@ void CodeGenerator::EnsureSpaceForLazyDeopt() {
   MarkLazyDeoptSite();
 }
 
+
+void CodeGenerator::EnsureRelocSpaceForLazyDeopt(Handle<Code> code) {}
+
 #undef __
 
 }  // namespace compiler
index 62145cb445ac56e5758e8a75d05c2a2801904af7..0b21f90c86664f17d2a87e87e99931be868d4b9d 100644 (file)
@@ -1159,6 +1159,9 @@ void CodeGenerator::EnsureSpaceForLazyDeopt() {
   MarkLazyDeoptSite();
 }
 
+
+void CodeGenerator::EnsureRelocSpaceForLazyDeopt(Handle<Code> code) {}
+
 #undef __
 
 }  // namespace compiler
index d4622c0a351d1962c415bee3d9f92050e1e53d50..4f13b4cfe5beee4c78727d1ec086bab457036808 100644 (file)
@@ -107,6 +107,8 @@ Handle<Code> CodeGenerator::GenerateCode() {
 
   PopulateDeoptimizationData(result);
 
+  EnsureRelocSpaceForLazyDeopt(result);
+
   // Emit a code line info recording stop event.
   void* line_info = recorder->DetachJITHandlerData();
   LOG_CODE_EVENT(isolate(), CodeEndLinePosInfoRecordEvent(*result, line_info));
index 46610dbde7f5f9cc9796b1215141ae754b00b255..e852e2bb45929c6de36b1a3f90ad2e0abd867ca2 100644 (file)
@@ -109,6 +109,7 @@ class CodeGenerator FINAL : public GapResolver::Assembler {
                                 InstructionOperand* op, MachineType type);
   void AddNopForSmiCodeInlining();
   void EnsureSpaceForLazyDeopt();
+  void EnsureRelocSpaceForLazyDeopt(Handle<Code> code);
   void MarkLazyDeoptSite();
 
   // ===========================================================================
index aa1cd547f87a01bddeee98aaa703e5374d691228..bc44ac77a1b2291d675b9e02491a6188374078fd 100644 (file)
@@ -1215,6 +1215,11 @@ void CodeGenerator::EnsureSpaceForLazyDeopt() {
   MarkLazyDeoptSite();
 }
 
+
+void CodeGenerator::EnsureRelocSpaceForLazyDeopt(Handle<Code> code) {
+  Deoptimizer::EnsureRelocSpaceForLazyDeoptimization(code);
+}
+
 #undef __
 
 }  // namespace compiler
index b808856dc011e6654514067036386be82d137e2c..16e963731120d7be66e7a2e0bfe8336480cc3ce8 100644 (file)
@@ -1105,6 +1105,9 @@ void CodeGenerator::EnsureSpaceForLazyDeopt() {
   MarkLazyDeoptSite();
 }
 
+
+void CodeGenerator::EnsureRelocSpaceForLazyDeopt(Handle<Code> code) {}
+
 #undef __
 
 }  // namespace compiler
index 8e94ceed2126841ab08b5e5897ccb4621b2be0c9..50437411f87c3ec802ee0438cb5c9bf97a967c92 100644 (file)
@@ -1380,6 +1380,9 @@ void CodeGenerator::EnsureSpaceForLazyDeopt() {
   MarkLazyDeoptSite();
 }
 
+
+void CodeGenerator::EnsureRelocSpaceForLazyDeopt(Handle<Code> code) {}
+
 #undef __
 
 }  // namespace compiler
index f2679b0391b01f25dca742d011352471dbee4c7a..471704590ca0605d8d8e363d9198932e35ef295c 100644 (file)
@@ -1249,6 +1249,9 @@ void CodeGenerator::EnsureSpaceForLazyDeopt() {
   MarkLazyDeoptSite();
 }
 
+
+void CodeGenerator::EnsureRelocSpaceForLazyDeopt(Handle<Code> code) {}
+
 #undef __
 
 }  // namespace internal