Subject: | Fails on some targets (no tetra-integer type) |
Found on Intel Atom with both gcc 4.5 and 4.7. The Atom doesn't have a 128-bit type, so gcc will fail both the __attribute__ ((__mode__(TI)) and uint128_t code.
Unfortunately we're left without a really good solution. I found one set of code that did:
#if (defined(__LP64__) || defined(__x86_64__) || defined(__powerpc64__) || defined(_M_X64) || defined(_M_IX86))
which at least tries to limit it to some set of targets that has the emulation implemented.
I have tested at least some of this on Power7, x86_64, and Cygwin/Atom, but not extensively and not on lots of other platforms (e.g. SPARC, MIPS, HPPA, ia64).