diff options
author | alon@honor <none@none> | 2010-10-23 17:48:34 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-10-23 17:48:34 -0700 |
commit | e4b1cfc027f7e0ebb21a423d2bd763b17e9b88b3 (patch) | |
tree | 441560259535d75cb937c8babd000d978bc9bd91 /src | |
parent | 13bec340b6137fa1cb4549c1f92b4ef2bcc66580 (diff) |
handle llvm functions in ret
Diffstat (limited to 'src')
-rw-r--r-- | src/intertyper.js | 2 | ||||
-rw-r--r-- | src/jsifier.js | 2 | ||||
-rw-r--r-- | src/library.js | 12 | ||||
-rw-r--r-- | src/preamble.js | 6 |
4 files changed, 8 insertions, 14 deletions
diff --git a/src/intertyper.js b/src/intertyper.js index b20f9391..fa3b1f45 100644 --- a/src/intertyper.js +++ b/src/intertyper.js @@ -600,7 +600,7 @@ function intertyper(data) { __result__: true, intertype: 'return', type: item.tokens[1].text, - value: item.tokens[2] ? item.tokens[2].text : null, + value: item.tokens[2] ? parseLLVMSegment(item.tokens.slice(2)) : null, lineNum: item.lineNum, }]; }, diff --git a/src/jsifier.js b/src/jsifier.js index 66cf22e7..e73a5861 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -571,7 +571,7 @@ function JSify(data) { if (LABEL_DEBUG) ret += "INDENT = INDENT.substr(0, INDENT.length-2);\n"; ret += 'return'; if (item.value) { - ret += ' ' + toNiceIdent(item.value); + ret += ' ' + finalizeLLVMParameter(item.value); } return ret + ';'; }); diff --git a/src/library.js b/src/library.js index c064b928..b276eba8 100644 --- a/src/library.js +++ b/src/library.js @@ -40,12 +40,6 @@ var Library = { // string.h - strlen: function(p) { - var q = p; - while (IHEAP[q] != 0) q++; - return q - p; - }, - strspn: function(pstr, pset) { var str = String_copy(pstr, true); var set = String_copy(pset); @@ -78,12 +72,6 @@ var Library = { } }, - strlen: function(ptr) { - var i = 0; - while (IHEAP[ptr+i] != 0) i++; - return i; - }, - strcat: function(pdest, psrc) { var len = Pointer_stringify(pdest).length; // TODO: use strlen, but need dependencies system var i = 0; diff --git a/src/preamble.js b/src/preamble.js index 303ece97..2df8afdb 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -277,6 +277,12 @@ function llvm_memset_i32(ptr, value, num) { } _llvm_memset_p0i8_i32 = llvm_memset_i32; +function _strlen(ptr) { + var i = 0; + while (IHEAP[ptr+i] != 0) i++; + return i; +} + // Tools PRINTBUFFER = ''; |