diff options
author | Hongyu Wang <hongyu.wang@intel.com> | 2021-06-30 14:38:31 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2021-07-02 14:32:56 +0800 |
commit | 1aeefa5720a71e622e2f26bf10ec8e7ecbd76f4c (patch) | |
tree | d1cca20e8b8850c9747f5fc4eb15b123239744d0 /gcc/tree-ssa-loop-im.c | |
parent | 01d402c5e0ac1ddf5618bbe316b50067625fda46 (diff) | |
download | gcc-1aeefa5720a71e622e2f26bf10ec8e7ecbd76f4c.zip gcc-1aeefa5720a71e622e2f26bf10ec8e7ecbd76f4c.tar.gz gcc-1aeefa5720a71e622e2f26bf10ec8e7ecbd76f4c.tar.bz2 |
Clear odata for aes(enc|dec)(wide)?kl intrinsics when ZF is set.
For Keylocker aesenc/aesdec intrinsics, current implementation
moves idata to odata unconditionally, which causes safety issue when
the instruction meets runtime error. So we add a branch to clear
odata when ZF is set after instruction exectution.
gcc/ChangeLog:
* config/i386/i386-expand.c (ix86_expand_builtin):
Add branch to clear odata when ZF is set for asedecenc_expand
and wideaesdecenc_expand.
gcc/testsuite/ChangeLog:
* gcc.target/i386/keylocker-aesdec128kl.c: Update test.
* gcc.target/i386/keylocker-aesdec256kl.c: Likewise.
* gcc.target/i386/keylocker-aesdecwide128kl.c: Likewise.
* gcc.target/i386/keylocker-aesdecwide256kl.c: Likewise.
* gcc.target/i386/keylocker-aesenc128kl.c: Likewise.
* gcc.target/i386/keylocker-aesenc256kl.c: Likewise.
* gcc.target/i386/keylocker-aesencwide128kl.c: Likewise.
* gcc.target/i386/keylocker-aesencwide256kl.c: Likewise.
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
0 files changed, 0 insertions, 0 deletions