Bug 382563

Summary: MIPS MSA ASE support
Product: [Developer tools] valgrind Reporter: Tamara Vlahovic <tamara.vlahovic>
Component: generalAssignee: Julian Seward <jseward>
Status: RESOLVED FIXED    
Severity: normal CC: aleksandar.rikalo, jseward, mips32r2
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: mips_msa_01 - Introduces new Iops in VEX necessary for implementing some MSA V128 operations
mips_msa_02 - Adds support for new Iops in Memcheck.
mips_msa_03 - Implementation of MSA ASE for VEX.
mips_msa_04 - MIPS specific detection of MSA ASE
mips_msa_05 - Adds support for guest V128 registers on MIPS in Memcheck
mips_msa_06 - MSA regression tests
mips_msa_03 - Implementation of MSA ASE for VEX.
mips_msa_07 - git-ignore for MSA tests
MIPS MSA 1/5 - Introduces new Iops in VEX&Memcheck necessary for implementing some MSA V128 operations
MIPS MSA 2/5 - Full support of MIPS SIMD Architecture Module (MSA) instruction set for VEX
MIPS MSA 3/5 - Detecting presence of MSA capabilities
MIPS MSA 4/5 - Adds support for guest V128 registers on MIPS in Memcheck
MIPS MSA 5/5 - MSA regression tests
MIPS MSA 5/5 - MSA regression tests

Description Tamara Vlahovic 2017-07-21 11:53:41 UTC
Created attachment 106775 [details]
mips_msa_01 - Introduces new Iops in VEX necessary for implementing some MSA V128 operations

Next few patches add support for MIPS MSA ASE. This is well tested on MIPS. Also regression tests on X86 were run.

mips_msa_01.diff - Introduces new Iops in VEX necessary for implementing some MSA V128 operations:
       Iop_Scale2_32Fx4, Iop_Scale2_64Fx2,
       Iop_Log2_32Fx4, Iop_Log2_64Fx2,
       Iop_F32x4_2toQ16x8, Iop_F64x2_2toQ32x4,
       Iop_PackOddLanes8x16, Iop_PackEvenLanes8x16,
       Iop_PackOddLanes16x8, Iop_PackEvenLanes16x8,
       Iop_PackOddLanes32x4, Iop_PackEvenLanes32x4.

mips_msa_02.diff - Adds support for new Iops in Memcheck.

mips_msa_03.diff - Is implementation of MSA ASE for VEX. MIPS specific patch which adds support for disassembling of MSA instructions, selection of instructions for implemented (view patch comment) Iops, and generation of MSA instructions.
 
mips_msa_04.diff - MIPS specific detection of MSA ASE (hwcaps, configure, etc).

mips_msa_05.diff - MIPS specific. Adds support for guest V128 registers on MIPS in Memcheck

mips_msa_06.diff - Adds set of regresion tests for MIPS MSA in none.
Comment 1 Tamara Vlahovic 2017-07-21 11:54:48 UTC
Created attachment 106776 [details]
mips_msa_02 - Adds support for new Iops in Memcheck.
Comment 2 Tamara Vlahovic 2017-07-21 11:56:07 UTC
Created attachment 106777 [details]
mips_msa_03 -  Implementation of MSA ASE for VEX.
Comment 3 Tamara Vlahovic 2017-07-21 11:57:09 UTC
Created attachment 106778 [details]
mips_msa_04 - MIPS specific detection of MSA ASE
Comment 4 Tamara Vlahovic 2017-07-21 11:58:01 UTC
Created attachment 106779 [details]
mips_msa_05 - Adds support for guest V128 registers on MIPS in Memcheck
Comment 5 Tamara Vlahovic 2017-07-21 12:02:20 UTC
Created attachment 106780 [details]
mips_msa_06 - MSA regression tests

This is zipped patch.
Comment 6 Petar Jovanovic 2017-08-02 13:59:40 UTC
(In reply to Tamara Vlahovic from comment #0)
> Introduces new Iops in VEX necessary for implementing
> some MSA V128 operations:
>        Iop_Scale2_32Fx4, Iop_Scale2_64Fx2,
>        Iop_Log2_32Fx4, Iop_Log2_64Fx2,
>        Iop_F32x4_2toQ16x8, Iop_F64x2_2toQ32x4,
>        Iop_PackOddLanes8x16, Iop_PackEvenLanes8x16,
>        Iop_PackOddLanes16x8, Iop_PackEvenLanes16x8,
>        Iop_PackOddLanes32x4, Iop_PackEvenLanes32x4.

Julian, can you take a look at these?
Comment 7 Tamara Vlahovic 2017-08-10 14:28:25 UTC
Have anybody had time to take a look at these patches?
Comment 8 Tamara Vlahovic 2017-09-06 14:21:30 UTC
Created attachment 107721 [details]
mips_msa_03 - Implementation of MSA ASE for VEX.

Rebased after new allocator.
Comment 9 Tamara Vlahovic 2017-09-06 14:23:50 UTC
Created attachment 107722 [details]
mips_msa_07 - git-ignore for MSA tests
Comment 10 Tamara Vlahovic 2017-09-15 15:57:00 UTC
Can somebody take a look at these patches?
Comment 11 Petar Jovanovic 2017-10-10 14:19:56 UTC
(In reply to Tamara Vlahovic from comment #8)
> Created attachment 107721 [details]
> mips_msa_03 - Implementation of MSA ASE for VEX.
> 
Can you please do some refactoring of this patch in a way that you do not have very large functions, most particularly disMSAInstr_MIPS_WRK?
Comment 12 Aleksandar Rikalo 2017-10-24 13:52:26 UTC
Created attachment 108540 [details]
MIPS MSA 1/5 - Introduces new Iops in VEX&Memcheck necessary for implementing some MSA V128 operations
Comment 13 Aleksandar Rikalo 2017-10-24 13:54:38 UTC
Created attachment 108541 [details]
MIPS MSA 2/5 - Full support of MIPS SIMD Architecture Module (MSA) instruction set for VEX
Comment 14 Aleksandar Rikalo 2017-10-24 13:55:56 UTC
Created attachment 108542 [details]
MIPS MSA 3/5 - Detecting presence of MSA capabilities
Comment 15 Aleksandar Rikalo 2017-10-24 13:57:26 UTC
Created attachment 108543 [details]
MIPS MSA 4/5 - Adds support for guest V128 registers on MIPS in Memcheck
Comment 16 Aleksandar Rikalo 2017-10-24 14:05:42 UTC
Created attachment 108545 [details]
MIPS MSA 5/5 - MSA regression tests
Comment 17 Aleksandar Rikalo 2017-10-24 14:16:27 UTC
Hi Petar,

Slightly reorganized, refactored and re-based patches are ready.
Comment 18 Aleksandar Rikalo 2017-10-27 13:17:01 UTC
Created attachment 108585 [details]
MIPS MSA 5/5 - MSA regression tests
Comment 19 Petar Jovanovic 2017-10-27 22:48:16 UTC
I have committed the changes.
Minor code-style issues have been fixed, but generally, this is great work, thank you for contributing it.
Comment 20 Julian Seward 2018-07-25 05:23:48 UTC
Petar, can this be closed now?
Comment 21 Petar Jovanovic 2018-07-27 17:04:57 UTC
(In reply to Julian Seward from comment #20)
> Petar, can this be closed now?

Yes, it can.