aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-04-13 09:27:31 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-04-13 09:27:31 -0700
commit447c639b3bb7bbf4a37c53243d2948fadfba4ce6 (patch)
treec27403d389ec54bd28a1486d30282d7cbf646e42 /src
parent3868ec7853d6fcdb7c4183b18137f10739ed8b39 (diff)
fix legalization of nonexistent call return values
Diffstat (limited to 'src')
-rw-r--r--src/analyzer.js5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/analyzer.js b/src/analyzer.js
index 3921cab8..df5a435e 100644
--- a/src/analyzer.js
+++ b/src/analyzer.js
@@ -324,12 +324,13 @@ function analyzer(data, sidePass) {
}
// call, return: Return the first 32 bits, the rest are in temp
case 'call': {
- bits = getBits(value.type);
- var elements = getLegalVars(item.assignTo, bits);
var toAdd = [value];
// legalize parameters
legalizeFunctionParameters(value.params);
+ // legalize return value, if any
if (value.assignTo && isIllegalType(item.type)) {
+ bits = getBits(value.type);
+ var elements = getLegalVars(item.assignTo, bits);
// legalize return value
value.assignTo = elements[0].ident;
for (var j = 1; j < elements.length; j++) {