summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJan de Mooij <jdemooij@mozilla.com>2020-07-29 10:36:00 +0000
committerMoonchild <moonchild@palemoon.org>2020-07-29 10:36:00 +0000
commit5d35cf59b7e7cae668d4a66bddf2c245f9b9e2f4 (patch)
treee0d38eab05b85f22c3868eb87af904b0ac292a3d /js
parent0761d5911bb578697d70830b069f4828bc6d6a32 (diff)
downloadaura-central-5d35cf59b7e7cae668d4a66bddf2c245f9b9e2f4.tar.gz
[js] Fix Sink to check for non-recoverable operands.
Diffstat (limited to 'js')
-rw-r--r--js/src/jit/Sink.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/js/src/jit/Sink.cpp b/js/src/jit/Sink.cpp
index b2c36fae5..2764fc1cb 100644
--- a/js/src/jit/Sink.cpp
+++ b/js/src/jit/Sink.cpp
@@ -71,8 +71,12 @@ Sink(MIRGenerator* mir, MIRGraph& graph)
for (MUseIterator i(ins->usesBegin()), e(ins->usesEnd()); i != e; i++) {
hasUses = true;
MNode* consumerNode = (*i)->consumer();
- if (consumerNode->isResumePoint())
+ if (consumerNode->isResumePoint()) {
+ if (!consumerNode->toResumePoint()->isRecoverableOperand(*i)) {
+ hasLiveUses = true;
+ }
continue;
+ }
MDefinition* consumer = consumerNode->toDefinition();
if (consumer->isRecoveredOnBailout())