SV * newSVi128 (pTHX_ int128_t i128)
SV * newSVu128 (pTHX_ uint128_t u128)
int128_t SvI128 (pTHX_ SV *sv)
int128_t SvU128 (pTHX_ SV *sv)
int SvI128OK (pTHX_ SV*)
int SvU128OK (pTHX_ SV*)
module_c_beginning = <<FRAG
#if ((LONGSIZE >= 8) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)))
#if ((__GNUC__ == 4) && (__GNUC_MINOR__ < 6))
/* workaroung for gcc 4.4/4.5 - see http://gcc.gnu.org/gcc-4.4/changes.html */
typedef int int128_t __attribute__ ((__mode__ (TI)));
typedef unsigned int uint128_t __attribute__ ((__mode__ (TI)));
#else
typedef __int128 int128_t;
typedef unsigned __int128 uint128_t;
#endif
FRAG
module_c_end = <<FRAG
#else
int
perl_math_int128_load(int required_version) {
dTHX;
sv_setpv(ERRSV, "Unable to load Math::Int128 C API: your compiler does not support 128bit integers");
SvSETMAGIC(ERRSV);
return 0;
}
#endif
FRAG