or1k: Allow SImode for the condition flag register.
Fixes internal compiler errors on or1k by allowing SImode for the condition flag register.
This commit resolves an internal compiler error (ICE) on the OpenRISC (or1k) architecture related to subregister validation. Previous changes to subreg validation and mode changing triggered an ICE when the condition flag register was used in SImode. This commit updates or1k_hard_regno_mode_ok to allow the condition flag register to be used in SImode, resolving the ICEs. It was tested with an or1k Linux cross-compiler for or1k glibc builds.
In Details
The commit addresses issues arising from recent changes to validate_subreg and or1k_can_change_mode_class. Specifically, or1k_hard_regno_mode_ok was not updated to allow the condition flag register in SImode, leading to ICEs. The fix modifies or1k_hard_regno_mode_ok to permit this mode.
For Context
This commit fixes a bug in the GCC compiler for the OpenRISC (or1k) architecture. The OpenRISC architecture is a family of open-source hardware designs. The bug caused the compiler to crash with an internal compiler error (ICE) under certain conditions related to the condition flag register, which stores the results of comparisons. The fix allows the compiler to correctly handle the condition flag register in SImode, resolving the ICE.