Merge remote-tracking branch 'remotes/rth/tags/pull-dt-20200609' into staging

Add non-overlapping groups

# gpg: Signature made Tue 09 Jun 2020 17:22:17 BST
# gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg:                issuer "richard.henderson@linaro.org"
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" [full]
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth/tags/pull-dt-20200609:
  target/arm: Use a non-overlapping group for misc control
  decodetree: Drop check for less than 2 patterns in a group
  tests/decode: Test non-overlapping groups
  decodetree: Implement non-overlapping groups
  decodetree: Move semantic propagation into classes
  decodetree: Allow group covering the entire insn space
  decodetree: Split out MultiPattern from IncMultiPattern
  decodetree: Rename MultiPattern to IncMultiPattern
  decodetree: Tidy error_with_file

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell
2020-06-11 11:20:39 +01:00
8 changed files with 360 additions and 225 deletions
+295 -218
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -312,13 +312,13 @@ CLZ 1111 1010 1011 ---- 1111 .... 1000 .... @rdm
&cps
# Miscellaneous control
{
[
CLREX 1111 0011 1011 1111 1000 1111 0010 1111
DSB 1111 0011 1011 1111 1000 1111 0100 ----
DMB 1111 0011 1011 1111 1000 1111 0101 ----
ISB 1111 0011 1011 1111 1000 1111 0110 ----
SB 1111 0011 1011 1111 1000 1111 0111 0000
}
]
# Note that the v7m insn overlaps both the normal and banked insn.
{
+6 -5
View File
@@ -3,11 +3,12 @@
%sub1 0:8
%sub2 8:8
%sub3 16:8
%sub4 24:8
# Groups with no overlap are supposed to fail
# Make sure braces are matched
{
top 00000000 00000000 00000000 00000000
sub4 ........ ........ ........ ........ %sub1 %sub2 %sub3 %sub4
top 00000000 00000000 00000000 00000000
[
sub1 00000000 00000000 00000000 ........ %sub1
sub2 00000000 00000000 ........ ........ %sub1 %sub2
}
}
@@ -0,0 +1,6 @@
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Make sure braces are matched
{
[
@@ -0,0 +1,14 @@
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
%sub1 0:8
%sub2 8:8
# The exclusive group should error for overlap.
{
top 00000000 00000000 00000000 00000000
[
sub1 00000000 00000000 00000000 ........ %sub1
sub2 00000000 00000000 ........ ........ %sub1 %sub2
]
}
@@ -0,0 +1,13 @@
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
%sub1 0:8
%sub2 8:8
%sub3 16:8
%sub4 24:8
# Group with complete overlap of the two patterns
{
top 00000000 00000000 00000000 00000000
sub4 ........ ........ ........ ........ %sub1 %sub2 %sub3 %sub4
}
@@ -0,0 +1,11 @@
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
{
[
sub1 00000000 a:8 b:8 c:8
sub2 00000001 a:8 b:8 c:8
sub3 00000010 a:8 b:8 c:8
]
sub4 000000 d:2 a:8 b:8 c:8
}
@@ -0,0 +1,13 @@
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Verify deeper nesting, and a single element in the groups.
{
[
{
[
sub1 00000000 a:8 b:8 c:8
]
}
]
}