diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-12-06 11:45:02 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-12-07 14:23:24 -0800 |
commit | 32635a86097de499d7ee84bd9fb6967bd96e6169 (patch) | |
tree | 4409b2efd282c5eb106c798cfa13c537bf0bffaf /src/jsifier.js | |
parent | 06fa6cfb4833dfe8044ef373f4bd47c98a8ee103 (diff) |
properly legalize invoke output
Diffstat (limited to 'src/jsifier.js')
-rw-r--r-- | src/jsifier.js | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index a8161862..01bb989d 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -1099,8 +1099,10 @@ function JSify(data, functionsOnly, givenFunctions) { if (item.assignTo) { ret = 'var ' + item.assignTo + ' = ' + ret; if (isIllegalType(item.type)) { - assert(item.type == 'i64', 'Can only handle i64 invoke among illegal invokes'); - ret += 'var ' + item.assignTo + '$0 = ' + item.assignTo + '[0], ' + item.assignTo + '$1 = ' + item.assignTo + '[1];'; + var bits = getBits(item.type); + for (var i = 0; i < bits/32; i++) { + ret += 'var ' + item.assignTo + '$' + i + ' = ' + (i == 0 ? item.assignTo : 'tempRet' + (i-1)) + ';' + } } item.assignTo = null; } |