MIPS: Simplify pending message object handling.

Port d4696c4841

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}
This commit is contained in:
balazs.kilvady 2015-03-12 06:54:31 -07:00 committed by Commit bot
parent 4dfff4abbd
commit 811caee0e0
2 changed files with 0 additions and 28 deletions

View File

@ -5329,26 +5329,12 @@ 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);
}
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());

View File

@ -5331,26 +5331,12 @@ 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);
}
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());