qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-arm] [PATCH] disas/libvixl: Update to upstream VIXL 1.12


From: Peter Maydell
Subject: [Qemu-arm] [PATCH] disas/libvixl: Update to upstream VIXL 1.12
Date: Mon, 14 Dec 2015 13:04:19 +0000

Update our copy of libvixl to upstream's 1.12 release.
The major benefit from QEMU's point of view is that some instructions
previously disassembled as "unimplemented (System)" are now displayed
as something more useful. It also fixes some warnings about format
strings that newer w64-mingw32 compilers were emitting.

We didn't have any local changes to libvixl so nothing needed
to be forward-ported.

Although this is a large commit (partly due to upstream renaming most
of the files), only a few of the files changed in this commit
are not just straight copies of upstream libvixl files:
 disas/arm-a64.cc
 disas/libvixl/Makefile.objs
 disas/libvixl/README

Note that this commit introduces some signed-unsigned comparison
warnings on the old mingw compilers. Those compilers have broken
TLS support anyway so have only ever been much use for compile tests;
anybody still using them should add -Wno-sign-compare to their
--extra-cflags.

Signed-off-by: Peter Maydell <address@hidden>
---
I have used git's "--find-renames=3" for this patchmail as it
produces the smallest patch. The rename-detection does mis-identify
one file, but since there is no point reviewing the upstream code
I feel it doesn't matter and the reduced patchsize is more helpful.

The interesting files to review are those listed above as not
being simple copies of upstream libvixl files. Conveniently they
are the first three files in the patch.

Unfortunately the entire patch is 343K, which is rather larger than
qemu-devel's maximum email size limit. I have therefore truncated
this email to let it get through. You can find the full patch for
testing in my git repo:

web view:
https://git.linaro.org/people/peter.maydell/qemu-arm.git/shortlog/refs/heads/vixl-1.12
git url:
https://git.linaro.org/people/peter.maydell/qemu-arm.git vixl-1.12

I've truncated after the three files which are vaguely worth
reviewing. Let me know if there's a better way of handling this...


 disas/arm-a64.cc                                   |    2 +-
 disas/libvixl/Makefile.objs                        |    9 +-
 disas/libvixl/README                               |    3 +-
 disas/libvixl/{ => vixl}/a64/assembler-a64.h       | 2765 ++++++++++++++++++--
 disas/libvixl/{ => vixl}/a64/constants-a64.h       |  967 ++++++-
 disas/libvixl/{ => vixl}/a64/cpu-a64.h             |    6 +-
 disas/libvixl/{ => vixl}/a64/decoder-a64.cc        |  210 +-
 disas/libvixl/{ => vixl}/a64/decoder-a64.h         |   58 +-
 disas/libvixl/{ => vixl}/a64/disasm-a64.cc         | 1733 +++++++++++-
 disas/libvixl/{ => vixl}/a64/disasm-a64.h          |   17 +-
 disas/libvixl/{ => vixl}/a64/instructions-a64.cc   |  360 ++-
 disas/libvixl/{ => vixl}/a64/instructions-a64.h    |  423 ++-
 disas/libvixl/{ => vixl}/code-buffer.h             |    2 +-
 .../{utils.cc => vixl/compiler-intrinsics.cc}      |  137 +-
 disas/libvixl/vixl/compiler-intrinsics.h           |  155 ++
 disas/libvixl/{ => vixl}/globals.h                 |   82 +-
 disas/libvixl/vixl/invalset.h                      |  775 ++++++
 disas/libvixl/{ => vixl}/platform.h                |    2 +-
 disas/libvixl/vixl/utils.cc                        |  142 +
 disas/libvixl/{ => vixl}/utils.h                   |  115 +-
 20 files changed, 7382 insertions(+), 581 deletions(-)
 rename disas/libvixl/{ => vixl}/a64/assembler-a64.h (44%)
 rename disas/libvixl/{ => vixl}/a64/constants-a64.h (51%)
 rename disas/libvixl/{ => vixl}/a64/cpu-a64.h (96%)
 rename disas/libvixl/{ => vixl}/a64/decoder-a64.cc (81%)
 rename disas/libvixl/{ => vixl}/a64/decoder-a64.h (82%)
 rename disas/libvixl/{ => vixl}/a64/disasm-a64.cc (46%)
 rename disas/libvixl/{ => vixl}/a64/disasm-a64.h (94%)
 rename disas/libvixl/{ => vixl}/a64/instructions-a64.cc (49%)
 rename disas/libvixl/{ => vixl}/a64/instructions-a64.h (45%)
 rename disas/libvixl/{ => vixl}/code-buffer.h (99%)
 rename disas/libvixl/{utils.cc => vixl/compiler-intrinsics.cc} (60%)
 create mode 100644 disas/libvixl/vixl/compiler-intrinsics.h
 rename disas/libvixl/{ => vixl}/globals.h (52%)
 create mode 100644 disas/libvixl/vixl/invalset.h
 rename disas/libvixl/{ => vixl}/platform.h (98%)
 create mode 100644 disas/libvixl/vixl/utils.cc
 rename disas/libvixl/{ => vixl}/utils.h (68%)

diff --git a/disas/arm-a64.cc b/disas/arm-a64.cc
index b57256b..d4d46d5 100644
--- a/disas/arm-a64.cc
+++ b/disas/arm-a64.cc
@@ -17,7 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "a64/disasm-a64.h"
+#include "vixl/a64/disasm-a64.h"
 
 extern "C" {
 #include "disas/bfd.h"
diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs
index 17e6565..e373cf0 100644
--- a/disas/libvixl/Makefile.objs
+++ b/disas/libvixl/Makefile.objs
@@ -1,7 +1,8 @@
-libvixl_OBJS = utils.o \
-               a64/instructions-a64.o \
-               a64/decoder-a64.o \
-               a64/disasm-a64.o
+libvixl_OBJS = vixl/utils.o \
+               vixl/compiler-intrinsics.o \
+               vixl/a64/instructions-a64.o \
+               vixl/a64/decoder-a64.o \
+               vixl/a64/disasm-a64.o
 
 $(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS := 
-I$(SRC_PATH)/disas/libvixl $(QEMU_CFLAGS)
 
diff --git a/disas/libvixl/README b/disas/libvixl/README
index 58db41c..932a41a 100644
--- a/disas/libvixl/README
+++ b/disas/libvixl/README
@@ -2,11 +2,10 @@
 The code in this directory is a subset of libvixl:
  https://github.com/armvixl/vixl
 (specifically, it is the set of files needed for disassembly only,
-taken from libvixl 1.7).
+taken from libvixl 1.12).
 Bugfixes should preferably be sent upstream initially.
 
 The disassembler does not currently support the entire A64 instruction
 set. Notably:
- * No Advanced SIMD support.
  * Limited support for system instructions.
  * A few miscellaneous integer and floating point instructions are missing.


------------------------
EMAIL TRUNCATED HERE -- for other changes see the git repo.


thanks
-- PMM



reply via email to

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