Reviewers: danno,

Description:
Merge r8623 to the 3.2 branch

r8623: Avoid patching code after the call to binary operation stub in optimized
code

[email protected]

BUG=none
TEST=none

Please review this at http://codereview.chromium.org/7355018/

SVN Base: http://v8.googlecode.com/svn/branches/3.2/

Affected files:
  M     src/arm/lithium-codegen-arm.cc
  M     src/ia32/lithium-codegen-ia32.cc
  M     src/version.cc
  M     src/x64/lithium-codegen-x64.cc


Index: src/arm/lithium-codegen-arm.cc
===================================================================
--- src/arm/lithium-codegen-arm.cc      (revision 8625)
+++ src/arm/lithium-codegen-arm.cc      (working copy)
@@ -497,6 +497,13 @@
   RecordPosition(pointers->position());
   __ Call(code, mode);
   RegisterLazyDeoptimization(instr, safepoint_mode);
+
+  // Signal that we don't inline smi code before these stubs in the
+  // optimizing code generator.
+  if (code->kind() == Code::BINARY_OP_IC ||
+      code->kind() == Code::COMPARE_IC) {
+    __ nop();
+  }
 }


@@ -1368,6 +1375,7 @@

   TypeRecordingBinaryOpStub stub(instr->op(), NO_OVERWRITE);
   CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
+  __ nop();  // Signals no inlined code.
 }


Index: src/ia32/lithium-codegen-ia32.cc
===================================================================
--- src/ia32/lithium-codegen-ia32.cc    (revision 8625)
+++ src/ia32/lithium-codegen-ia32.cc    (working copy)
@@ -1250,6 +1250,7 @@

   TypeRecordingBinaryOpStub stub(instr->op(), NO_OVERWRITE);
   CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr, RESTORE_CONTEXT);
+  __ nop();  // Signals no inlined code.
 }


Index: src/version.cc
===================================================================
--- src/version.cc      (revision 8625)
+++ src/version.cc      (working copy)
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     2
 #define BUILD_NUMBER      10
-#define PATCH_LEVEL       28
+#define PATCH_LEVEL       29
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0
Index: src/x64/lithium-codegen-x64.cc
===================================================================
--- src/x64/lithium-codegen-x64.cc      (revision 8625)
+++ src/x64/lithium-codegen-x64.cc      (working copy)
@@ -1246,6 +1246,7 @@

   TypeRecordingBinaryOpStub stub(instr->op(), NO_OVERWRITE);
   CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
+  __ nop();  // Signals no inlined code.
 }




--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to