mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
tcg: Replace TCGOP_VECL with TCGOP_TYPE
In the replacement, drop the TCGType - TCG_TYPE_V64 adjustment, except for the call to tcg_out_vec_op. Pass type to tcg_gen_op[1-6], so that all integer opcodes gain the type. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
125f97925d
commit
4d87221839
8 changed files with 105 additions and 93 deletions
|
@ -712,10 +712,9 @@ QEMU specific operations
|
|||
Host vector operations
|
||||
----------------------
|
||||
|
||||
All of the vector ops have two parameters, ``TCGOP_VECL`` & ``TCGOP_VECE``.
|
||||
The former specifies the length of the vector in log2 64-bit units; the
|
||||
latter specifies the length of the element (if applicable) in log2 8-bit units.
|
||||
E.g. VECL = 1 -> 64 << 1 -> v128, and VECE = 2 -> 1 << 2 -> i32.
|
||||
All of the vector ops have two parameters, ``TCGOP_TYPE`` & ``TCGOP_VECE``.
|
||||
The former specifies the length of the vector as a TCGType; the latter
|
||||
specifies the length of the element (if applicable) in log2 8-bit units.
|
||||
|
||||
.. list-table::
|
||||
|
||||
|
@ -729,7 +728,7 @@ E.g. VECL = 1 -> 64 << 1 -> v128, and VECE = 2 -> 1 << 2 -> i32.
|
|||
|
||||
* - dup_vec *v0*, *r1*
|
||||
|
||||
- | Duplicate the low N bits of *r1* into VECL/VECE copies across *v0*.
|
||||
- | Duplicate the low N bits of *r1* into TYPE/VECE copies across *v0*.
|
||||
|
||||
* - dupi_vec *v0*, *c*
|
||||
|
||||
|
@ -738,7 +737,7 @@ E.g. VECL = 1 -> 64 << 1 -> v128, and VECE = 2 -> 1 << 2 -> i32.
|
|||
|
||||
* - dup2_vec *v0*, *r1*, *r2*
|
||||
|
||||
- | Duplicate *r2*:*r1* into VECL/64 copies across *v0*. This opcode is
|
||||
- | Duplicate *r2*:*r1* into TYPE/64 copies across *v0*. This opcode is
|
||||
only present for 32-bit hosts.
|
||||
|
||||
* - add_vec *v0*, *v1*, *v2*
|
||||
|
@ -810,7 +809,7 @@ E.g. VECL = 1 -> 64 << 1 -> v128, and VECE = 2 -> 1 << 2 -> i32.
|
|||
|
||||
.. code-block:: c
|
||||
|
||||
for (i = 0; i < VECL/VECE; ++i) {
|
||||
for (i = 0; i < TYPE/VECE; ++i) {
|
||||
v0[i] = v1[i] << s2;
|
||||
}
|
||||
|
||||
|
@ -832,7 +831,7 @@ E.g. VECL = 1 -> 64 << 1 -> v128, and VECE = 2 -> 1 << 2 -> i32.
|
|||
|
||||
.. code-block:: c
|
||||
|
||||
for (i = 0; i < VECL/VECE; ++i) {
|
||||
for (i = 0; i < TYPE/VECE; ++i) {
|
||||
v0[i] = v1[i] << v2[i];
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue