Emscripten を使用して C プロジェクトを Javascript にコンパイルしようとしています。以下に示すように、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 ビットの符号なし整数の乗算を模倣する方法についてのヒントはありますか? 乗算の直後の行で数値が 64 ビットの符号なし int にシフトされるため、コードは実際には結果を完全な符号なし 128 ビット形式で保持する必要はないようです。