]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Rewrite pushfl<mode>2 and popfl<mode>1 as unspecs
authorUros Bizjak <ubizjak@gmail.com>
Mon, 13 Nov 2023 22:55:41 +0000 (23:55 +0100)
committerUros Bizjak <ubizjak@gmail.com>
Mon, 13 Nov 2023 22:55:41 +0000 (23:55 +0100)
commit10f12d327a85dc0ef83291c7271763b034e69cf2
treef8be0029bfd652d9ab07bf51297c524872b501a7
parentc75bab7274fe60fb2def8acf06ee9f4f856ce1ac
i386: Rewrite pushfl<mode>2 and popfl<mode>1 as unspecs

Flags reg is valid only with CC mode.

gcc/ChangeLog:

* config/i386/i386-expand.h (gen_pushfl): New prototype.
(gen_popfl): Ditto.
* config/i386/i386-expand.cc (ix86_expand_builtin)
[case IX86_BUILTIN_READ_FLAGS]: Use gen_pushfl.
[case IX86_BUILTIN_WRITE_FLAGS]: Use gen_popfl.
* config/i386/i386.cc (gen_pushfl): New function.
(gen_popfl): Ditto.
* config/i386/i386.md (unspec): Add UNSPEC_PUSHFL and UNSPEC_POPFL.
(@pushfl<mode>2): Rename from *pushfl<mode>2.
Rewrite as unspec using UNSPEC_PUSHFL.
(@popfl<mode>1): Rename from *popfl<mode>1.
Rewrite as unspec using UNSPEC_POPFL.
gcc/config/i386/i386-expand.cc
gcc/config/i386/i386-expand.h
gcc/config/i386/i386.cc
gcc/config/i386/i386.md