diff options
Diffstat (limited to 'src/jsifier.js')
-rw-r--r-- | src/jsifier.js | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index ce3a8eb4..6dc7058c 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -523,6 +523,7 @@ function JSify(data, functionsOnly, givenFunctions) { case 'extractvalue': line.JS = extractvalueHandler(line); break; case 'insertvalue': line.JS = insertvalueHandler(line); break; case 'insertelement': line.JS = insertelementHandler(line); break; + case 'extracttelement': line.JS = extractelementHandler(line); break; case 'shufflevector': line.JS = shufflevectorHandler(line); break; case 'indirectbr': line.JS = indirectbrHandler(line); break; case 'alloca': line.JS = allocaHandler(line); break; @@ -1366,6 +1367,13 @@ function JSify(data, functionsOnly, givenFunctions) { //return ident + '.with' + SIMDLane[finalizeLLVMParameter(item.index)] + '(' + finalizeLLVMParameter(item.value) + ')'; return 'SIMD.with' + SIMDLane[finalizeLLVMParameter(item.index)] + '(' + ident + ',' + finalizeLLVMParameter(item.value) + ')'; } + function extractelementHandler(item) { + var base = getVectorBaseType(item.type); + var ident = ensureVector(item.ident, base); + var index = finalizeLLVMParameter(item.value); + assert(isNumber(index)); + return ident + '.' + simdLane[index]; + } function shufflevectorHandler(item) { var base = getVectorBaseType(item.type); var first = ensureVector(item.ident, base); |