[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 0/5] disas: add libvixl to support A64 disassembl
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH v3 0/5] disas: add libvixl to support A64 disassembly |
Date: |
Wed, 5 Feb 2014 17:28:32 +0000 |
Hi. This is a rebased and mildly cleaned up version of Claudio's
RFC patchset from last year to add libvixl to QEMU and use it
for A64 disassembly.
Since this has now got review and the only change is adding
the README I'm planning to put it in my next target-arm pull
request.
Paolo: just a heads-up: I have a feeling the rules.mak changes
clash slightly with the ones in your modules patches.
NOTE NOTE NOTE
* we now link with g++, not gcc (even if the target doesn't
happen to need the A64 disassembler, since it's a bit hard
to tell whether there's a C++-source .o file in the link)
* I've tested Linux (including static link of linux-user) and
MacOS hosts, but not Windows
Changes v2 -> v3:
* added a README clarifying that libvixl's disassembly support
is not complete and that contributions should go to libvixl
upstream first for preference
Changes v1 -> v2:
* fixed minor libvixl bugs that meant it didn't build on 32 bit
hosts or on Windows
* only import the files we need from libvixl, rather than
pulling in 10000 lines of code we never even compile
* merge aarch64-cxx.cc and aarch64.c into one file
* rename 'aarch64' to 'A64' since the instruction set we're
disassembling here is named A64, not AArch64
* tidied the makefiles a little so we only apply the libvixl
specific flags to those files
Changes RFC -> v1:
* some support for C++ compilation is already in master, so
the rules.mak changes are smaller and simpler
* I've fixed the output to better fit in a qemu debug log trace
* I simplified the interface between aarch64-cxx.cc and aarch64.c
a little bit
* correctly handle the "no C++ compiler, so no A64 disassembler"
build case
* added support for using this as a disassembler for A64 targets
as well as hosts
You can find a git tree here:
git://git.linaro.org/people/peter.maydell/qemu-arm.git a64-vixl
web UI:
https://git.linaro.org/people/peter.maydell/qemu-arm.git/shortlog/refs/heads/a64-vixl
Claudio Fontana (1):
disas: Implement disassembly output for A64
Peter Maydell (4):
rules.mak: Support .cc as a C++ source file suffix
rules.mak: Link with C++ if we have a C++ compiler
disas: Add subset of libvixl sources for A64 disassembler
disas/libvixl: Fix upstream libvixl compilation issues
configure | 4 +
disas.c | 14 +-
disas/Makefile.objs | 5 +
disas/arm-a64.cc | 87 ++
disas/libvixl/LICENCE | 30 +
disas/libvixl/Makefile.objs | 8 +
disas/libvixl/README | 12 +
disas/libvixl/a64/assembler-a64.h | 1784 +++++++++++++++++++++++++++++++++
disas/libvixl/a64/constants-a64.h | 1104 ++++++++++++++++++++
disas/libvixl/a64/cpu-a64.h | 56 ++
disas/libvixl/a64/decoder-a64.cc | 712 +++++++++++++
disas/libvixl/a64/decoder-a64.h | 198 ++++
disas/libvixl/a64/disasm-a64.cc | 1678 +++++++++++++++++++++++++++++++
disas/libvixl/a64/disasm-a64.h | 109 ++
disas/libvixl/a64/instructions-a64.cc | 238 +++++
disas/libvixl/a64/instructions-a64.h | 344 +++++++
disas/libvixl/globals.h | 65 ++
disas/libvixl/platform.h | 43 +
disas/libvixl/utils.cc | 120 +++
disas/libvixl/utils.h | 126 +++
include/disas/bfd.h | 1 +
rules.mak | 14 +-
target-arm/translate-a64.c | 2 +-
23 files changed, 6748 insertions(+), 6 deletions(-)
create mode 100644 disas/arm-a64.cc
create mode 100644 disas/libvixl/LICENCE
create mode 100644 disas/libvixl/Makefile.objs
create mode 100644 disas/libvixl/README
create mode 100644 disas/libvixl/a64/assembler-a64.h
create mode 100644 disas/libvixl/a64/constants-a64.h
create mode 100644 disas/libvixl/a64/cpu-a64.h
create mode 100644 disas/libvixl/a64/decoder-a64.cc
create mode 100644 disas/libvixl/a64/decoder-a64.h
create mode 100644 disas/libvixl/a64/disasm-a64.cc
create mode 100644 disas/libvixl/a64/disasm-a64.h
create mode 100644 disas/libvixl/a64/instructions-a64.cc
create mode 100644 disas/libvixl/a64/instructions-a64.h
create mode 100644 disas/libvixl/globals.h
create mode 100644 disas/libvixl/platform.h
create mode 100644 disas/libvixl/utils.cc
create mode 100644 disas/libvixl/utils.h
--
1.8.5
- [Qemu-devel] [PATCH v3 0/5] disas: add libvixl to support A64 disassembly,
Peter Maydell <=
- [Qemu-devel] [PATCH v3 4/5] disas/libvixl: Fix upstream libvixl compilation issues, Peter Maydell, 2014/02/05
- [Qemu-devel] [PATCH v3 1/5] rules.mak: Support .cc as a C++ source file suffix, Peter Maydell, 2014/02/05
- [Qemu-devel] [PATCH v3 2/5] rules.mak: Link with C++ if we have a C++ compiler, Peter Maydell, 2014/02/05
- [Qemu-devel] [PATCH v3 5/5] disas: Implement disassembly output for A64, Peter Maydell, 2014/02/05
- [Qemu-devel] [PATCH v3 3/5] disas: Add subset of libvixl sources for A64 disassembler, Peter Maydell, 2014/02/05
- Re: [Qemu-devel] [PATCH v3 0/5] disas: add libvixl to support A64 disassembly, Michael Matz, 2014/02/06