Bug 443033

Summary: Add support for the ISA 3.0 mcrxrx instruction
Product: [Developer tools] valgrind Reporter: Carl Love <cel>
Component: vexAssignee: Julian Seward <jseward>
Status: CLOSED FIXED    
Severity: normal CC: will_schmidt
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Carl Love 2021-09-27 21:10:12 UTC
Valgrind currently does not have support for the ISA3.0  mcrxrx instruction.

The mcrxr instruction is supported up to ISA 2.07.  In ISA 3.0 the mcrxrx instruction is introduce to replace the mcrxr instruction.  The regression test is being compiled for ISA 2.07 not ISA 3.0.  Need to fix the compile flags so the test is properly compiled for ISA 2.07.  There needs to be a new ISA 3.0 test for the mcrxrx instruction
Comment 1 Carl Love 2021-09-30 22:52:14 UTC
Committed patch to add support for the mxrxrx instruction and the testcase
for the instruction.


commit a3c3f5394a77c641de19df1b59a7f544e5e0470a (HEAD -> master, origin/master, origin/HEAD)
Author: Carl Love <cel@us.ibm.com>
Date:   Wed Sep 29 21:20:30 2021 +0000

    New test for the ISA 3.0 mcrxrx instruction.
    
    Add new test.

commit 7bd75320a0ba995be90e469fe4f26f4a925875b9
Author: Carl Love <cel@us.ibm.com>
Date:   Thu Sep 9 19:06:00 2021 +0000

    Add support for the mcrxrx instruction.
    
    The mcrxrx instruction was introduced in ISA 3.0. It was missed when the
    ISA 3.0 support was added to Valgrind.
    
    The mcrxr instruction is not supported on ISA 3.0 and beyond. The
    instructions both do a move to the condition register however the mcrxrx
    moves [OV|OV32|CA|CA32].  Where the mcrxr instruction moves XER[32:35]
    (S0, OV, and CA bits) to the CR.