diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-12-06 12:17:58 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-12-07 14:23:24 -0800 |
commit | 813866b1951389b2c80c2c4e4bf2f5546c3be1dc (patch) | |
tree | 16b5a068211cb8d0ed19c4df390423aa5290d12b /src/parseTools.js | |
parent | d1d33362df70a31e7248e2fda0eb4bad0fe58390 (diff) |
fix non-legalized structural returns and invokes
Diffstat (limited to 'src/parseTools.js')
-rw-r--r-- | src/parseTools.js | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/parseTools.js b/src/parseTools.js index 19913949..337225e5 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -1572,10 +1572,17 @@ function makeLLVMStruct(values) { } function makeStructuralReturn(values) { - var i = 0; - return 'return (' + values.slice(1).map(function(value) { - return 'tempRet' + (i++) + ' = ' + value; - }).concat([values[0]]).join(',') + ')'; + if (USE_TYPED_ARRAYS == 2) { + var i = 0; + return 'return (' + values.slice(1).map(function(value) { + return 'tempRet' + (i++) + ' = ' + value; + }).concat([values[0]]).join(',') + ')'; + } else { + var i = 0; + return 'return { ' + values.map(function(value) { + return 'f' + (i++) + ': ' + value; + }).join(', ') + ' }'; + } } // From parseLLVMSegment |