qemu-e2k/target
Lucas Mateus Castro (alqotel) dc46167a22 target/ppc: Moved VMLADDUHM to decodetree and use gvec
This patch moves VMLADDUHM to decodetree a creates a gvec implementation
using mul_vec and add_vec.

rept    loop    master             patch
8       12500   0,01810500         0,00903100 (-50.1%)
25      4000    0,01739400         0,00747700 (-57.0%)
100     1000    0,01843600         0,00901400 (-51.1%)
500     200     0,02574600         0,01971000 (-23.4%)
2500    40      0,05921600         0,07121800 (+20.3%)
8000    12      0,15326700         0,21725200 (+41.7%)

The significant difference in performance when REPT is low and LOOP is
high I think is due to the fact that the new implementation has a higher
translation time, as when using a helper only 5 TCGop are used but with
the patch a total of 10 TCGop are needed (Power lacks a direct mul_vec
equivalent so this instruction is implemented with the help of 5 others,
vmuleu, vmulou, vmrgh, vmrgl and vpkum).

Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.araujo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20221019125040.48028-2-lucas.araujo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-10-28 13:15:22 -03:00
..
alpha target/alpha: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
arm target/arm: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
avr target/avr: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
cris target/cris: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
hexagon target/hexagon: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
hppa target/hppa: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
i386 Revert incorrect cflags initialization. 2022-10-26 10:53:41 -04:00
loongarch target/loongarch: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
m68k target/m68k: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
microblaze target/microblaze: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
mips target/mips: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
nios2 target/nios2: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
openrisc target/openrisc: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
ppc target/ppc: Moved VMLADDUHM to decodetree and use gvec 2022-10-28 13:15:22 -03:00
riscv Revert incorrect cflags initialization. 2022-10-26 10:53:41 -04:00
rx Revert incorrect cflags initialization. 2022-10-26 10:53:41 -04:00
s390x dump queue 2022-10-26 10:53:49 -04:00
sh4 target/sh4: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
sparc target/sparc: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
tricore target/tricore: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
xtensa target/xtensa: Convert to tcg_ops restore_state_to_opc 2022-10-26 11:11:28 +10:00
Kconfig hw/loongarch: Add support loongson3 virt machine type. 2022-06-06 18:09:03 +00:00
meson.build target/loongarch: Add target build suport 2022-06-06 18:09:03 +00:00