aboutsummaryrefslogtreecommitdiff
path: root/src/analyzer.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/analyzer.js')
-rw-r--r--src/analyzer.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/analyzer.js b/src/analyzer.js
index a1c009f2..9aa84650 100644
--- a/src/analyzer.js
+++ b/src/analyzer.js
@@ -290,7 +290,7 @@ function analyzer(data, sidePass) {
continue;
}
// call, return: Return value is in an unlegalized array literal. Not fully optimal.
- case 'call': case 'invoke': {
+ case 'call': {
bits = getBits(value.type);
var elements = getLegalVars(item.assignTo, bits);
var toAdd = [value];
@@ -318,6 +318,11 @@ function analyzer(data, sidePass) {
i++;
continue;
}
+ case 'invoke': {
+ // We can't add lines after this, since invoke already modifies control flow. So we handle this in invoke
+ i++;
+ continue;
+ }
case 'value': {
bits = getBits(value.type);
var elements = getLegalVars(item.assignTo, bits);