On 2/22/22 04:36, matheus.fe...@eldorado.org.br wrote:
From: "Lucas Mateus Castro (alqotel)"<lucas.cas...@eldorado.org.br>
Moved the instructions vmulesb, vmulosb, vmuleub, vmuloub,
vmulesh, vmulosh, vmuleuh, vmulouh, vmulesw, vmulosw,
muleuw and vmulouw from legacy to decodetree. Implemented
the instructions vmulesd, vmulosd, vmuleud, vmuloud.
Signed-off-by: Lucas Mateus Castro (alqotel)<lucas.ara...@eldorado.org.br>
Signed-off-by: Matheus Ferst<matheus.fe...@eldorado.org.br>
---
target/ppc/helper.h | 28 +++++++++-------
target/ppc/insn32.decode | 22 ++++++++++++
target/ppc/int_helper.c | 36 ++++++++++++++------
target/ppc/translate/vmx-impl.c.inc | 52 +++++++++++++++++++----------
target/ppc/translate/vmx-ops.c.inc | 15 ++-------
tcg/ppc/tcg-target.c.inc | 6 ++++
6 files changed, 107 insertions(+), 52 deletions(-)
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
+void helper_VMULESD(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+ muls64(&r->VsrD(1), &r->VsrD(0), a->VsrSD(0), b->VsrSD(0));
+}
+void helper_VMULOSD(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+ muls64(&r->VsrD(1), &r->VsrD(0), a->VsrSD(1), b->VsrSD(1));
+}
+void helper_VMULEUD(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+ mulu64(&r->VsrD(1), &r->VsrD(0), a->VsrD(0), b->VsrD(0));
+}
+void helper_VMULOUD(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+ mulu64(&r->VsrD(1), &r->VsrD(0), a->VsrD(1), b->VsrD(1));
+}
Did I mention before that these are trivially implemented inline?
r~