diff options
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 65ee274..2704dad 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -5490,16 +5490,15 @@ choose_reload_regs (chain) GET_MODE_CLASS (mode)); if ( -#ifdef CLASS_CANNOT_CHANGE_MODE - (TEST_HARD_REG_BIT - (reg_class_contents[(int) CLASS_CANNOT_CHANGE_MODE], i) - ? ! CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (last_reg), - need_mode) - : (GET_MODE_SIZE (GET_MODE (last_reg)) - >= GET_MODE_SIZE (need_mode))) -#else +#ifdef CANNOT_CHANGE_MODE_CLASS + (!REG_CANNOT_CHANGE_MODE_P (i, GET_MODE (last_reg), + need_mode) + || +#endif (GET_MODE_SIZE (GET_MODE (last_reg)) >= GET_MODE_SIZE (need_mode)) +#ifdef CANNOT_CHANGE_MODE_CLASS + ) #endif && reg_reloaded_contents[i] == regno && TEST_HARD_REG_BIT (reg_reloaded_valid, i) |