diff options
author | Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | 2024-07-12 13:27:08 +0200 |
---|---|---|
committer | Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | 2024-07-12 13:27:08 +0200 |
commit | 56de68aba6cb9cf3022d9e303eec6c6cdb49ad4d (patch) | |
tree | 84362a6877f313e5e8d2542c78e635d54c92584c /gcc/dwarf2codeview.cc | |
parent | 7bcef7532b10040bb82567136a208d0c4560767d (diff) | |
download | gcc-56de68aba6cb9cf3022d9e303eec6c6cdb49ad4d.zip gcc-56de68aba6cb9cf3022d9e303eec6c6cdb49ad4d.tar.gz gcc-56de68aba6cb9cf3022d9e303eec6c6cdb49ad4d.tar.bz2 |
s390: Align *cjump_64 and *icjump_64
During machine reorg we optimize backward jumps and transform insns as
e.g.
(jump_insn 118 117 119 (set (pc)
(if_then_else (ne (reg:CCRAW 33 %cc)
(const_int 8 [0x8]))
(label_ref 134)
(pc))) "dec_math_1.f90":204:8 discrim 1 2161 {*cjump_64}
(expr_list:REG_DEAD (reg:CCRAW 33 %cc)
(int_list:REG_BR_PROB 719407028 (nil)))
-> 134)
into
(jump_insn 118 117 432 (set (pc)
(if_then_else (ne (reg:CCRAW 33 %cc)
(const_int 8 [0x8]))
(pc)
(label_ref 433))) "dec_math_1.f90":204:8 discrim 1 -1
(expr_list:REG_DEAD (reg:CCRAW 33 %cc)
(int_list:REG_BR_PROB 719407028 (nil)))
-> 433)
The latter is not recognized anymore since *icjump_64 only matches
CC_REGNUM against zero. Fixed by aligning *cjump_64 and *icjump_64.
gcc/ChangeLog:
* config/s390/s390.md (*icjump_64): Allow raw CC comparisons,
i.e., any constant integer between 0 and 15 for CC comparisons.
Diffstat (limited to 'gcc/dwarf2codeview.cc')
0 files changed, 0 insertions, 0 deletions