From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58700) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a8Snm-0000Wr-R0 for qemu-devel@nongnu.org; Mon, 14 Dec 2015 08:04:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a8Snl-0003z4-0f for qemu-devel@nongnu.org; Mon, 14 Dec 2015 08:04:30 -0500 From: Peter Maydell Date: Mon, 14 Dec 2015 13:04:19 +0000 Message-Id: <1450098259-8368-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH] disas/libvixl: Update to upstream VIXL 1.12 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Stefan Weil , qemu-arm@nongnu.org, Juan Quintela , patches@linaro.org 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 --- 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 . */ -#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