aboutsummaryrefslogtreecommitdiff
path: root/src/parseTools.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-12-05 16:38:32 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-12-07 14:23:23 -0800
commit3b285840597c19062b03ff72230d43c6e8f947b6 (patch)
tree52c4f3c118acb85e720b3c2c5f58b9935fdb1d1f /src/parseTools.js
parentb6466081c6023181cdbfc3421c78966edfdf7c44 (diff)
start to legalize structural return values into one direct return plus the rest in globals
Diffstat (limited to 'src/parseTools.js')
-rw-r--r--src/parseTools.js11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/parseTools.js b/src/parseTools.js
index a7a45f09..c1428353 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -1539,8 +1539,15 @@ function handleOverflow(text, bits) {
}
}
-function makeLLVMStruct(values) { // TODO: Use this everywhere
- return '{ ' + values.map(function(value, i) { return 'f' + i + ': ' + value }).join(', ') + ' }'
+function makeLLVMStruct(values) {
+ return 'DEPRECATED' + (new Error().stack) + 'XXX';
+}
+
+function makeStructuralReturn(values) {
+ var i = 1;
+ return 'return (' + values.slice(1).map(function(value) {
+ return 'tempRet' + (i++) + ' = ' + value;
+ }).concat([values[0]]).join(',') + ')';
}
// From parseLLVMSegment