diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-02-28 17:31:37 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-02-28 17:59:04 -0800 |
commit | 529c95fea72ca0161b71f6c7aaa3f9632904b0a7 (patch) | |
tree | bb8a461787ab4a65bfe4393d2e4a8e8d42cfd0b3 /src/analyzer.js | |
parent | 40f2ae9e943a66cd8a3fa2ef1375fb9d81fcd3bd (diff) |
handle invoke that returns i64
Diffstat (limited to 'src/analyzer.js')
-rw-r--r-- | src/analyzer.js | 7 |
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); |