我正在尝试使用Emscripten将C项目编译为Javascript,我有非常基本的代码,它使用支持__int128
的GCC扩展,如下所示:
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位无符号整数。