diff options
Diffstat (limited to 'src/modules.js')
-rw-r--r-- | src/modules.js | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/modules.js b/src/modules.js index e80115c4..e2d3433f 100644 --- a/src/modules.js +++ b/src/modules.js @@ -282,7 +282,12 @@ var Functions = { sig += Functions.getSignatureLetter(type); } else { var chunks = getNumIntChunks(type); - for (var j = 0; j < chunks; j++) sig += 'i'; + if (chunks > 0) { + for (var j = 0; j < chunks; j++) sig += 'i'; + } else if (type !== '...') { + // some special type like a SIMD vector (anything but varargs, which we handle below) + sig += Functions.getSignatureLetter(type); + } } } if (hasVarArgs) sig += 'i'; @@ -424,6 +429,26 @@ var LibraryManager = { eval(processMacros(preprocess(read(libraries[i])))); } + /* + // export code for CallHandlers.h + printErr('============================'); + for (var x in this.library) { + var y = this.library[x]; + if (typeof y === 'string' && x.indexOf('__sig') < 0 && x.indexOf('__postset') < 0 && y.indexOf(' ') < 0) { + printErr('DEF_REDIRECT_HANDLER(' + x + ', ' + y + ');'); + } + } + printErr('============================'); + for (var x in this.library) { + var y = this.library[x]; + if (typeof y === 'string' && x.indexOf('__sig') < 0 && x.indexOf('__postset') < 0 && y.indexOf(' ') < 0) { + printErr(' SETUP_CALL_HANDLER(' + x + ');'); + } + } + printErr('============================'); + // end export code for CallHandlers.h + */ + this.loaded = true; }, |