Message ID | 1571311659-15556-1-git-send-email-stefan.brankovic@rt-rk.com (mailing list archive) |
---|---|
Headers | show |
Series | target/ppc: Optimize emulation of some Altivec instructions | expand |
On Thursday, October 17, 2019, Stefan Brankovic <stefan.brankovic@rt-rk.com> wrote: > Optimize emulation of ten Altivec instructions: lvsl, lvsr, vsl, vsr, > vpkpx, > vgbbd, vclzb, vclzh, vclzw, vclzd, vupkhpx and vupklpx. > > ten -> twelve > This series buils up on and complements > buils -> builds > recent work of Thomas Murta, Mark > Cave-Ayland and Richard Henderson in the same area. It is based on > devising TCG > translation implementation for selected instructions rather than using > helpers. > The selected instructions are most of the time idiosyncratic to ppc > platform, > so relatively complex TCG translation (without direct mapping to host > instruction that is not possible in these cases) seems to be the best > option, > and that approach is presented in this series. The performance improvements > are significant in all cases. > > V7: > > Added optimization for vupkhpx and vupklpx instructions. > > V6: > > Rebased series to the latest qemu code. > Excluded all patches that are already accepted. > > V5: > > Fixed vpkpx bug and added it back in patch. > Fixed graphical distortions on OSX 10.3 and 10.4. > Removed conversion of vmrgh and vmrgl instructions to vector operations for > further investigation. > > V4: > > Addressed Richard's Henderson's suggestions. > Removed vpkpx's optimization for further investigation on graphical > distortions > it caused on OSX 10.2-4 guests. > Added opcodes for vector vmrgh(b|h|w) and vmrgl(b|h|w) in tcg. > Implemented vector vmrgh and vmrgl instructions for i386. > Converted vmrgh and vmrgl instructions to vector operations. > > V3: > > Fixed problem during build. > > V2: > > Addressed Richard's Henderson's suggestions. > Fixed problem during build on patch 2/8. > Rebased series to the latest qemu code. > > Stefan Brankovic (3): > target/ppc: Optimize emulation of vclzh and vclzb instructions > target/ppc: Optimize emulation of vpkpx instruction > target/ppc: Optimize emulation of vupkhpx and vupklpx instructions > > target/ppc/helper.h | 5 - > target/ppc/int_helper.c | 50 ------ > target/ppc/translate/vmx-impl.inc.c | 326 ++++++++++++++++++++++++++++++ > +++++- > 3 files changed, 321 insertions(+), 60 deletions(-) > > -- > 2.7.4 > > >