aboutsummaryrefslogtreecommitdiff
path: root/src/jsifier.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-01-31 17:15:45 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-01-31 17:15:45 -0800
commitac0972ebf6cb8ff17f1bbbf01526d29fd2d2f420 (patch)
tree499dd06881cddf43520b40cc62b51276ca411c60 /src/jsifier.js
parent64c779641a2a9587613cc65ad7251890f18e25c3 (diff)
parent375eb145c8a6c1627a8b93f81d40fd1aa7fc899b (diff)
Merge branch 'incoming'
Diffstat (limited to 'src/jsifier.js')
-rw-r--r--src/jsifier.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/jsifier.js b/src/jsifier.js
index 84a9b5f7..761a5fec 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -1394,6 +1394,19 @@ function JSify(data, functionsOnly, givenFunctions) {
return inline.apply(null, args); // Warning: inlining does not prevent recalculation of the arguments. They should be simple identifiers
}
+ if (ASM_JS) {
+ // remove unneeded arguments, which the asm sig can show us. this lets us alias memset with llvm.memset, we just
+ // drop the final 2 args so things validate properly in asm
+ var libsig = LibraryManager.library[shortident + '__sig'];
+ if (libsig) {
+ assert(!hasVarArgs);
+ while (libsig.length - 1 < args.length) {
+ args.pop();
+ argsTypes.pop();
+ }
+ }
+ }
+
var returnType;
if (byPointer || ASM_JS) {
returnType = getReturnType(type);