Philippe Mathieu-Daudé
04591b3ddd
target/mips: Fix MSA BZ/BNZ opcodes displacement
...
The PC offset is *signed*.
Cc: qemu-stable@nongnu.org
Reported-by: Sergey Evlashev <vectorchiefrocks@gmail.com >
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1624
Fixes: c7a9ef7517
("target/mips: Introduce decode tree bindings for MSA ASE")
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20230914085807.12241-1-philmd@linaro.org >
2023-11-07 12:13:28 +01:00
Philippe Mathieu-Daudé
73053f6228
target/mips: Remove one MSA unnecessary decodetree overlap group
...
Only the MSA generic opcode was overlapping with the other
instructions. Since the previous commit removed it, we can
now remove the overlap group. The decodetree script forces
us to re-indent the opcodes.
Diff trivial to review using `git-diff --ignore-all-space`.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-32-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
75d12c8c24
target/mips: Remove generic MSA opcode
...
All opcodes have been converted to decodetree. The generic
MSA handler is now pointless, remove it.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-31-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
643ec9022e
target/mips: Convert CTCMSA opcode to decodetree
...
Convert the CTCMSA (Copy To Control MSA register) opcode
to decodetree. Since it overlaps with the SLDI opcode,
use a decodetree overlap group.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-30-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
6f74237691
target/mips: Convert CFCMSA opcode to decodetree
...
Convert the CFCMSA (Copy From Control MSA register) opcode
to decodetree. Since it overlaps with the SPLATI opcode,
use a decodetree overlap group.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-29-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
62ba0e855a
target/mips: Convert MSA MOVE.V opcode to decodetree
...
Convert the MOVE.V opcode (Vector Move) to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-28-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
97fe675519
target/mips: Convert MSA COPY_S and INSERT opcodes to decodetree
...
Convert the COPY_S (Element Copy to GPR Signed) opcode
and INSERT (GPR Insert Element) opcode to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-27-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
2f2745c81a
target/mips: Convert MSA COPY_U opcode to decodetree
...
Convert the COPY_U opcode (Element Copy to GPR Unsigned) to
decodetree.
Since the 'n' field is a constant value, use tcg_constant_i32()
instead of a TCG temporary.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20211028210843.2120802-26-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
0a510c934c
target/mips: Convert MSA ELM instruction format to decodetree
...
Convert instructions with an immediate element index
and data format df/n to decodetree.
Since the 'data format' and 'n' fields are constant values,
use tcg_constant_i32() instead of a TCG temporaries.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-25-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
0a086d2e80
target/mips: Convert MSA 3R instruction format to decodetree (part 4/4)
...
Convert 3-register operations to decodetree.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-24-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
c79db8c239
target/mips: Convert MSA 3R instruction format to decodetree (part 3/4)
...
Convert BINSL (Vector Bit Insert Left) and BINSR (Vector Bit
Insert Right) opcodes to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-23-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
f18708a53a
target/mips: Convert MSA 3R instruction format to decodetree (part 2/4)
...
Convert 3-register operations to decodetree.
Per the Encoding of Operation Field for 3R Instruction Format'
(Table 3.25), these instructions are not defined for the BYTE
format. Therefore the TRANS_DF_iii_b() macro returns 'false'
in that case, because no such instruction is decoded.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20211028210843.2120802-22-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
67bedef51a
target/mips: Convert MSA 3R instruction format to decodetree (part 1/4)
...
Convert 3-register operations to decodetree.
Since the 'data format' field is a constant value, use
tcg_constant_i32() instead of a TCG temporary.
Note, the format definition could be named @3rf_b (for
3R with a df field BYTE-based) but since the instruction
class is named '3R', we simply call the format @3r to
ease reviewing the msa.decode file.
However we directly call the trans_msa_3rf() function,
which handles the BYTE-based df field.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-21-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
2d5246f305
target/mips: Convert MSA 3RF instruction format to decodetree (DF_WORD)
...
Convert 3-register floating-point or fixed-point operations
to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-20-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
ff29e5d3c0
target/mips: Convert MSA 3RF instruction format to decodetree (DF_HALF)
...
Convert 3-register floating-point or fixed-point operations
to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20211028210843.2120802-19-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
7acb5c78a7
target/mips: Convert MSA VEC instruction format to decodetree
...
Convert 3-register instructions with implicit data formats
to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-18-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
adcff99a6b
target/mips: Convert MSA 2R instruction format to decodetree
...
Convert 2-register operations to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-17-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
675bf34a6f
target/mips: Convert MSA FILL opcode to decodetree
...
Convert the FILL opcode (Vector Fill from GPR) to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-16-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
5c5b64000c
target/mips: Convert MSA 2RF instruction format to decodetree
...
Convert 2-register floating-point operations to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-15-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
ce121fe234
target/mips: Convert MSA load/store instruction format to decodetree
...
Convert load/store instructions to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-14-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
7cc351ff9d
target/mips: Convert MSA I8 instruction format to decodetree
...
Convert instructions with an 8-bit immediate value and either
implicit data format or data format df to decodetree.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-13-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
a9e1795833
target/mips: Convert MSA SHF opcode to decodetree
...
Convert the SHF opcode (Immediate Set Shuffle Elements) to decodetree.
Since the 'data format' field is a constant value, use
tcg_constant_i32() instead of a TCG temporary.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-12-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
4701d23aef
target/mips: Convert MSA BIT instruction format to decodetree
...
Convert instructions with an immediate bit index and
data format df/m to decodetree.
Since the 'data format' field is a constant value, use
tcg_constant_i32() instead of a TCG temporary.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20211028210843.2120802-11-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
b8e74816ec
target/mips: Convert MSA I5 instruction format to decodetree
...
Convert instructions with a 5-bit immediate value to decodetree.
Since the 'data format' field is a constant value, use
tcg_constant_i32() instead of a TCG temporary.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-10-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
75094c334e
target/mips: Convert MSA LDI opcode to decodetree
...
Convert the LDI opcode (Immediate Load) to decodetree. Since it
overlaps with the generic MSA handler, use a decodetree overlap
group.
Since the 'data format' field is a constant value, use
tcg_constant_i32() instead of a TCG temporary.
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-9-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
d61566cf78
target/mips: Rename sa16 -> sa, bz_df -> bz -> bz_v
...
This 'shift amount' format is not always 16-bit, so name it
generically as 'sa'. This will help to unify the various
arg_msa decodetree generated structures.
Rename the @bz format -> @bz_v (specific @bz with df=3) and
@bz_df -> @bz (generic @bz).
Since we modify &msa_bz, re-align its arguments, so the other
structures added in the following commits stay visually aligned.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20211028210843.2120802-8-f4bug@amsat.org >
2021-11-02 14:32:32 +01:00
Philippe Mathieu-Daudé
34fe9fa368
target/mips: Rename 'rtype' as 'r'
...
We'll soon have more opcode and decoded arguments, and 'rtype'
is not very helpful. Naming it simply 'r' ease reviewing the
.decode files when we have many opcodes.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20210801234202.3167676-5-f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
2021-08-25 13:02:14 +02:00
Philippe Mathieu-Daudé
f5c6ee0c6b
target/mips: Merge msa32/msa64 decodetree definitions
...
We don't need to maintain 2 sets of decodetree definitions.
Merge them into a single file.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210617174636.2902654-3-f4bug@amsat.org >
2021-06-24 16:48:08 +02:00