MIPS: Simplify pending message object handling.
authorbalazs.kilvady <balazs.kilvady@imgtec.com>
Thu, 12 Mar 2015 13:54:31 +0000 (06:54 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 12 Mar 2015 13:54:45 +0000 (13:54 +0000)
Port d4696c484142c601cbd691ae80164043785a3af7

Original commit message:
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.

BUG=

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

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

src/mips/full-codegen-mips.cc
src/mips64/full-codegen-mips64.cc

index 41fd718..4b6091c 100644 (file)
@@ -5329,13 +5329,6 @@ void FullCodeGenerator::EnterFinallyBlock() {
   __ li(at, Operand(pending_message_obj));
   __ lw(a1, MemOperand(at));
   __ push(a1);
-
-  ExternalReference has_pending_message =
-      ExternalReference::address_of_has_pending_message(isolate());
-  __ li(at, Operand(has_pending_message));
-  __ lw(a1, MemOperand(at));
-  __ SmiTag(a1);
-  __ push(a1);
 }
 
 
@@ -5343,13 +5336,6 @@ void FullCodeGenerator::ExitFinallyBlock() {
   DCHECK(!result_register().is(a1));
   // Restore pending message from stack.
   __ pop(a1);
-  __ SmiUntag(a1);
-  ExternalReference has_pending_message =
-      ExternalReference::address_of_has_pending_message(isolate());
-  __ li(at, Operand(has_pending_message));
-  __ sw(a1, MemOperand(at));
-
-  __ pop(a1);
   ExternalReference pending_message_obj =
       ExternalReference::address_of_pending_message_obj(isolate());
   __ li(at, Operand(pending_message_obj));
index f128a40..cad5020 100644 (file)
@@ -5331,13 +5331,6 @@ void FullCodeGenerator::EnterFinallyBlock() {
   __ li(at, Operand(pending_message_obj));
   __ ld(a1, MemOperand(at));
   __ push(a1);
-
-  ExternalReference has_pending_message =
-      ExternalReference::address_of_has_pending_message(isolate());
-  __ li(at, Operand(has_pending_message));
-  __ ld(a1, MemOperand(at));
-  __ SmiTag(a1);
-  __ push(a1);
 }
 
 
@@ -5345,13 +5338,6 @@ void FullCodeGenerator::ExitFinallyBlock() {
   DCHECK(!result_register().is(a1));
   // Restore pending message from stack.
   __ pop(a1);
-  __ SmiUntag(a1);
-  ExternalReference has_pending_message =
-      ExternalReference::address_of_has_pending_message(isolate());
-  __ li(at, Operand(has_pending_message));
-  __ sd(a1, MemOperand(at));
-
-  __ pop(a1);
   ExternalReference pending_message_obj =
       ExternalReference::address_of_pending_message_obj(isolate());
   __ li(at, Operand(pending_message_obj));