Reviewers: Yang,

Message:
PTAL.

The second changed line wouldn't actually have been necessary, but I didn't want
this to be too brittle in case someone adds an instruction or two.

x64 is not affected.

Description:
Fixed CHECK failure in LCodeGen::DoWrapReceiver when --deopt-every-n-times flag
is present


BUG=148389


Please review this at https://chromiumcodereview.appspot.com/10914222/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

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


Index: src/ia32/lithium-codegen-ia32.cc
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc index 33efdd89e1dce0c9fcea673f3b5ff3ed8feb61ac..2b42b13a1a1458b176837774a82eb2f9dd3cf3ba 100644
--- a/src/ia32/lithium-codegen-ia32.cc
+++ b/src/ia32/lithium-codegen-ia32.cc
@@ -2946,12 +2946,12 @@ void LCodeGen::DoWrapReceiver(LWrapReceiver* instr) {
          FieldOperand(function, JSFunction::kSharedFunctionInfoOffset));
__ test_b(FieldOperand(scratch, SharedFunctionInfo::kStrictModeByteOffset),
             1 << SharedFunctionInfo::kStrictModeBitWithinByte);
-  __ j(not_equal, &receiver_ok, Label::kNear);
+  __ j(not_equal, &receiver_ok);  // A near jump is not sufficient here!

   // Do not transform the receiver to object for builtins.
   __ test_b(FieldOperand(scratch, SharedFunctionInfo::kNativeByteOffset),
             1 << SharedFunctionInfo::kNativeBitWithinByte);
-  __ j(not_equal, &receiver_ok, Label::kNear);
+  __ j(not_equal, &receiver_ok);

   // Normal function. Replace undefined or null with global receiver.
   __ cmp(receiver, factory()->null_value());


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

Reply via email to