unicorn/qemu
Paolo Bonzini 55c2a21fe8
target-i386: Fix addr16 prefix
While ADDSEG will only be false in 16-bit mode for LEA, it can be
false even in other cases when 16-bit addresses are obtained via
the 67h prefix in 32-bit mode. In this case, gen_lea_v_seg forgets
to add a nonzero FS or GS base if CS/DS/ES/SS are all zero. This
case is pretty rare but happens when booting Windows 95/98, and
this patch fixes it.

The bug is visible since commit d6a291498, but it was introduced
together with gen_lea_v_seg and it probably could be reproduced
with a "addr16 gs movsb" instruction as early as in commit
ca2f29f555805d07fb0b9ebfbbfc4e3656530977.

Backports commit e2e02a820741ec4d96b8f313b06a2a7ed5e94fbd from qemu
2018-02-21 21:21:26 -05:00
..
crypto crypto: Clean up includes 2018-02-19 00:47:40 -05:00
default-configs
docs
fpu softfloat: Remove lingering fast casts 2018-02-20 19:04:22 -05:00
hw qom: Allow properties to be registered against classes 2018-02-21 21:00:56 -05:00
include qom: Change object property iterator API contract 2018-02-21 21:03:58 -05:00
qapi qapi: Don't box branches of flat unions 2018-02-20 16:44:55 -05:00
qobject qapi: Convert QType into QAPI built-in enum type 2018-02-19 21:47:05 -05:00
qom qom: Change object property iterator API contract 2018-02-21 21:03:58 -05:00
scripts qapi: Don't box branches of flat unions 2018-02-20 16:44:55 -05:00
target-arm target-arm: Only trap SRS from S-EL1 if specified mode is MON 2018-02-21 02:49:28 -05:00
target-i386 target-i386: Fix addr16 prefix 2018-02-21 21:21:26 -05:00
target-m68k tcg: Make store_dummy a TCGv 2018-02-21 00:24:40 -05:00
target-mips tcg: Make cpu_gpr a TCGv array 2018-02-21 01:02:46 -05:00
target-sparc tcg: Make cpu_regs_sparc a TCGv array 2018-02-21 01:50:28 -05:00
tcg tcg: Make cpu_regs_sparc a TCGv array 2018-02-21 01:50:28 -05:00
util error: New error_fatal 2018-02-20 08:22:27 -05:00
aarch64.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
aarch64eb.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
accel.c all: Clean up includes 2018-02-19 01:34:28 -05:00
arm.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
armeb.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
CODING_STYLE
configure
COPYING
COPYING.LIB
cpu-exec-common.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
cpu-exec.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
cpus.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
cputlb.c memory: Drop MemoryRegion.ram_addr 2018-02-21 08:53:08 -05:00
exec.c exec: Introduce AddressSpaceDispatch.mru_section 2018-02-21 21:10:16 -05:00
gen_all_header.sh
glib_compat.c glib_compat: backport hashtable iterator interfaces 2018-02-21 13:18:44 -05:00
HACKING
header_gen.py memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
ioport.c all: Clean up includes 2018-02-19 01:34:28 -05:00
LICENSE
m68k.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
Makefile qapi: Turn generators' mandatory option -i into an argument 2018-02-19 15:22:27 -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 qom: Allow properties to be registered against classes 2018-02-21 21:00:56 -05:00
memory_mapping.c all: Clean up includes 2018-02-19 01:34:28 -05:00
mips.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
mips64.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
mips64el.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
mipsel.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
powerpc.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
qapi-schema.json qapi: Lazy creation of array types 2018-02-19 18:55:35 -05:00
qemu-log.c all: Clean up includes 2018-02-19 01:34:28 -05:00
qemu-timer.c all: Clean up includes 2018-02-19 01:34:28 -05:00
rules.mak
softmmu_template.h exec.c: Pass MemTxAttrs to iotlb_to_region so it uses the right AS 2018-02-17 23:19:00 -05:00
sparc.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
sparc64.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00
tcg-runtime.c all: Clean up includes 2018-02-19 01:34:28 -05:00
translate-all.c all: Clean up includes 2018-02-19 01:34:28 -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 exec: Clean up includes 2018-02-19 00:49:55 -05:00
unicorn_common.h qom/cpu: Add MemoryRegion property 2018-02-18 21:54:50 -05:00
VERSION
vl.c vl.c: Remove periods and exclamation points from error messages 2018-02-17 15:24:14 -05:00
vl.h
x86_64.h memory: Implement memory_region_get_ram_addr with mr->ram_block 2018-02-21 08:53:08 -05:00