aboutsummaryrefslogtreecommitdiff
path: root/mkdep
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2020-08-13 20:54:16 +0200
committerUros Bizjak <ubizjak@gmail.com>2020-08-13 20:55:09 +0200
commitb5034abbaa49f15646c83224711447aa1ed31756 (patch)
tree6128575a1e4333f90386e7d217b7ff7abe088d75 /mkdep
parent0ad7e730c142ef6cd0ddc1491a89a7f330caa887 (diff)
downloadgcc-b5034abbaa49f15646c83224711447aa1ed31756.zip
gcc-b5034abbaa49f15646c83224711447aa1ed31756.tar.gz
gcc-b5034abbaa49f15646c83224711447aa1ed31756.tar.bz2
i386: Improve CET builtin expanders.
Several fixes to CET builtin expanders: a) Split out explicit zeroing of RDSSP output operand. b) Use DImode memory operand for RSTORSSP and CLRSSBSY instructions. c) Use parameterized pattern names to simplify calling of named patterns. 2020-08-13 Uroš Bizjak <ubizjak@gmail.com> gcc/ChangeLog: * config/i386/i386-builtin.def (CET_NORMAL): Merge to CET BDESC array. (__builtin_ia32_rddspd, __builtin_ia32_rddspq, __builtin_ia32_incsspd) (__builtin_ia32_incsspq, __builtin_ia32_wrssd, __builtin_ia32_wrssq) (__builtin_ia32_wrussd, __builtin_ia32_wrussq): Use CODE_FOR_nothing. * config/i386/i386-builtins.c: Remove handling of CET_NORMAL builtins. * config/i386/i386.md (@rdssp<mode>): Implement as parametrized name pattern. Use SWI48 mode iterator. Introduce input operand and remove explicit XOR zeroing from insn template. (@incssp<mode>): Implement as parametrized name pattern. Use SWI48 mode iterator. (@wrss<mode>): Ditto. (@wruss<mode>): Ditto. (rstorssp): Remove expander. Rename insn pattern from *rstorssp<mode>. Use DImode memory operand. (clrssbsy): Remove expander. Rename insn pattern from *clrssbsy<mode>. Use DImode memory operand. (save_stack_nonlocal): Update for parametrized name patterns. Use cleared register as an argument to gen_rddsp. (restore_stack_nonlocal): Update for parametrized name patterns. * config/i386/i386-expand.c (ix86_expand_builtin): [case IX86_BUILTIN_RDSSPD, case IX86_BUILTIN_RDSSPQ]: Expand here. [case IX86_BUILTIN_INCSSPD, case IX86_BUILTIN_INCSSPQ]: Ditto. [case IX86_BUILTIN_RSTORSSP, case IX86_BUILTIN_CLRSSBSY]: Generate DImode memory operand. [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ] [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]: Update for parameterized name patterns.
Diffstat (limited to 'mkdep')
0 files changed, 0 insertions, 0 deletions