unicorn/qemu
Julian Brown 58059c3a35
Fix Thumb-1 BE32 execution and disassembly.
Thumb-1 code has some issues in BE32 mode (as currently implemented). In
short, since bytes are swapped within words at load time for BE32
executables, this also swaps pairs of adjacent Thumb-1 instructions.

This patch un-swaps those pairs of instructions again, both for execution,
and for disassembly. (The previous version of the patch always read four
bytes in arm_read_memory_func and then extracted the proper two bytes,
in a probably misguided attempt to match the behaviour of actual hardware
as described by e.g. the ARM9TDMI TRM, section 3.3 "Endian effects for
instruction fetches". It's less complicated to just read the correct
two bytes though.)

Backports commit f7478a92dd9ee2276bfaa5b7317140d3f9d6a53b from qemu
2018-03-02 00:20:11 -05:00
..
crypto crypto: Clean up includes 2018-02-19 00:47:40 -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: Fix the default qNAN for target-ppc 2018-03-02 00:15:36 -05:00
hw i386: Remove AMD feature flag aliases from Opteron models 2018-03-01 23:49:04 -05:00
include ARRAY_SIZE: check that argument is an array 2018-03-02 00:09:51 -05:00
qapi qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
qobject qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
qom cputlb: drop flush_global flag from tlb_flush 2018-03-01 19:36:04 -05:00
scripts qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2018-02-27 08:05:33 -05:00
target Fix Thumb-1 BE32 execution and disassembly. 2018-03-02 00:20:11 -05:00
tcg tcg/i386: Handle ctpop opcode 2018-03-01 18:49:43 -05:00
util util/mmap-alloc: refactor a little bit for readability 2018-03-01 23:55:15 -05:00
aarch64.h ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
aarch64eb.h ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
accel.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
arm.h ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
armeb.h ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
atomic_template.h tcg: Add atomic128 helpers 2018-02-27 21:43:48 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Add CONFIG_ATOMIC64 2018-02-27 22:25:36 -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 tcg: Add EXCP_ATOMIC 2018-02-27 11:57:58 -05:00
cpu-exec.c target-i386: correctly propagate retaddr into SVM helpers 2018-03-01 09:31:16 -05:00
cpus.c tcg: Add EXCP_ATOMIC 2018-02-27 11:57:58 -05:00
cputlb.c cputlb: drop flush_global flag from tlb_flush 2018-03-01 19:36:04 -05:00
exec.c memory: don't sign-extend 32-bit writes 2018-03-02 00:00:22 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c qapi: Fix memleak in string visitors on int lists 2018-02-25 00:20:34 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h tcg/i386: Handle ctpop opcode 2018-03-01 18:49:43 -05:00
Makefile Makefile: Add a FORCE target 2018-02-24 17:03:51 -05:00
Makefile.objs tcg: Add atomic helpers 2018-02-27 15:57:47 -05:00
Makefile.target Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
memory.c cputlb: drop flush_global flag from tlb_flush 2018-03-01 19:36:04 -05:00
memory_ldst.inc.c exec: introduce memory_ldst.inc.c 2018-03-01 09:59:34 -05:00
memory_mapping.c include/qemu/osdep.h: Don't include qapi/error.h 2018-02-21 23:08:18 -05:00
mips.h tcg/i386: Handle ctpop opcode 2018-03-01 18:49:43 -05:00
mips64.h tcg/i386: Handle ctpop opcode 2018-03-01 18:49:43 -05:00
mips64el.h tcg/i386: Handle ctpop opcode 2018-03-01 18:49:43 -05:00
mipsel.h tcg/i386: Handle ctpop opcode 2018-03-01 18:49:43 -05:00
powerpc.h tcg/i386: Handle ctpop opcode 2018-03-01 18:49:43 -05:00
qapi-schema.json qapi: add missing colon-ending for section name 2018-03-01 09:07:10 -05:00
qemu-timer.c timer/cpus: fix some typos and update some comments 2018-02-25 23:21:57 -05:00
rules.mak rules.mak: Don't extract libs from .mo-libs in link command 2018-02-26 02:08:03 -05:00
softmmu_template.h cputlb: Remove includes from softmmu_template.h 2018-02-27 12:40:43 -05:00
sparc.h target-sparc: implement UA2005 GL register 2018-03-01 21:24:09 -05:00
sparc64.h target-sparc: implement UA2005 GL register 2018-03-01 21:24:09 -05:00
tcg-runtime.c tcg: Add opcode for ctpop 2018-03-01 18:26:41 -05:00
translate-all.c translate-all: Avoid -Werror=switch-bool 2018-03-01 13:01:50 -05:00
translate-all.h translate-all.c: Compute L1 page table properties at runtime 2018-02-26 11:46:58 -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 import 2015-08-21 15:04:50 +08:00
vl.c cpu: Support a target CPU having a variable page size 2018-02-26 12:29:08 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h tcg/i386: Handle ctpop opcode 2018-03-01 18:49:43 -05:00