s390x: use CONFIG_INT128 to detect __uint128_t

Target s390x uses ad-hoc macro magic to guess if the compiler
supports the GCC extension __uint128_t.  This patch uses the
the dedicated macro CONFIG_INT128 defined by configure instead.

This fixes compilation with the CIL source code analyzer, which
uses GCC as a preprocessor but does not support __uint128_t.

Signed-off-by: Gabriel Kerneis <gabriel@kerneis.info>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Gabriel Kerneis 2013-04-23 18:15:12 +01:00 committed by Stefan Hajnoczi
parent 7edd2cf1a2
commit d49b8e0b29

View File

@ -97,8 +97,7 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah, uint64_t al,
ret = al / b; ret = al / b;
} else { } else {
/* ??? Move i386 idivq helper to host-utils. */ /* ??? Move i386 idivq helper to host-utils. */
#if HOST_LONG_BITS == 64 && defined(__GNUC__) #ifdef CONFIG_INT128
/* assuming 64-bit hosts have __uint128_t */
__uint128_t a = ((__uint128_t)ah << 64) | al; __uint128_t a = ((__uint128_t)ah << 64) | al;
__uint128_t q = a / b; __uint128_t q = a / b;
env->retxl = a % b; env->retxl = a % b;