From fdd1397d703c67aa524c704f3352de213b0eefe5 Mon Sep 17 00:00:00 2001 From: Ningxin Hu Date: Tue, 27 May 2014 17:01:39 +0800 Subject: [PATCH 1/3] Move float32x4 and int32x4 constructors into SIMD module. It is according to https://github.com/johnmccutchan/ecmascript_simd/blob/b5dce3a7039a6d38cb7922f526cdb49a69f01dc5/src/ecmascript_simd.js --- lib/Target/JSBackend/JSBackend.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/Target/JSBackend/JSBackend.cpp b/lib/Target/JSBackend/JSBackend.cpp index bd673c28ee5..3c56a6c6736 100644 --- a/lib/Target/JSBackend/JSBackend.cpp +++ b/lib/Target/JSBackend/JSBackend.cpp @@ -1027,9 +1027,9 @@ std::string JSWriter::getConstant(const Constant* CV, AsmCast sign) { } else if (isa(CV)) { if (VectorType *VT = dyn_cast(CV->getType())) { if (VT->getElementType()->isIntegerTy()) { - return "int32x4.splat(0)"; + return "SIMD.int32x4.splat(0)"; } else { - return "float32x4.splat(0)"; + return "SIMD.float32x4.splat(0)"; } } else { // something like [0 x i8*] zeroinitializer, which clang can emit for landingpads @@ -1038,15 +1038,15 @@ std::string JSWriter::getConstant(const Constant* CV, AsmCast sign) { } else if (const ConstantDataVector *DV = dyn_cast(CV)) { const VectorType *VT = cast(CV->getType()); if (VT->getElementType()->isIntegerTy()) { - return "int32x4(" + getConstant(DV->getElementAsConstant(0)) + ',' + - getConstant(DV->getElementAsConstant(1)) + ',' + - getConstant(DV->getElementAsConstant(2)) + ',' + - getConstant(DV->getElementAsConstant(3)) + ')'; + return "SIMD.int32x4(" + getConstant(DV->getElementAsConstant(0)) + ',' + + getConstant(DV->getElementAsConstant(1)) + ',' + + getConstant(DV->getElementAsConstant(2)) + ',' + + getConstant(DV->getElementAsConstant(3)) + ')'; } else { - return "float32x4(" + getConstant(DV->getElementAsConstant(0)) + ',' + - getConstant(DV->getElementAsConstant(1)) + ',' + - getConstant(DV->getElementAsConstant(2)) + ',' + - getConstant(DV->getElementAsConstant(3)) + ')'; + return "SIMD.float32x4(" + getConstant(DV->getElementAsConstant(0)) + ',' + + getConstant(DV->getElementAsConstant(1)) + ',' + + getConstant(DV->getElementAsConstant(2)) + ',' + + getConstant(DV->getElementAsConstant(3)) + ')'; } } else if (const ConstantArray *CA = dyn_cast(CV)) { // handle things like [i8* bitcast (<{ i32, i32, i32 }>* @_ZTISt9bad_alloc to i8*)] which clang can emit for landingpads @@ -1155,9 +1155,9 @@ bool JSWriter::generateSIMDExpression(const User *I, raw_string_ostream& Code) { std::string PS = getValueAsStr(P); Code << getAssignIfNeeded(I); if (VT->getElementType()->isIntegerTy()) { - Code << "int32x4(HEAPU32[" << PS << ">>2],HEAPU32[" << PS << "+4>>2],HEAPU32[" << PS << "+8>>2],HEAPU32[" << PS << "+12>>2])"; + Code << "SIMD.int32x4(HEAPU32[" << PS << ">>2],HEAPU32[" << PS << "+4>>2],HEAPU32[" << PS << "+8>>2],HEAPU32[" << PS << "+12>>2])"; } else { - Code << "float32x4(HEAPF32[" << PS << ">>2],HEAPF32[" << PS << "+4>>2],HEAPF32[" << PS << "+8>>2],HEAPF32[" << PS << "+12>>2])"; + Code << "SIMD.float32x4(HEAPF32[" << PS << ">>2],HEAPF32[" << PS << "+4>>2],HEAPF32[" << PS << "+8>>2],HEAPF32[" << PS << "+12>>2])"; } break; } @@ -1179,9 +1179,9 @@ bool JSWriter::generateSIMDExpression(const User *I, raw_string_ostream& Code) { case Instruction::ShuffleVector: { Code << getAssignIfNeeded(I); if (VT->getElementType()->isIntegerTy()) { - Code << "int32x4("; + Code << "SIMD.int32x4("; } else { - Code << "float32x4("; + Code << "SIMD.float32x4("; } const ShuffleVectorInst *SVI = cast(I); std::string A = getValueAsStr(I->getOperand(0)); From e513e91af670eb217daabfaae98a90603253a166 Mon Sep 17 00:00:00 2001 From: Ningxin Hu Date: Mon, 2 Jun 2014 13:53:44 +0800 Subject: [PATCH 2/3] Handle the phi when generating SIMD codes. --- lib/Target/JSBackend/JSBackend.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/Target/JSBackend/JSBackend.cpp b/lib/Target/JSBackend/JSBackend.cpp index 7f904bcbdb2..0048795d9b5 100644 --- a/lib/Target/JSBackend/JSBackend.cpp +++ b/lib/Target/JSBackend/JSBackend.cpp @@ -1127,6 +1127,8 @@ bool JSWriter::generateSIMDExpression(const User *I, raw_string_ostream& Code) { switch (Operator::getOpcode(I)) { default: I->dump(); error("invalid vector instr"); break; + case Instruction::PHI: // handled separately - we push them back into the relooper branchings + break; case Instruction::FAdd: Code << getAssignIfNeeded(I) << "SIMD.float32x4.add(" << getValueAsStr(I->getOperand(0)) << "," << getValueAsStr(I->getOperand(1)) << ")"; break; case Instruction::FMul: Code << getAssignIfNeeded(I) << "SIMD.float32x4.mul(" << getValueAsStr(I->getOperand(0)) << "," << getValueAsStr(I->getOperand(1)) << ")"; break; case Instruction::FDiv: Code << getAssignIfNeeded(I) << "SIMD.float32x4.div(" << getValueAsStr(I->getOperand(0)) << "," << getValueAsStr(I->getOperand(1)) << ")"; break; From 5c89203dc7d84a2cdeb96347e2d87716743a6814 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Mon, 9 Jun 2014 12:51:31 -0700 Subject: [PATCH 3/3] rip out no longer needed hacks to redirect library functions ; 1.19.2 --- emscripten-version.txt | 2 +- lib/Target/JSBackend/CallHandlers.h | 378 ---------------------------- 2 files changed, 1 insertion(+), 379 deletions(-) diff --git a/emscripten-version.txt b/emscripten-version.txt index de59d0c645d..5f079d01d72 100644 --- a/emscripten-version.txt +++ b/emscripten-version.txt @@ -1,2 +1,2 @@ -1.19.1 +1.19.2 diff --git a/lib/Target/JSBackend/CallHandlers.h b/lib/Target/JSBackend/CallHandlers.h index a8b1a350e89..5f001429eec 100644 --- a/lib/Target/JSBackend/CallHandlers.h +++ b/lib/Target/JSBackend/CallHandlers.h @@ -484,105 +484,14 @@ DEF_CALL_HANDLER(emscripten_float32x4_toInt32x4, { return CH___default__(CI, "SIMD.float32x4.toInt32x4"); }) -#define DEF_REDIRECT_HANDLER(name, to) \ -DEF_CALL_HANDLER(name, { \ - /* FIXME: do not redirect if this is implemented and not just a declare! */ \ - Declares.insert(#to); \ - Redirects[#name] = #to; \ - return CH___default__(CI, "_" #to); \ -}) - #define DEF_BUILTIN_HANDLER(name, to) \ DEF_CALL_HANDLER(name, { \ return CH___default__(CI, #to); \ }) // Various simple redirects for our js libc, see library.js and LibraryManager.load -DEF_REDIRECT_HANDLER(__01readdir64_, readdir); -DEF_REDIRECT_HANDLER(__xpg_basename, basename); -DEF_REDIRECT_HANDLER(stat64, stat); -DEF_REDIRECT_HANDLER(fstat64, fstat); -DEF_REDIRECT_HANDLER(lstat64, lstat); -DEF_REDIRECT_HANDLER(__01fstat64_, fstat); -DEF_REDIRECT_HANDLER(__01stat64_, stat); -DEF_REDIRECT_HANDLER(__01lstat64_, lstat); -DEF_REDIRECT_HANDLER(__01statvfs64_, statvfs); -DEF_REDIRECT_HANDLER(__01fstatvfs64_, fstatvfs); -DEF_REDIRECT_HANDLER(pathconf, fpathconf); -DEF_REDIRECT_HANDLER(fdatasync, fsync); -DEF_REDIRECT_HANDLER(ualarm, alarm); -DEF_REDIRECT_HANDLER(execle, execl); -DEF_REDIRECT_HANDLER(execlp, execl); -DEF_REDIRECT_HANDLER(execv, execl); -DEF_REDIRECT_HANDLER(execve, execl); -DEF_REDIRECT_HANDLER(execvp, execl); -DEF_REDIRECT_HANDLER(vfork, fork); -DEF_REDIRECT_HANDLER(getegid, getgid); -DEF_REDIRECT_HANDLER(getuid, getgid); -DEF_REDIRECT_HANDLER(geteuid, getgid); -DEF_REDIRECT_HANDLER(getpgrp, getgid); -DEF_REDIRECT_HANDLER(getpid, getgid); -DEF_REDIRECT_HANDLER(getppid, getgid); -DEF_REDIRECT_HANDLER(getresgid, getresuid); -DEF_REDIRECT_HANDLER(getsid, getpgid); -DEF_REDIRECT_HANDLER(setegid, setgid); -DEF_REDIRECT_HANDLER(setuid, setgid); -DEF_REDIRECT_HANDLER(seteuid, setgid); -DEF_REDIRECT_HANDLER(setsid, setgid); -DEF_REDIRECT_HANDLER(setpgrp, setgid); -DEF_REDIRECT_HANDLER(setregid, setpgid); -DEF_REDIRECT_HANDLER(setreuid, setpgid); -DEF_REDIRECT_HANDLER(setresuid, setpgid); -DEF_REDIRECT_HANDLER(setresgid, setpgid); -DEF_REDIRECT_HANDLER(open64, open); -DEF_REDIRECT_HANDLER(lseek64, lseek); -DEF_REDIRECT_HANDLER(ftruncate64, ftruncate); -DEF_REDIRECT_HANDLER(__01open64_, open); -DEF_REDIRECT_HANDLER(__01lseek64_, lseek); -DEF_REDIRECT_HANDLER(__01truncate64_, truncate); -DEF_REDIRECT_HANDLER(__01ftruncate64_, ftruncate); -DEF_REDIRECT_HANDLER(getc, fgetc); -DEF_REDIRECT_HANDLER(getc_unlocked, fgetc); -DEF_REDIRECT_HANDLER(flockfile, ftrylockfile); -DEF_REDIRECT_HANDLER(funlockfile, ftrylockfile); -DEF_REDIRECT_HANDLER(putc, fputc); -DEF_REDIRECT_HANDLER(putc_unlocked, fputc); -DEF_REDIRECT_HANDLER(putchar_unlocked, putchar); -DEF_REDIRECT_HANDLER(fseeko, fseek); -DEF_REDIRECT_HANDLER(fseeko64, fseek); -DEF_REDIRECT_HANDLER(ftello, ftell); -DEF_REDIRECT_HANDLER(ftello64, ftell); -DEF_REDIRECT_HANDLER(fopen64, fopen); -DEF_REDIRECT_HANDLER(__01fopen64_, fopen); -DEF_REDIRECT_HANDLER(__01freopen64_, freopen); -DEF_REDIRECT_HANDLER(__01fseeko64_, fseek); -DEF_REDIRECT_HANDLER(__01ftello64_, ftell); -DEF_REDIRECT_HANDLER(__01tmpfile64_, tmpfile); -DEF_REDIRECT_HANDLER(__isoc99_fscanf, fscanf); -DEF_REDIRECT_HANDLER(_IO_getc, getc); -DEF_REDIRECT_HANDLER(_IO_putc, putc); -DEF_REDIRECT_HANDLER(_ZNSo3putEc, putchar); -DEF_REDIRECT_HANDLER(__01mmap64_, mmap); DEF_BUILTIN_HANDLER(abs, Math_abs); DEF_BUILTIN_HANDLER(labs, Math_abs); -DEF_REDIRECT_HANDLER(__cxa_atexit, atexit); -DEF_REDIRECT_HANDLER(atol, atoi); -DEF_REDIRECT_HANDLER(__environ, _environ); -DEF_REDIRECT_HANDLER(arc4random, rand); -DEF_REDIRECT_HANDLER(llvm_memcpy_i32, memcpy); -DEF_REDIRECT_HANDLER(llvm_memcpy_i64, memcpy); -DEF_REDIRECT_HANDLER(llvm_memcpy_p0i8_p0i8_i64, memcpy); -DEF_REDIRECT_HANDLER(llvm_memmove_i32, memmove); -DEF_REDIRECT_HANDLER(llvm_memmove_i64, memmove); -DEF_REDIRECT_HANDLER(llvm_memmove_p0i8_p0i8_i64, memmove); -DEF_REDIRECT_HANDLER(llvm_memset_i32, memset); -DEF_REDIRECT_HANDLER(llvm_memset_p0i8_i64, memset); -DEF_REDIRECT_HANDLER(strcoll, strcmp); -DEF_REDIRECT_HANDLER(index, strchr); -DEF_REDIRECT_HANDLER(rindex, strrchr); -DEF_REDIRECT_HANDLER(_toupper, toupper); -DEF_REDIRECT_HANDLER(_tolower, tolower); -DEF_REDIRECT_HANDLER(terminate, __cxa_call_unexpected); DEF_BUILTIN_HANDLER(cos, Math_cos); DEF_BUILTIN_HANDLER(cosf, Math_cos); DEF_BUILTIN_HANDLER(cosl, Math_cos); @@ -607,10 +516,6 @@ DEF_BUILTIN_HANDLER(atan2l, Math_atan2); DEF_BUILTIN_HANDLER(exp, Math_exp); DEF_BUILTIN_HANDLER(expf, Math_exp); DEF_BUILTIN_HANDLER(expl, Math_exp); -DEF_REDIRECT_HANDLER(erfcf, erfc); -DEF_REDIRECT_HANDLER(erfcl, erfc); -DEF_REDIRECT_HANDLER(erff, erf); -DEF_REDIRECT_HANDLER(erfl, erf); DEF_BUILTIN_HANDLER(log, Math_log); DEF_BUILTIN_HANDLER(logf, Math_log); DEF_BUILTIN_HANDLER(logl, Math_log); @@ -637,104 +542,6 @@ DEF_BUILTIN_HANDLER(llvm_log_f32, Math_log); DEF_BUILTIN_HANDLER(llvm_log_f64, Math_log); DEF_BUILTIN_HANDLER(llvm_exp_f32, Math_exp); DEF_BUILTIN_HANDLER(llvm_exp_f64, Math_exp); -DEF_REDIRECT_HANDLER(cbrtf, cbrt); -DEF_REDIRECT_HANDLER(cbrtl, cbrt); -DEF_REDIRECT_HANDLER(frexpf, frexp); -DEF_REDIRECT_HANDLER(__finite, finite); -DEF_REDIRECT_HANDLER(__isinf, isinf); -DEF_REDIRECT_HANDLER(__isnan, isnan); -DEF_REDIRECT_HANDLER(copysignf, copysign); -DEF_REDIRECT_HANDLER(copysignl, copysign); -DEF_REDIRECT_HANDLER(hypotf, hypot); -DEF_REDIRECT_HANDLER(hypotl, hypot); -DEF_REDIRECT_HANDLER(sinhf, sinh); -DEF_REDIRECT_HANDLER(sinhl, sinh); -DEF_REDIRECT_HANDLER(coshf, cosh); -DEF_REDIRECT_HANDLER(coshl, cosh); -DEF_REDIRECT_HANDLER(tanhf, tanh); -DEF_REDIRECT_HANDLER(tanhl, tanh); -DEF_REDIRECT_HANDLER(asinhf, asinh); -DEF_REDIRECT_HANDLER(asinhl, asinh); -DEF_REDIRECT_HANDLER(acoshf, acosh); -DEF_REDIRECT_HANDLER(acoshl, acosh); -DEF_REDIRECT_HANDLER(atanhf, atanh); -DEF_REDIRECT_HANDLER(atanhl, atanh); -DEF_REDIRECT_HANDLER(exp2f, exp2); -DEF_REDIRECT_HANDLER(exp2l, exp2); -DEF_REDIRECT_HANDLER(expm1f, expm1); -DEF_REDIRECT_HANDLER(expm1l, expm1); -DEF_REDIRECT_HANDLER(roundf, round); -DEF_REDIRECT_HANDLER(roundl, round); -DEF_REDIRECT_HANDLER(lround, round); -DEF_REDIRECT_HANDLER(lroundf, round); -DEF_REDIRECT_HANDLER(lroundl, round); -DEF_REDIRECT_HANDLER(llround, round); -DEF_REDIRECT_HANDLER(llroundf, round); -DEF_REDIRECT_HANDLER(llroundl, round); -DEF_REDIRECT_HANDLER(rintf, rint); -DEF_REDIRECT_HANDLER(rintl, rint); -DEF_REDIRECT_HANDLER(lrint, rint); -DEF_REDIRECT_HANDLER(lrintf, rint); -DEF_REDIRECT_HANDLER(lrintl, rint); -DEF_REDIRECT_HANDLER(llrintf, llrint); -DEF_REDIRECT_HANDLER(llrintl, llrint); -DEF_REDIRECT_HANDLER(nearbyint, rint); -DEF_REDIRECT_HANDLER(nearbyintf, rint); -DEF_REDIRECT_HANDLER(nearbyintl, rint); -DEF_REDIRECT_HANDLER(truncf, trunc); -DEF_REDIRECT_HANDLER(truncl, trunc); -DEF_REDIRECT_HANDLER(fdimf, fdim); -DEF_REDIRECT_HANDLER(fdiml, fdim); -DEF_REDIRECT_HANDLER(fmaxf, fmax); -DEF_REDIRECT_HANDLER(fmaxl, fmax); -DEF_REDIRECT_HANDLER(fminf, fmin); -DEF_REDIRECT_HANDLER(fminl, fmin); -DEF_REDIRECT_HANDLER(fmaf, fma); -DEF_REDIRECT_HANDLER(fmal, fma); -DEF_REDIRECT_HANDLER(fmodf, fmod); -DEF_REDIRECT_HANDLER(fmodl, fmod); -DEF_REDIRECT_HANDLER(remainder, fmod); -DEF_REDIRECT_HANDLER(remainderf, fmod); -DEF_REDIRECT_HANDLER(remainderl, fmod); -DEF_REDIRECT_HANDLER(log10f, log10); -DEF_REDIRECT_HANDLER(log10l, log10); -DEF_REDIRECT_HANDLER(log1pf, log1p); -DEF_REDIRECT_HANDLER(log1pl, log1p); -DEF_REDIRECT_HANDLER(log2f, log2); -DEF_REDIRECT_HANDLER(log2l, log2); -DEF_REDIRECT_HANDLER(nanf, nan); -DEF_REDIRECT_HANDLER(nanl, nan); -DEF_REDIRECT_HANDLER(sincosl, sincos); -DEF_REDIRECT_HANDLER(__fpclassifyd, __fpclassify); -DEF_REDIRECT_HANDLER(__fpclassifyf, __fpclassify); -DEF_REDIRECT_HANDLER(__fpclassifyl, __fpclassify); -DEF_REDIRECT_HANDLER(timelocal, mktime); -DEF_REDIRECT_HANDLER(gnu_dev_makedev, makedev); -DEF_REDIRECT_HANDLER(gnu_dev_major, major); -DEF_REDIRECT_HANDLER(gnu_dev_minor, minor); -DEF_REDIRECT_HANDLER(sigprocmask, sigaction); -DEF_REDIRECT_HANDLER(killpg, kill); -DEF_REDIRECT_HANDLER(waitid, wait); -DEF_REDIRECT_HANDLER(waitpid, wait); -DEF_REDIRECT_HANDLER(wait3, wait); -DEF_REDIRECT_HANDLER(wait4, wait); -DEF_REDIRECT_HANDLER(__errno, __errno_location); -DEF_REDIRECT_HANDLER(__01getrlimit64_, getrlimit); -DEF_REDIRECT_HANDLER(ntohl, htonl); -DEF_REDIRECT_HANDLER(ntohs, htons); -DEF_REDIRECT_HANDLER(SDL_LoadBMP, IMG_Load); -DEF_REDIRECT_HANDLER(SDL_LoadBMP_RW, IMG_Load_RW); -DEF_REDIRECT_HANDLER(Mix_CloseAudio, SDL_CloseAudio); -DEF_REDIRECT_HANDLER(Mix_PlayChannelTimed, Mix_PlayChannel); -DEF_REDIRECT_HANDLER(Mix_LoadMUS_RW, Mix_LoadWAV_RW); -DEF_REDIRECT_HANDLER(Mix_FreeMusic, Mix_FreeChunk); -DEF_REDIRECT_HANDLER(Mix_FadeInMusicPos, Mix_PlayMusic); -DEF_REDIRECT_HANDLER(Mix_FadeOutMusic, Mix_HaltMusic); -DEF_REDIRECT_HANDLER(TTF_RenderText_Blended, TTF_RenderText_Solid); -DEF_REDIRECT_HANDLER(TTF_RenderText_Shaded, TTF_RenderText_Solid); -DEF_REDIRECT_HANDLER(TTF_RenderUTF8_Solid, TTF_RenderText_Solid); -DEF_REDIRECT_HANDLER(SDL_getenv, getenv); -DEF_REDIRECT_HANDLER(SDL_RWFromMem, SDL_RWFromConstMem); // Setups @@ -803,91 +610,8 @@ void setupCallHandlers() { SETUP_CALL_HANDLER(emscripten_float32x4_bitsToInt32x4); SETUP_CALL_HANDLER(emscripten_float32x4_toInt32x4); - SETUP_CALL_HANDLER(__01readdir64_); - SETUP_CALL_HANDLER(__xpg_basename); - SETUP_CALL_HANDLER(stat64); - SETUP_CALL_HANDLER(fstat64); - SETUP_CALL_HANDLER(lstat64); - SETUP_CALL_HANDLER(__01fstat64_); - SETUP_CALL_HANDLER(__01stat64_); - SETUP_CALL_HANDLER(__01lstat64_); - SETUP_CALL_HANDLER(__01statvfs64_); - SETUP_CALL_HANDLER(__01fstatvfs64_); - SETUP_CALL_HANDLER(pathconf); - SETUP_CALL_HANDLER(fdatasync); - SETUP_CALL_HANDLER(ualarm); - SETUP_CALL_HANDLER(execle); - SETUP_CALL_HANDLER(execlp); - SETUP_CALL_HANDLER(execv); - SETUP_CALL_HANDLER(execve); - SETUP_CALL_HANDLER(execvp); - SETUP_CALL_HANDLER(vfork); - SETUP_CALL_HANDLER(getegid); - SETUP_CALL_HANDLER(getuid); - SETUP_CALL_HANDLER(geteuid); - SETUP_CALL_HANDLER(getpgrp); - SETUP_CALL_HANDLER(getpid); - SETUP_CALL_HANDLER(getppid); - SETUP_CALL_HANDLER(getresgid); - SETUP_CALL_HANDLER(getsid); - SETUP_CALL_HANDLER(setegid); - SETUP_CALL_HANDLER(setuid); - SETUP_CALL_HANDLER(seteuid); - SETUP_CALL_HANDLER(setsid); - SETUP_CALL_HANDLER(setpgrp); - SETUP_CALL_HANDLER(setregid); - SETUP_CALL_HANDLER(setreuid); - SETUP_CALL_HANDLER(setresuid); - SETUP_CALL_HANDLER(setresgid); - SETUP_CALL_HANDLER(open64); - SETUP_CALL_HANDLER(lseek64); - SETUP_CALL_HANDLER(ftruncate64); - SETUP_CALL_HANDLER(__01open64_); - SETUP_CALL_HANDLER(__01lseek64_); - SETUP_CALL_HANDLER(__01truncate64_); - SETUP_CALL_HANDLER(__01ftruncate64_); - SETUP_CALL_HANDLER(getc); - SETUP_CALL_HANDLER(getc_unlocked); - SETUP_CALL_HANDLER(flockfile); - SETUP_CALL_HANDLER(funlockfile); - SETUP_CALL_HANDLER(putc); - SETUP_CALL_HANDLER(putc_unlocked); - SETUP_CALL_HANDLER(putchar_unlocked); - SETUP_CALL_HANDLER(fseeko); - SETUP_CALL_HANDLER(fseeko64); - SETUP_CALL_HANDLER(ftello); - SETUP_CALL_HANDLER(ftello64); - SETUP_CALL_HANDLER(fopen64); - SETUP_CALL_HANDLER(__01fopen64_); - SETUP_CALL_HANDLER(__01freopen64_); - SETUP_CALL_HANDLER(__01fseeko64_); - SETUP_CALL_HANDLER(__01ftello64_); - SETUP_CALL_HANDLER(__01tmpfile64_); - SETUP_CALL_HANDLER(__isoc99_fscanf); - SETUP_CALL_HANDLER(_IO_getc); - SETUP_CALL_HANDLER(_IO_putc); - SETUP_CALL_HANDLER(_ZNSo3putEc); - SETUP_CALL_HANDLER(__01mmap64_); SETUP_CALL_HANDLER(abs); SETUP_CALL_HANDLER(labs); - SETUP_CALL_HANDLER(__cxa_atexit); - SETUP_CALL_HANDLER(atol); - SETUP_CALL_HANDLER(__environ); - SETUP_CALL_HANDLER(arc4random); - SETUP_CALL_HANDLER(llvm_memcpy_i32); - SETUP_CALL_HANDLER(llvm_memcpy_i64); - SETUP_CALL_HANDLER(llvm_memcpy_p0i8_p0i8_i64); - SETUP_CALL_HANDLER(llvm_memmove_i32); - SETUP_CALL_HANDLER(llvm_memmove_i64); - SETUP_CALL_HANDLER(llvm_memmove_p0i8_p0i8_i64); - SETUP_CALL_HANDLER(llvm_memset_i32); - SETUP_CALL_HANDLER(llvm_memset_p0i8_i64); - SETUP_CALL_HANDLER(strcoll); - SETUP_CALL_HANDLER(index); - SETUP_CALL_HANDLER(rindex); - SETUP_CALL_HANDLER(_toupper); - SETUP_CALL_HANDLER(_tolower); - SETUP_CALL_HANDLER(terminate); SETUP_CALL_HANDLER(cos); SETUP_CALL_HANDLER(cosf); SETUP_CALL_HANDLER(cosl); @@ -912,10 +636,6 @@ void setupCallHandlers() { SETUP_CALL_HANDLER(exp); SETUP_CALL_HANDLER(expf); SETUP_CALL_HANDLER(expl); - SETUP_CALL_HANDLER(erfcf); - SETUP_CALL_HANDLER(erfcl); - SETUP_CALL_HANDLER(erff); - SETUP_CALL_HANDLER(erfl); SETUP_CALL_HANDLER(log); SETUP_CALL_HANDLER(logf); SETUP_CALL_HANDLER(logl); @@ -942,104 +662,6 @@ void setupCallHandlers() { SETUP_CALL_HANDLER(llvm_log_f64); SETUP_CALL_HANDLER(llvm_exp_f32); SETUP_CALL_HANDLER(llvm_exp_f64); - SETUP_CALL_HANDLER(cbrtf); - SETUP_CALL_HANDLER(cbrtl); - SETUP_CALL_HANDLER(frexpf); - SETUP_CALL_HANDLER(__finite); - SETUP_CALL_HANDLER(__isinf); - SETUP_CALL_HANDLER(__isnan); - SETUP_CALL_HANDLER(copysignf); - SETUP_CALL_HANDLER(copysignl); - SETUP_CALL_HANDLER(hypotf); - SETUP_CALL_HANDLER(hypotl); - SETUP_CALL_HANDLER(sinhf); - SETUP_CALL_HANDLER(sinhl); - SETUP_CALL_HANDLER(coshf); - SETUP_CALL_HANDLER(coshl); - SETUP_CALL_HANDLER(tanhf); - SETUP_CALL_HANDLER(tanhl); - SETUP_CALL_HANDLER(asinhf); - SETUP_CALL_HANDLER(asinhl); - SETUP_CALL_HANDLER(acoshf); - SETUP_CALL_HANDLER(acoshl); - SETUP_CALL_HANDLER(atanhf); - SETUP_CALL_HANDLER(atanhl); - SETUP_CALL_HANDLER(exp2f); - SETUP_CALL_HANDLER(exp2l); - SETUP_CALL_HANDLER(expm1f); - SETUP_CALL_HANDLER(expm1l); - SETUP_CALL_HANDLER(roundf); - SETUP_CALL_HANDLER(roundl); - SETUP_CALL_HANDLER(lround); - SETUP_CALL_HANDLER(lroundf); - SETUP_CALL_HANDLER(lroundl); - SETUP_CALL_HANDLER(llround); - SETUP_CALL_HANDLER(llroundf); - SETUP_CALL_HANDLER(llroundl); - SETUP_CALL_HANDLER(rintf); - SETUP_CALL_HANDLER(rintl); - SETUP_CALL_HANDLER(lrint); - SETUP_CALL_HANDLER(lrintf); - SETUP_CALL_HANDLER(lrintl); - SETUP_CALL_HANDLER(llrintf); - SETUP_CALL_HANDLER(llrintl); - SETUP_CALL_HANDLER(nearbyint); - SETUP_CALL_HANDLER(nearbyintf); - SETUP_CALL_HANDLER(nearbyintl); - SETUP_CALL_HANDLER(truncf); - SETUP_CALL_HANDLER(truncl); - SETUP_CALL_HANDLER(fdimf); - SETUP_CALL_HANDLER(fdiml); - SETUP_CALL_HANDLER(fmaxf); - SETUP_CALL_HANDLER(fmaxl); - SETUP_CALL_HANDLER(fminf); - SETUP_CALL_HANDLER(fminl); - SETUP_CALL_HANDLER(fmaf); - SETUP_CALL_HANDLER(fmal); - SETUP_CALL_HANDLER(fmodf); - SETUP_CALL_HANDLER(fmodl); - SETUP_CALL_HANDLER(remainder); - SETUP_CALL_HANDLER(remainderf); - SETUP_CALL_HANDLER(remainderl); - SETUP_CALL_HANDLER(log10f); - SETUP_CALL_HANDLER(log10l); - SETUP_CALL_HANDLER(log1pf); - SETUP_CALL_HANDLER(log1pl); - SETUP_CALL_HANDLER(log2f); - SETUP_CALL_HANDLER(log2l); - SETUP_CALL_HANDLER(nanf); - SETUP_CALL_HANDLER(nanl); - SETUP_CALL_HANDLER(sincosl); - SETUP_CALL_HANDLER(__fpclassifyd); - SETUP_CALL_HANDLER(__fpclassifyf); - SETUP_CALL_HANDLER(__fpclassifyl); - SETUP_CALL_HANDLER(timelocal); - SETUP_CALL_HANDLER(gnu_dev_makedev); - SETUP_CALL_HANDLER(gnu_dev_major); - SETUP_CALL_HANDLER(gnu_dev_minor); - SETUP_CALL_HANDLER(sigprocmask); - SETUP_CALL_HANDLER(killpg); - SETUP_CALL_HANDLER(waitid); - SETUP_CALL_HANDLER(waitpid); - SETUP_CALL_HANDLER(wait3); - SETUP_CALL_HANDLER(wait4); - SETUP_CALL_HANDLER(__errno); - SETUP_CALL_HANDLER(__01getrlimit64_); - SETUP_CALL_HANDLER(ntohl); - SETUP_CALL_HANDLER(ntohs); - SETUP_CALL_HANDLER(SDL_LoadBMP); - SETUP_CALL_HANDLER(SDL_LoadBMP_RW); - SETUP_CALL_HANDLER(Mix_CloseAudio); - SETUP_CALL_HANDLER(Mix_PlayChannelTimed); - SETUP_CALL_HANDLER(Mix_LoadMUS_RW); - SETUP_CALL_HANDLER(Mix_FreeMusic); - SETUP_CALL_HANDLER(Mix_FadeInMusicPos); - SETUP_CALL_HANDLER(Mix_FadeOutMusic); - SETUP_CALL_HANDLER(TTF_RenderText_Blended); - SETUP_CALL_HANDLER(TTF_RenderText_Shaded); - SETUP_CALL_HANDLER(TTF_RenderUTF8_Solid); - SETUP_CALL_HANDLER(SDL_getenv); - SETUP_CALL_HANDLER(SDL_RWFromMem); } std::string handleCall(const Instruction *CI) {