Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
tests/decode: Add tests for various named-field cases
Add some tests for various cases of named-field use, both ones that should work and ones that should be diagnosed as errors. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230523120447.728365-7-peter.maydell@linaro.org>
- Loading branch information
Showing
6 changed files
with
60 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # 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. | ||
|
|
||
| # Diagnose formats which refer to undefined fields | ||
| %field1 field2:3 | ||
| @fmt ........ ........ ........ ........ %field1 | ||
| insn 00000000 00000000 00000000 00000000 @fmt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # 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. | ||
|
|
||
| # Diagnose fields whose definitions form a loop | ||
| %field1 field2:3 | ||
| %field2 field1:4 | ||
| insn 00000000 00000000 00000000 00000000 %field1 %field2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| # 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. | ||
|
|
||
| # Diagnose patterns which refer to undefined fields | ||
| &f1 f1 a | ||
| %field1 field2:3 | ||
| @fmt ........ ........ ........ .... a:4 &f1 | ||
| insn 00000000 00000000 00000000 0000 .... @fmt f1=%field1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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. | ||
|
|
||
| # Diagnose fields where the format refers to a field defined in the | ||
| # pattern and the pattern refers to a field defined in the format. | ||
| # This is theoretically not impossible to implement, but is not | ||
| # supported by the script at this time. | ||
| &abcd a b c d | ||
| %refa a:3 | ||
| %refc c:4 | ||
| # Format defines 'c' and sets 'b' to an indirect ref to 'a' | ||
| @fmt ........ ........ ........ c:8 &abcd b=%refa | ||
| # Pattern defines 'a' and sets 'd' to an indirect ref to 'c' | ||
| insn 00000000 00000000 00000000 ........ @fmt d=%refc a=6 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| # 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. | ||
|
|
||
| # field using a named_field | ||
| %imm_sz 8:8 sz:3 | ||
| insn 00000000 00000000 ........ 00000000 imm_sz=%imm_sz sz=1 | ||
|
|
||
| # Ditto, via a format. Here a field in the format | ||
| # references a named field defined in the insn pattern: | ||
| &imm_a imm alpha | ||
| %foo 0:16 alpha:4 | ||
| @foo 00000001 ........ ........ ........ &imm_a imm=%foo | ||
| i1 ........ 00000000 ........ ........ @foo alpha=1 | ||
| i2 ........ 00000001 ........ ........ @foo alpha=2 | ||
|
|
||
| # Here the named field is defined in the format and referenced | ||
| # from the insn pattern: | ||
| @bar 00000010 ........ ........ ........ &imm_a alpha=4 | ||
| i3 ........ 00000000 ........ ........ @bar imm=%foo |