unicorn/qemu
Lioncash c8be425439
translate-all: ensure host page mask is always extended with 1's
Anthony reported that >4GB guests on Xen with 32bit QEMU broke after
commit 4ed023c ("Round up RAMBlock sizes to host page sizes", 2015-11-05).

In that patch sizes are masked against qemu_host_page_size/mask which
are uintptr_t, and thus 32bit on a 32bit QEMU, even though the ram space
might be bigger than 4GB on Xen.

Since ram_addr_t is not available on user-mode emulation targets, ensure
that we get a sign extension when masking away the low bits of the address.
Remove the ~10 year old scary comment that the type of these variables
is probably wrong, with another equally scary comment. The new comment
however does not have "???" in it, which is arguably an improvement.

For completeness use the alignment macros in linux-user and bsd-user
instead of manually doing an &. linux-user and bsd-user are not affected
by the Xen issue, however.

Backports commit 0c2d70c448b7853a91cfa63659aa3cc6630fb9be from qemu
2018-02-17 19:17:19 -05:00
..
crypto Drop unused crypto source files 2018-02-17 15:23:57 -05:00
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu softfloat: expand out STATUS macro 2018-02-12 13:43:13 -05:00
hw osdep.h: Move some compiler-specific things to compiler.h 2018-02-17 15:23:28 -05:00
include oslib-win32: Change return type of function getpagesize 2018-02-17 19:10:37 -05:00
qapi qstring: Make conversion from QObject * accept null 2018-02-17 15:24:12 -05:00
qobject qstring: Make conversion from QObject * accept null 2018-02-17 15:24:12 -05:00
qom qom: Introduce ObjectPropertyIterator struct for iteration 2018-02-17 18:39:00 -05:00
scripts Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
target-arm target-arm: Don't mask out bits [47:40] in LPAE descriptors for v8 2018-02-17 18:55:32 -05:00
target-i386 target-i386: Add clflushopt/clwb/pcommit to TCG_7_0_EBX_FEATURES 2018-02-17 17:26:53 -05:00
target-m68k target-*: Advance pc after recognizing a breakpoint 2018-02-17 15:24:11 -05:00
target-mips target-mips: flush QEMU TLB when disabling 64-bit addressing 2018-02-17 19:06:43 -05:00
target-sparc target-sparc: fix 32-bit truncation in fpackfix 2018-02-17 19:08:40 -05:00
tcg tcg: Fix highwater check 2018-02-17 18:53:18 -05:00
util oslib-win32: Change return type of function getpagesize 2018-02-17 19:10:37 -05:00
aarch64.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
aarch64eb.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
armeb.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Drop ia64 host support 2018-02-04 18:33:02 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec-common.c cpu-exec: Migrate some generic fns to cpu-exec-common 2018-02-17 15:23:51 -05:00
cpu-exec.c cpu-exec: Fix compiler warning (-Werror=clobbered) 2018-02-17 15:24:15 -05:00
cpus.c cpu-exec: Purge all uses of ENV_GET_CPU() 2018-02-17 15:23:18 -05:00
cputlb.c cputlb: Change tlb_set_dirty() arg to cpu 2018-02-17 15:23:52 -05:00
exec.c exec: Stop using memory after free 2018-02-17 19:11:50 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c crypto: introduce new module for computing hash digests 2018-02-17 15:23:17 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
ioport.c ioport: do not use CPU_LOG_IOPORT 2018-02-17 15:24:15 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
Makefile crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.objs crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.target tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
memory.c pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
memory_mapping.c memory_mapping: Rework cpu related includes 2018-02-17 15:23:15 -05:00
mips.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
mips64.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
mips64el.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
mipsel.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
powerpc.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
qapi-schema.json import 2015-08-21 15:04:50 +08:00
qemu-log.c import 2015-08-21 15:04:50 +08:00
qemu-timer.c timer is redundant 2017-01-20 16:46:58 +08:00
rules.mak import 2015-08-21 15:04:50 +08:00
softmmu_template.h softmmu: remove now unused functions 2018-02-17 15:23:38 -05:00
sparc.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
sparc64.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c translate-all: ensure host page mask is always extended with 1's 2018-02-17 19:17:19 -05:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2018-02-13 09:04:51 -05:00
translate-common.c translate-all: Move tcg_handle_interrupt() to -common 2018-02-17 15:23:51 -05:00
unicorn_common.h This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c vl.c: Remove periods and exclamation points from error messages 2018-02-17 15:24:14 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h qemu_ram_block_by_name 2018-02-17 18:01:16 -05:00