]> git.ipfire.org Git - thirdparty/gcc.git/commit
or1k: Allow SImode for condition flag register
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 3 May 2026 21:08:51 +0000 (05:08 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 5 May 2026 21:43:08 +0000 (05:43 +0800)
commit710581c80b2fd39fa7a8674eccf7dca8cbc7c9c0
tree73ab3149592b5cce8517523dff6dcbef4926c382
parentd54aaab350d4224c458b50af473b5ea6bb9e14a4
or1k: Allow SImode for condition flag register

Commit

eb2ea476db2 emit-rtl: Allow extra checks for paradoxical subregs [PR119966]

changed validate_subreg to return false on the paradoxical SImode subreg
of the OpenRISC condition flag register (reg:BI sr_f), which triggered

internal compiler error: in emit_move_multi_word, at expr.cc:4497

c0694f95f59 or1k: Fix ICE in libgcc caused by recent validate_subreg changes

changed or1k_can_change_mode_class to allow changing flags mode from BI
to SI.  But or1k_hard_regno_mode_ok still returns false for condition
flag register in SImode.  Update or1k_hard_regno_mode_ok to also allow
condition flag register in SImode.

Tested with or1k Linux cross compiler for or1k glibc build.

gcc/

PR target/120587
PR target/125155
* config/or1k/or1k.cc (or1k_hard_regno_mode_ok): Allow condition
condition flag register in SImode.

gcc/testsuite/

PR target/120587
PR target/125155
* gcc.target/or1k/pr125155.c: New test.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
gcc/config/or1k/or1k.cc
gcc/testsuite/gcc.target/or1k/pr125155.c [new file with mode: 0644]