xemu/disas
Peter Maydell 8d298bee09 disas/arm-a64.cc: Tell libvixl correct code addresses
disassembling relative branches in code which doesn't reside at
what the guest CPU would think its execution address is. Use
the new MapCodeAddress() API to tell libvixl where the code is
from the guest CPU's point of view so it can get the target
addresses right.

Previous disassembly:

0x0000000040000000:  580000c0      ldr x0, pc+24 (addr 0x7f6cb7020434)
0x0000000040000004:  aa1f03e1      mov x1, xzr
0x0000000040000008:  aa1f03e2      mov x2, xzr
0x000000004000000c:  aa1f03e3      mov x3, xzr
0x0000000040000010:  58000084      ldr x4, pc+16 (addr 0x7f6cb702042c)
0x0000000040000014:  d61f0080      br x4

Fixed disassembly:
0x0000000040000000:  580000c0      ldr x0, pc+24 (addr 0x40000018)
0x0000000040000004:  aa1f03e1      mov x1, xzr
0x0000000040000008:  aa1f03e2      mov x2, xzr
0x000000004000000c:  aa1f03e3      mov x3, xzr
0x0000000040000010:  58000084      ldr x4, pc+16 (addr 0x40000020)
0x0000000040000014:  d61f0080      br x4

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1422274779-13359-3-git-send-email-peter.maydell@linaro.org
2015-02-05 13:37:25 +00:00
..
libvixl disas/libvixl: Update to upstream VIXL 1.7 2015-02-05 13:37:25 +00:00
alpha.c build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00
arm-a64.cc disas/arm-a64.cc: Tell libvixl correct code addresses 2015-02-05 13:37:25 +00:00
arm.c tcg-arm: Implement division instructions 2013-04-27 02:16:44 +02:00
cris.c build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00
hppa.c build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00
i386.c disas/i386: Disassemble ANDN/SHLX/SHRX/SHAX 2014-02-17 10:12:29 -06:00
ia64.c build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00
lm32.c lm32-dis: fix NULL pointer dereference 2013-03-18 19:40:34 +01:00
m68k.c Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp() 2013-02-23 16:11:19 +00:00
Makefile.objs build: convert some obj-specific CFLAGS to use new foo.o-cflags syntax 2014-05-08 15:27:49 +02:00
microblaze.c build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00
mips.c disas/mips: disable unused mips16_to_32_reg_map[] 2014-12-16 12:45:20 +00:00
moxie.c Add moxie disassembler 2013-03-23 14:25:41 +00:00
ppc.c disas/ppc.c: Fix little endian disassembly 2013-09-02 10:06:41 +02:00
s390.c disas/s390.c: Remove unused variables 2015-02-03 12:27:05 -08:00
sh4.c build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00
sparc.c disas/sparc: Remove unused data sparc_opcode_archs[] 2015-01-21 16:18:01 +00:00
tci.c build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00