target/arm/translate.h | 1 + target/arm/neon-dp.decode | 72 +++++ target/arm/translate-neon.inc.c | 521 ++++++++++++++++++++++++++++++++ target/arm/translate.c | 222 +------------- 4 files changed, 597 insertions(+), 219 deletions(-)
This patchset converts the Neon insns in the "3 registers of different lengths" group to decodetree. Patch 1 is a bugfix for an earlier part of the conversion that's now in master. I'm definitely finding that the new decodetree version of Neon is often easier to understand because we no longer try to accommodate multiple different kinds of widening/narrowing/etc insns in a single multi-pass loop: expanding out the loop and specializing it to the particular insn type helps a lot. (Or maybe it's just that having to read the old code and write the new version means I understand it better ;-)) Based-on: id:20200608183652.661386-1-richard.henderson@linaro.org ("[PATCH v3 0/9] decodetree: Add non-overlapping groups") because we use the new group syntax to set up the structure for the "size==0b11" vs "size!=0b11" decode which we'll fill in in subsequent patchsets. thanks -- PMM Peter Maydell (7): target/arm: Fix missing temp frees in do_vshll_2sh target/arm: Convert Neon 3-reg-diff prewidening ops to decodetree target/arm: Convert Neon 3-reg-diff narrowing ops to decodetree target/arm: Convert Neon 3-reg-diff VABAL, VABDL to decodetree target/arm: Convert Neon 3-reg-diff long multiplies target/arm: Convert Neon 3-reg-diff saturating doubling multiplies target/arm: Convert Neon 3-reg-diff polynomial VMULL target/arm/translate.h | 1 + target/arm/neon-dp.decode | 72 +++++ target/arm/translate-neon.inc.c | 521 ++++++++++++++++++++++++++++++++ target/arm/translate.c | 222 +------------- 4 files changed, 597 insertions(+), 219 deletions(-) -- 2.20.1
Patchew URL: https://patchew.org/QEMU/20200609160209.29960-1-peter.maydell@linaro.org/ Hi, This series failed the docker-quick@centos7 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash make docker-image-centos7 V=1 NETWORK=1 time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1 === TEST SCRIPT END === CC aarch64-softmmu/target/arm/pauth_helper.o GEN trace/generated-helpers.c CC aarch64-softmmu/trace/control-target.o /tmp/qemu-test/src/target/arm/neon-dp.decode:419: error: ('definition has 0 bits',) make[1]: *** [target/arm/decode-neon-dp.inc.c] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [aarch64-softmmu/all] Error 2 Traceback (most recent call last): File "./tests/docker/docker.py", line 665, in <module> sys.exit(main()) --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=44908a20ab39404aacf5b8640f6c781e', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-onpovaq5/src/docker-src.2020-06-09-12.57.59.30607:/var/tmp/qemu:z,ro', 'qemu:centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=44908a20ab39404aacf5b8640f6c781e make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-onpovaq5/src' make: *** [docker-run-test-quick@centos7] Error 2 real 3m15.295s user 0m8.538s The full log is available at http://patchew.org/logs/20200609160209.29960-1-peter.maydell@linaro.org/testing.docker-quick@centos7/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
Patchew URL: https://patchew.org/QEMU/20200609160209.29960-1-peter.maydell@linaro.org/ Hi, This series seems to have some coding style problems. See output below for more information: Message-id: 20200609160209.29960-1-peter.maydell@linaro.org Subject: [PATCH 0/7] target/arm: Convert Neon 3-reg-diff to decodetree Type: series === TEST SCRIPT BEGIN === #!/bin/bash git rev-parse base > /dev/null || exit 0 git config --local diff.renamelimit 0 git config --local diff.renames True git config --local diff.algorithm histogram ./scripts/checkpatch.pl --mailback base.. === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 From https://github.com/patchew-project/qemu * [new tag] patchew/1591720118-7378-1-git-send-email-aleksandar.qemu.devel@gmail.com -> patchew/1591720118-7378-1-git-send-email-aleksandar.qemu.devel@gmail.com * [new tag] patchew/20200609163932.1566209-1-armbru@redhat.com -> patchew/20200609163932.1566209-1-armbru@redhat.com Switched to a new branch 'test' 10d6c26 target/arm: Convert Neon 3-reg-diff polynomial VMULL 30b00c9 target/arm: Convert Neon 3-reg-diff saturating doubling multiplies 185eaf7 target/arm: Convert Neon 3-reg-diff long multiplies 57a3a2d target/arm: Convert Neon 3-reg-diff VABAL, VABDL to decodetree 8e2567a target/arm: Convert Neon 3-reg-diff narrowing ops to decodetree b4908b3 target/arm: Convert Neon 3-reg-diff prewidening ops to decodetree 764df93 target/arm: Fix missing temp frees in do_vshll_2sh === OUTPUT BEGIN === 1/7 Checking commit 764df93babf9 (target/arm: Fix missing temp frees in do_vshll_2sh) 2/7 Checking commit b4908b34dc71 (target/arm: Convert Neon 3-reg-diff prewidening ops to decodetree) 3/7 Checking commit 8e2567a86999 (target/arm: Convert Neon 3-reg-diff narrowing ops to decodetree) 4/7 Checking commit 57a3a2dc757a (target/arm: Convert Neon 3-reg-diff VABAL, VABDL to decodetree) 5/7 Checking commit 185eaf7a1f0a (target/arm: Convert Neon 3-reg-diff long multiplies) ERROR: space required after that ',' (ctx:VxV) #93: FILE: target/arm/translate-neon.inc.c:2203: +#define DO_VMLAL(INSN,MULL,ACC) \ ^ ERROR: space required after that ',' (ctx:VxV) #93: FILE: target/arm/translate-neon.inc.c:2203: +#define DO_VMLAL(INSN,MULL,ACC) \ ^ ERROR: space required after that ',' (ctx:VxV) #111: FILE: target/arm/translate-neon.inc.c:2221: +DO_VMLAL(VMLAL_S,mull_s,add) ^ ERROR: space required after that ',' (ctx:VxV) #111: FILE: target/arm/translate-neon.inc.c:2221: +DO_VMLAL(VMLAL_S,mull_s,add) ^ ERROR: space required after that ',' (ctx:VxV) #112: FILE: target/arm/translate-neon.inc.c:2222: +DO_VMLAL(VMLAL_U,mull_u,add) ^ ERROR: space required after that ',' (ctx:VxV) #112: FILE: target/arm/translate-neon.inc.c:2222: +DO_VMLAL(VMLAL_U,mull_u,add) ^ ERROR: space required after that ',' (ctx:VxV) #113: FILE: target/arm/translate-neon.inc.c:2223: +DO_VMLAL(VMLSL_S,mull_s,sub) ^ ERROR: space required after that ',' (ctx:VxV) #113: FILE: target/arm/translate-neon.inc.c:2223: +DO_VMLAL(VMLSL_S,mull_s,sub) ^ ERROR: space required after that ',' (ctx:VxV) #114: FILE: target/arm/translate-neon.inc.c:2224: +DO_VMLAL(VMLSL_U,mull_u,sub) ^ ERROR: space required after that ',' (ctx:VxV) #114: FILE: target/arm/translate-neon.inc.c:2224: +DO_VMLAL(VMLSL_U,mull_u,sub) ^ total: 10 errors, 0 warnings, 138 lines checked Patch 5/7 has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. 6/7 Checking commit 30b00c96fb41 (target/arm: Convert Neon 3-reg-diff saturating doubling multiplies) 7/7 Checking commit 10d6c26e24fe (target/arm: Convert Neon 3-reg-diff polynomial VMULL) WARNING: line over 80 characters #157: FILE: target/arm/translate.c:5230: + /* Three registers of different lengths: handled by decodetree */ total: 0 errors, 1 warnings, 131 lines checked Patch 7/7 has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. === OUTPUT END === Test command exited with code: 1 The full log is available at http://patchew.org/logs/20200609160209.29960-1-peter.maydell@linaro.org/testing.checkpatch/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
Patchew URL: https://patchew.org/QEMU/20200609160209.29960-1-peter.maydell@linaro.org/ Hi, This series failed the docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #! /bin/bash export ARCH=x86_64 make docker-image-fedora V=1 NETWORK=1 time make docker-test-mingw@fedora J=14 NETWORK=1 === TEST SCRIPT END === CC aarch64-softmmu/target/arm/psci.o CC aarch64-softmmu/target/arm/translate-a64.o CC aarch64-softmmu/target/arm/helper-a64.o /tmp/qemu-test/src/target/arm/neon-dp.decode:419: error: ('definition has 0 bits',) make[1]: *** [/tmp/qemu-test/src/target/arm/Makefile.objs:27: target/arm/decode-neon-dp.inc.c] Error 1 make[1]: *** Waiting for unfinished jobs.... GEN x86_64-softmmu/qemu-system-x86_64.exe make: *** [Makefile:527: aarch64-softmmu/all] Error 2 Traceback (most recent call last): File "./tests/docker/docker.py", line 665, in <module> sys.exit(main()) --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=69eb65b4813d4082974e1945e31adc22', '-u', '1001', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-okk7r4jy/src/docker-src.2020-06-09-13.30.20.21045:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=69eb65b4813d4082974e1945e31adc22 make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-okk7r4jy/src' make: *** [docker-run-test-mingw@fedora] Error 2 real 3m25.223s user 0m9.106s The full log is available at http://patchew.org/logs/20200609160209.29960-1-peter.maydell@linaro.org/testing.docker-mingw@fedora/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
Patchew URL: https://patchew.org/QEMU/20200609160209.29960-1-peter.maydell@linaro.org/ Hi, This series failed the docker-quick@centos7 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash make docker-image-centos7 V=1 NETWORK=1 time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1 === TEST SCRIPT END === CC aarch64-softmmu/target/arm/psci.o CC aarch64-softmmu/target/arm/helper-a64.o GEN aarch64-softmmu/target/arm/decode-sve.inc.c /tmp/qemu-test/src/target/arm/neon-dp.decode:419: error: ('definition has 0 bits',) make[1]: *** [target/arm/decode-neon-dp.inc.c] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [aarch64-softmmu/all] Error 2 make: *** Waiting for unfinished jobs.... Traceback (most recent call last): File "./tests/docker/docker.py", line 665, in <module> --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=fd2ea42b79504fd5bdbdd4ead15f2c62', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-w7za9v94/src/docker-src.2020-06-09-16.09.24.2468:/var/tmp/qemu:z,ro', 'qemu:centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=fd2ea42b79504fd5bdbdd4ead15f2c62 make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-w7za9v94/src' make: *** [docker-run-test-quick@centos7] Error 2 real 3m4.489s user 0m8.005s The full log is available at http://patchew.org/logs/20200609160209.29960-1-peter.maydell@linaro.org/testing.docker-quick@centos7/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
On 6/9/20 6:02 PM, Peter Maydell wrote: > This patchset converts the Neon insns in the "3 registers of different > lengths" group to decodetree. Patch 1 is a bugfix for an earlier > part of the conversion that's now in master. > > I'm definitely finding that the new decodetree version of Neon > is often easier to understand because we no longer try to > accommodate multiple different kinds of widening/narrowing/etc > insns in a single multi-pass loop: expanding out the loop and > specializing it to the particular insn type helps a lot. I agree. The TCG ARM code is well documented, but the decodetree view makes it easier to review. Kinda obvious when you compare with the TCG code in older QEMU architectures. Personally I also find it easier to set breakpoints. > (Or maybe it's just that having to read the old code and write > the new version means I understand it better ;-)) > > Based-on: id:20200608183652.661386-1-richard.henderson@linaro.org > ("[PATCH v3 0/9] decodetree: Add non-overlapping groups") > because we use the new group syntax to set up the structure > for the "size==0b11" vs "size!=0b11" decode which we'll fill > in in subsequent patchsets. > > thanks > -- PMM > > Peter Maydell (7): > target/arm: Fix missing temp frees in do_vshll_2sh > target/arm: Convert Neon 3-reg-diff prewidening ops to decodetree > target/arm: Convert Neon 3-reg-diff narrowing ops to decodetree > target/arm: Convert Neon 3-reg-diff VABAL, VABDL to decodetree > target/arm: Convert Neon 3-reg-diff long multiplies > target/arm: Convert Neon 3-reg-diff saturating doubling multiplies > target/arm: Convert Neon 3-reg-diff polynomial VMULL > > target/arm/translate.h | 1 + > target/arm/neon-dp.decode | 72 +++++ > target/arm/translate-neon.inc.c | 521 ++++++++++++++++++++++++++++++++ > target/arm/translate.c | 222 +------------- > 4 files changed, 597 insertions(+), 219 deletions(-) >
Patchew URL: https://patchew.org/QEMU/20200609160209.29960-1-peter.maydell@linaro.org/ Hi, This series failed the docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #! /bin/bash export ARCH=x86_64 make docker-image-fedora V=1 NETWORK=1 time make docker-test-mingw@fedora J=14 NETWORK=1 === TEST SCRIPT END === CC aarch64-softmmu/target/arm/translate-a64.o GEN aarch64-softmmu/target/arm/decode-sve.inc.c CC aarch64-softmmu/target/arm/helper-a64.o /tmp/qemu-test/src/target/arm/neon-dp.decode:419: error: ('definition has 0 bits',) CC aarch64-softmmu/target/arm/sve_helper.o make[1]: *** [/tmp/qemu-test/src/target/arm/Makefile.objs:27: target/arm/decode-neon-dp.inc.c] Error 1 make[1]: *** Waiting for unfinished jobs.... CC aarch64-softmmu/target/arm/pauth_helper.o GEN x86_64-softmmu/qemu-system-x86_64.exe make: *** [Makefile:527: aarch64-softmmu/all] Error 2 Traceback (most recent call last): File "./tests/docker/docker.py", line 665, in <module> sys.exit(main()) --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=a76ec30164464962b992161c1d94e390', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-evguu8xo/src/docker-src.2020-06-09-17.07.30.29444:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=a76ec30164464962b992161c1d94e390 make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-evguu8xo/src' make: *** [docker-run-test-mingw@fedora] Error 2 real 2m40.106s user 0m8.477s The full log is available at http://patchew.org/logs/20200609160209.29960-1-peter.maydell@linaro.org/testing.docker-mingw@fedora/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
Patchew URL: https://patchew.org/QEMU/20200609160209.29960-1-peter.maydell@linaro.org/ Hi, This series seems to have some coding style problems. See output below for more information: Message-id: 20200609160209.29960-1-peter.maydell@linaro.org Subject: [PATCH 0/7] target/arm: Convert Neon 3-reg-diff to decodetree Type: series === TEST SCRIPT BEGIN === #!/bin/bash git rev-parse base > /dev/null || exit 0 git config --local diff.renamelimit 0 git config --local diff.renames True git config --local diff.algorithm histogram ./scripts/checkpatch.pl --mailback base.. === TEST SCRIPT END === From https://github.com/patchew-project/qemu 49ee115..31d321c master -> master Switched to a new branch 'test' fb9cd52 target/arm: Convert Neon 3-reg-diff polynomial VMULL 08c5030 target/arm: Convert Neon 3-reg-diff saturating doubling multiplies df05eae target/arm: Convert Neon 3-reg-diff long multiplies 42bfcfc target/arm: Convert Neon 3-reg-diff VABAL, VABDL to decodetree 53025bc target/arm: Convert Neon 3-reg-diff narrowing ops to decodetree bc32157 target/arm: Convert Neon 3-reg-diff prewidening ops to decodetree f6dc16f target/arm: Fix missing temp frees in do_vshll_2sh === OUTPUT BEGIN === 1/7 Checking commit f6dc16f463ee (target/arm: Fix missing temp frees in do_vshll_2sh) 2/7 Checking commit bc3215754d8f (target/arm: Convert Neon 3-reg-diff prewidening ops to decodetree) 3/7 Checking commit 53025bc0a61e (target/arm: Convert Neon 3-reg-diff narrowing ops to decodetree) 4/7 Checking commit 42bfcfcc08ac (target/arm: Convert Neon 3-reg-diff VABAL, VABDL to decodetree) 5/7 Checking commit df05eae86282 (target/arm: Convert Neon 3-reg-diff long multiplies) ERROR: space required after that ',' (ctx:VxV) #93: FILE: target/arm/translate-neon.inc.c:2203: +#define DO_VMLAL(INSN,MULL,ACC) \ ^ ERROR: space required after that ',' (ctx:VxV) #93: FILE: target/arm/translate-neon.inc.c:2203: +#define DO_VMLAL(INSN,MULL,ACC) \ ^ ERROR: space required after that ',' (ctx:VxV) #111: FILE: target/arm/translate-neon.inc.c:2221: +DO_VMLAL(VMLAL_S,mull_s,add) ^ ERROR: space required after that ',' (ctx:VxV) #111: FILE: target/arm/translate-neon.inc.c:2221: +DO_VMLAL(VMLAL_S,mull_s,add) ^ ERROR: space required after that ',' (ctx:VxV) #112: FILE: target/arm/translate-neon.inc.c:2222: +DO_VMLAL(VMLAL_U,mull_u,add) ^ ERROR: space required after that ',' (ctx:VxV) #112: FILE: target/arm/translate-neon.inc.c:2222: +DO_VMLAL(VMLAL_U,mull_u,add) ^ ERROR: space required after that ',' (ctx:VxV) #113: FILE: target/arm/translate-neon.inc.c:2223: +DO_VMLAL(VMLSL_S,mull_s,sub) ^ ERROR: space required after that ',' (ctx:VxV) #113: FILE: target/arm/translate-neon.inc.c:2223: +DO_VMLAL(VMLSL_S,mull_s,sub) ^ ERROR: space required after that ',' (ctx:VxV) #114: FILE: target/arm/translate-neon.inc.c:2224: +DO_VMLAL(VMLSL_U,mull_u,sub) ^ ERROR: space required after that ',' (ctx:VxV) #114: FILE: target/arm/translate-neon.inc.c:2224: +DO_VMLAL(VMLSL_U,mull_u,sub) ^ total: 10 errors, 0 warnings, 138 lines checked Patch 5/7 has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. 6/7 Checking commit 08c503092761 (target/arm: Convert Neon 3-reg-diff saturating doubling multiplies) 7/7 Checking commit fb9cd52b2791 (target/arm: Convert Neon 3-reg-diff polynomial VMULL) WARNING: line over 80 characters #157: FILE: target/arm/translate.c:5230: + /* Three registers of different lengths: handled by decodetree */ total: 0 errors, 1 warnings, 131 lines checked Patch 7/7 has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. === OUTPUT END === Test command exited with code: 1 The full log is available at http://patchew.org/logs/20200609160209.29960-1-peter.maydell@linaro.org/testing.checkpatch/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
© 2016 - 2024 Red Hat, Inc.