Victor Colombo
c5df1898a1
target/ppc: Move xs{max,min}[cj]dp to decodetree
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Victor Colombo <victor.colombo@eldorado.org.br >
Message-Id: <20211213120958.24443-3-victor.colombo@eldorado.org.br >
Signed-off-by: Cédric Le Goater <clg@kaod.org >
2021-12-17 17:57:18 +01:00
Victor Colombo
201fc774e0
target/ppc: Fix xs{max, min}[cj]dp to use VSX registers
...
PPC instruction xsmaxcdp, xsmincdp, xsmaxjdp, and xsminjdp are using
vector registers when they should be using VSX ones. This happens
because the instructions are using GEN_VSX_HELPER_R3, which adds 32
to the register numbers, effectively making them vector registers.
This patch fixes it by changing these instructions to use
GEN_VSX_HELPER_X3.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Victor Colombo <victor.colombo@eldorado.org.br >
Message-Id: <20211213120958.24443-2-victor.colombo@eldorado.org.br >
Signed-off-by: Cédric Le Goater <clg@kaod.org >
2021-12-17 17:57:18 +01:00
Matheus Ferst
6e26b85de5
target/ppc: Implement lxvkq instruction
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-25-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Matheus Ferst
788c63998c
target/ppc: Implement xxblendvb/xxblendvh/xxblendvw/xxblendvd instructions
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-24-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Bruno Larsen (billionai)
236a628599
target/ppc: implemented XXSPLTIDP instruction
...
Implemented the instruction XXSPLTIDP using decodetree.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-23-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Bruno Larsen (billionai)
ec10f73eb9
target/ppc: Implemented XXSPLTIW using decodetree
...
Implemented the XXSPLTIW instruction, using decodetree.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-22-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Bruno Larsen (billionai)
aa4592fab7
target/ppc: implemented XXSPLTI32DX
...
Implemented XXSPLTI32DX emulation using decodetree
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-21-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Bruno Larsen (billionai)
6166fced10
target/ppc: moved XXSPLTIB to using decodetree
...
Changed the function that handles XXSPLTIB emulation to using
decodetree, but still use the same logic as before
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-20-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Bruno Larsen (billionai)
30dfca8d8f
target/ppc: moved XXSPLTW to using decodetree
...
Changed the function that handles XXSPLTW emulation to using decodetree,
but still using the same logic.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-19-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Lucas Mateus Castro (alqotel)
dcbf48316f
target/ppc: added the instructions PLXVP and PSTXVP
...
Implemented the instructions plxvp and pstxvp using decodetree
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.castro@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-18-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Lucas Mateus Castro (alqotel)
5301d0219c
target/ppc: added the instructions PLXV and PSTXV
...
Implemented the instructions plxv and pstxv using decodetree
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.castro@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-17-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Lucas Mateus Castro (alqotel)
226ce506b1
target/ppc: added the instructions LXVPX and STXVPX
...
Implemented the instructions lxvpx and stxvpx using decodetree
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.castro@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-16-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Lucas Mateus Castro (alqotel)
96fa263247
target/ppc: added the instructions LXVP and STXVP
...
Implemented the instructions lxvp and stxvp using decodetree
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.castro@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-15-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Lucas Mateus Castro (alqotel)
70426b5bb7
target/ppc: moved stxvx and lxvx from legacy to decodtree
...
Moved stxvx and lxvx implementation from the legacy system to
decodetree.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.castro@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-14-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Lucas Mateus Castro (alqotel)
72b70d5c3c
target/ppc: moved stxv and lxv from legacy to decodtree
...
Moved stxv and lxv implementation from the legacy system to
decodetree.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.castro@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-13-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:53 +11:00
Matheus Ferst
c2aecae108
target/ppc: receive high/low as argument in get/set_cpu_vsr
...
Changes get_cpu_vsr to receive a new argument indicating whether the
high or low part of the register is being accessed. This change improves
consistency between the interfaces used to access Vector and VSX
registers and helps to handle endianness in some cases.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20211104123719.323713-12-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-11-09 10:32:52 +11:00
Giuseppe Musacchio
861f10fd52
target/ppc: Fix load endianness for lxvwsx/lxvdsx
...
TARGET_WORDS_BIGENDIAN may not match the machine endianness if that's a
runtime-configurable parameter.
Fixes: bcb0b7b1a1
Fixes: afae37d98a
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/212
Signed-off-by: Giuseppe Musacchio <thatlemon@gmail.com >
Message-Id: <20210518133020.58927-1-thatlemon@gmail.com >
Tested-by: Paul A. Clarke <pc@us.ibm.com >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:44:04 +10:00
Giuseppe Musacchio
bcb0b7b1a1
ppc/translate: Rewrite gen_lxvdsx to use gvec primitives
...
Make the implementation match the lxvwsx one.
The code is now shorter smaller and potentially faster as the
translation will use the host SIMD capabilities if available.
No functional change.
Signed-off-by: Giuseppe Musacchio <thatlemon@gmail.com >
Message-Id: <a463dea379da4cb3a22de49c678932f74fb15dd7.1604912739.git.thatlemon@gmail.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2020-12-14 15:54:09 +11:00
LemonBoy
afae37d98a
ppc/translate: Implement lxvwsx opcode
...
Implement the "Load VSX Vector Word & Splat Indexed" opcode, introduced
in Power ISA v3.0.
Buglink: https://bugs.launchpad.net/qemu/+bug/1793608
Signed-off-by: Giuseppe Musacchio <thatlemon@gmail.com >
Message-Id: <d7d533e18c2bc10d924ee3e09907ff2b41fddb3a.1604912739.git.thatlemon@gmail.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2020-11-24 11:34:18 +11:00
Paolo Bonzini
139c1837db
meson: rename included C source files to .c.inc
...
With Makefiles that have automatically generated dependencies, you
generated includes are set as dependencies of the Makefile, so that they
are built before everything else and they are available when first
building the .c files.
Alternatively you can use a fine-grained dependency, e.g.
target/arm/translate.o: target/arm/decode-neon-shared.inc.c
With Meson you have only one choice and it is a third option, namely
"build at the beginning of the corresponding target"; the way you
express it is to list the includes in the sources of that target.
The problem is that Meson decides if something is a source vs. a
generated include by looking at the extension: '.c', '.cc', '.m', '.C'
are sources, while everything else is considered an include---including
'.inc.c'.
Use '.c.inc' to avoid this, as it is consistent with our other convention
of using '.rst.inc' for included reStructuredText files. The editorconfig
file is adjusted.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2020-08-21 06:18:30 -04:00