PPC: 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.

R=titzer@chromium.org

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

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

R=danno@chromium.org, svenpanne@chromium.org, titzer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27173}
This commit is contained in:
michael_dawson 2015-03-13 00:34:47 -07:00 committed by Commit bot
parent 83f157bc18
commit ae78a9702a

View File

@ -5330,26 +5330,12 @@ void FullCodeGenerator::EnterFinallyBlock() {
__ mov(ip, Operand(pending_message_obj));
__ LoadP(r4, MemOperand(ip));
__ push(r4);
ExternalReference has_pending_message =
ExternalReference::address_of_has_pending_message(isolate());
__ mov(ip, Operand(has_pending_message));
__ lbz(r4, MemOperand(ip));
__ SmiTag(r4);
__ push(r4);
}
void FullCodeGenerator::ExitFinallyBlock() {
DCHECK(!result_register().is(r4));
// Restore pending message from stack.
__ pop(r4);
__ SmiUntag(r4);
ExternalReference has_pending_message =
ExternalReference::address_of_has_pending_message(isolate());
__ mov(ip, Operand(has_pending_message));
__ stb(r4, MemOperand(ip));
__ pop(r4);
ExternalReference pending_message_obj =
ExternalReference::address_of_pending_message_obj(isolate());