Reviewers: danno, Description: Merge r8623 to the 3.3 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/7351015/ SVN Base: http://v8.googlecode.com/svn/branches/3.3/ 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) @@ -542,6 +542,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(); + } } @@ -1417,6 +1424,7 @@ BinaryOpStub 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) @@ -1319,6 +1319,7 @@ BinaryOpStub 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 3 #define BUILD_NUMBER 10 -#define PATCH_LEVEL 20 +#define PATCH_LEVEL 21 // 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) @@ -1313,6 +1313,7 @@ BinaryOpStub 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
