__int128 поддерживается emscripten? Если нет, то как реализовать 128-битное умножение int?
Я пытаюсь скомпилировать проект C в Javascript, используя Emscripten, и у меня есть очень простой код, который использует расширение GCC, поддерживающее __int128
как видно ниже:
unsigned __int128 r = (unsigned __int128)a * (unsigned __int128)b;
*hi = r >> 64;
return (uint64_t)r;
Теперь эти переменные приводятся из uint64_t
известные мне указатели поддерживаются в Emscripten, но я получаю ошибку при компиляции, которая говорит
error: __int128 is not supported on this target
Итак, либо я не знаю, как включить поддержку, либо нет поддержки для этого типа. Если последнее, есть ли у кого-нибудь советы, как имитировать 128-битное умножение без знака без поддержки типа? Похоже, в коде нет необходимости сохранять результат в полной 128-битной форме без знака, так как строка сразу после умножения сдвигает число до 64-битного целого без знака.