[PATCH] powerpc/sstep: Fix VSX instruction emulation
Ravi Bangoria
ravi.bangoria at linux.ibm.com
Fri Feb 26 22:09:59 AEDT 2021
On 2/25/21 8:49 AM, Jordan Niethe wrote:
> Commit af99da74333b ("powerpc/sstep: Support VSX vector paired storage
> access instructions") added loading and storing 32 word long data into
> adjacent VSRs. However the calculation used to determine if two VSRs
> needed to be loaded/stored inadvertently prevented the load/storing
> taking place for instructions with a data length less than 16 words.
>
> This causes the emulation to not function correctly, which can be seen
> by the alignment_handler selftest:
>
> $ ./alignment_handler
> [snip]
> test: test_alignment_handler_vsx_207
> tags: git_version:powerpc-5.12-1-0-g82d2c16b350f
> VSX: 2.07B
> Doing lxsspx: PASSED
> Doing lxsiwax: FAILED: Wrong Data
> Doing lxsiwzx: PASSED
> Doing stxsspx: PASSED
> Doing stxsiwx: PASSED
> failure: test_alignment_handler_vsx_207
> test: test_alignment_handler_vsx_300
> tags: git_version:powerpc-5.12-1-0-g82d2c16b350f
> VSX: 3.00B
> Doing lxsd: PASSED
> Doing lxsibzx: PASSED
> Doing lxsihzx: PASSED
> Doing lxssp: FAILED: Wrong Data
> Doing lxv: PASSED
> Doing lxvb16x: PASSED
> Doing lxvh8x: PASSED
> Doing lxvx: PASSED
> Doing lxvwsx: FAILED: Wrong Data
> Doing lxvl: PASSED
> Doing lxvll: PASSED
> Doing stxsd: PASSED
> Doing stxsibx: PASSED
> Doing stxsihx: PASSED
> Doing stxssp: PASSED
> Doing stxv: PASSED
> Doing stxvb16x: PASSED
> Doing stxvh8x: PASSED
> Doing stxvx: PASSED
> Doing stxvl: PASSED
> Doing stxvll: PASSED
> failure: test_alignment_handler_vsx_300
> [snip]
>
> Fix this by making sure all VSX instruction emulation correctly
> load/store from the VSRs.
>
> Fixes: af99da74333b ("powerpc/sstep: Support VSX vector paired storage access instructions")
> Signed-off-by: Jordan Niethe <jniethe5 at gmail.com>
Yikes!
Reviewed-by: Ravi Bangoria <ravi.bangoria at linux.ibm.com>
More information about the Linuxppc-dev
mailing list