qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]