Commit 811caee0 authored by balazs.kilvady's avatar balazs.kilvady Committed by Commit bot

MIPS: Simplify pending message object handling.

Port d4696c48

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}
parent 4dfff4ab
......@@ -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());
......
......@@ -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());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment