Commit 2bd426cd authored by balazs.kilvady's avatar balazs.kilvady Committed by Commit bot

MIPS: Simplify pending message script handling.

Port f71e2626

Original commit message:
This removes the separate tracking of the pending message script,
because that script is already stored in the message object and
duplicating it in the ThreadLocalTop makes it more brittle.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27140}
parent 94d49b11
...@@ -5336,24 +5336,12 @@ void FullCodeGenerator::EnterFinallyBlock() { ...@@ -5336,24 +5336,12 @@ void FullCodeGenerator::EnterFinallyBlock() {
__ lw(a1, MemOperand(at)); __ lw(a1, MemOperand(at));
__ SmiTag(a1); __ SmiTag(a1);
__ push(a1); __ push(a1);
ExternalReference pending_message_script =
ExternalReference::address_of_pending_message_script(isolate());
__ li(at, Operand(pending_message_script));
__ lw(a1, MemOperand(at));
__ push(a1);
} }
void FullCodeGenerator::ExitFinallyBlock() { void FullCodeGenerator::ExitFinallyBlock() {
DCHECK(!result_register().is(a1)); DCHECK(!result_register().is(a1));
// Restore pending message from stack. // Restore pending message from stack.
__ pop(a1);
ExternalReference pending_message_script =
ExternalReference::address_of_pending_message_script(isolate());
__ li(at, Operand(pending_message_script));
__ sw(a1, MemOperand(at));
__ pop(a1); __ pop(a1);
__ SmiUntag(a1); __ SmiUntag(a1);
ExternalReference has_pending_message = ExternalReference has_pending_message =
......
...@@ -5338,24 +5338,12 @@ void FullCodeGenerator::EnterFinallyBlock() { ...@@ -5338,24 +5338,12 @@ void FullCodeGenerator::EnterFinallyBlock() {
__ ld(a1, MemOperand(at)); __ ld(a1, MemOperand(at));
__ SmiTag(a1); __ SmiTag(a1);
__ push(a1); __ push(a1);
ExternalReference pending_message_script =
ExternalReference::address_of_pending_message_script(isolate());
__ li(at, Operand(pending_message_script));
__ ld(a1, MemOperand(at));
__ push(a1);
} }
void FullCodeGenerator::ExitFinallyBlock() { void FullCodeGenerator::ExitFinallyBlock() {
DCHECK(!result_register().is(a1)); DCHECK(!result_register().is(a1));
// Restore pending message from stack. // Restore pending message from stack.
__ pop(a1);
ExternalReference pending_message_script =
ExternalReference::address_of_pending_message_script(isolate());
__ li(at, Operand(pending_message_script));
__ sd(a1, MemOperand(at));
__ pop(a1); __ pop(a1);
__ SmiUntag(a1); __ SmiUntag(a1);
ExternalReference has_pending_message = ExternalReference has_pending_message =
......
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