Index: src/ppc/full-codegen-ppc.cc |
diff --git a/src/ppc/full-codegen-ppc.cc b/src/ppc/full-codegen-ppc.cc |
index 75415e14f5b9b6e06a02d6b95042fac646e0913b..f93e96b5d12a942471c0ae890d5e1a05de934e81 100644 |
--- a/src/ppc/full-codegen-ppc.cc |
+++ b/src/ppc/full-codegen-ppc.cc |
@@ -5362,6 +5362,8 @@ void FullCodeGenerator::EnterFinallyBlock() { |
__ mov(ip, Operand(pending_message_obj)); |
__ LoadP(r4, MemOperand(ip)); |
__ push(r4); |
+ |
+ ClearPendingMessage(); |
} |
@@ -5387,6 +5389,16 @@ void FullCodeGenerator::ExitFinallyBlock() { |
} |
+void FullCodeGenerator::ClearPendingMessage() { |
+ DCHECK(!result_register().is(r4)); |
+ ExternalReference pending_message_obj = |
+ ExternalReference::address_of_pending_message_obj(isolate()); |
+ __ LoadRoot(r4, Heap::kTheHoleValueRootIndex); |
+ __ mov(ip, Operand(pending_message_obj)); |
+ __ StoreP(r4, MemOperand(ip)); |
+} |
+ |
+ |
#undef __ |