diff options
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 23ab50f..58b0bd04 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -1380,8 +1380,12 @@ maybe_fix_stack_asms () break; default: - cls = (int) reg_class_subunion[cls][(int) REG_CLASS_FROM_LETTER (c)]; - + if (EXTRA_ADDRESS_CONSTRAINT (c)) + cls = (int) reg_class_subunion[cls] + [(int) MODE_BASE_REG_CLASS (VOIDmode)]; + else + cls = (int) reg_class_subunion[cls] + [(int) REG_CLASS_FROM_LETTER (c)]; } } } |