From: Peter Maydell Date: Thu, 19 Jun 2014 17:06:24 +0000 (+0100) Subject: target-arm: Add ULL suffix to calculation of page size X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=5661ae6be23d8831a19c82f8eafb2aaecdf2da6a;p=people%2Fliuw%2Flibxenctrl-split%2Fqemu-xen.git target-arm: Add ULL suffix to calculation of page size The maximum block size for AArch64 address translation is 2GB. This means that we need a ULL suffix on our shift to avoid shifting into the sign bit of a signed 32 bit integer. Signed-off-by: Peter Maydell Reviewed-by: Peter Crosthwaite Message-id: 1402171881-14343-2-git-send-email-peter.maydell@linaro.org --- diff --git a/target-arm/helper.c b/target-arm/helper.c index 12285cdb6..ed4d2bb41 100644 --- a/target-arm/helper.c +++ b/target-arm/helper.c @@ -3952,7 +3952,7 @@ static int get_phys_addr_lpae(CPUARMState *env, target_ulong address, * These are basically the same thing, although the number * of bits we pull in from the vaddr varies. */ - page_size = (1 << ((granule_sz * (4 - level)) + 3)); + page_size = (1ULL << ((granule_sz * (4 - level)) + 3)); descaddr |= (address & (page_size - 1)); /* Extract attributes from the descriptor and merge with table attrs */ attrs = extract64(descriptor, 2, 10)