Bug 495278

Summary: PowerPC instruction dcbf should allow the L field values of 4, 6 on ISA 3.0 and earlier, just ignore the value.
Product: [Developer tools] valgrind Reporter: Carl Love <cel>
Component: vexAssignee: Julian Seward <jseward>
Status: CLOSED FIXED    
Severity: normal    
Priority: NOR    
Version First Reported In: 3.24 GIT   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Carl Love 2024-10-24 00:36:46 UTC
Currently, the dcbf instruction on PowerPC is reporting the dcbf instruction with L = 6 on ISA 3.0 hardware as an error.  The actual hardware accepts L = 6.  The L field is actually only 2 bits on ISA 3.0 so it is technically a 2. 

Testing ISA 3.0 "accepts" L = 0 to 3, ISA 3.1 "accepts: L = 0 to 7.  Removed the L field check so valgrind will match the real
hardware.  For the purposes of Valgrind the dcbf instruction is a NOP anyway so it will not change the behavior of Valgrind.
Comment 1 Carl Love 2024-10-24 15:05:53 UTC
Issue fixed with the following Valgrind commit.

ommit 3b1a12795cc5cbb57dbf0219375229094c86122e (HEAD -> master, origin/master, origin/HEAD)
Author: Carl Love <cel@linux.ibm.com>
Date:   Wed Oct 23 18:25:23 2024 -0500

    PowerPC, dcbf instruction
    
    ISA 2.7 and ISA 3.0 "accepts" L = 0 to 3, ISA 3.1 "accepts: L = 0 to 7.
    Removed the L field check so valgrind will match the real hardware.  For
    the purposes of Valgrind the dcbf instruction is a NOP anyway so it will
    not change the behavior of Valgrind.
Comment 2 Carl Love 2024-10-24 15:06:47 UTC
Closing bugzilla.  Issue fixed, no nightly regression failures.
Comment 3 Carl Love 2024-10-24 15:07:08 UTC
Closing