exec: Avoid direct references to Int128 parts

Reviewed-by: Emilio G. Cota <cota@braap.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
Richard Henderson 2016-06-29 15:48:03 -07:00
parent 84bca3927b
commit 258dfaaad0
2 changed files with 12 additions and 2 deletions

4
exec.c
View File

@ -352,9 +352,9 @@ static inline bool section_covers_addr(const MemoryRegionSection *section,
/* Memory topology clips a memory region to [0, 2^64); size.hi > 0 means /* Memory topology clips a memory region to [0, 2^64); size.hi > 0 means
* the section must cover the entire address space. * the section must cover the entire address space.
*/ */
return section->size.hi || return int128_gethi(section->size) ||
range_covers_byte(section->offset_within_address_space, range_covers_byte(section->offset_within_address_space,
section->size.lo, addr); int128_getlo(section->size), addr);
} }
static MemoryRegionSection *phys_page_find(PhysPageEntry lp, hwaddr addr, static MemoryRegionSection *phys_page_find(PhysPageEntry lp, hwaddr addr,

View File

@ -20,6 +20,16 @@ static inline uint64_t int128_get64(Int128 a)
return a.lo; return a.lo;
} }
static inline uint64_t int128_getlo(Int128 a)
{
return a.lo;
}
static inline int64_t int128_gethi(Int128 a)
{
return a.hi;
}
static inline Int128 int128_zero(void) static inline Int128 int128_zero(void)
{ {
return int128_make64(0); return int128_make64(0);