diff options
Diffstat (limited to 'gcc/config/s390/s390.cc')
-rw-r--r-- | gcc/config/s390/s390.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc index d4e849b..0ff3fd5 100644 --- a/gcc/config/s390/s390.cc +++ b/gcc/config/s390/s390.cc @@ -11173,8 +11173,8 @@ s390_hard_regno_mode_ok (unsigned int regno, machine_mode mode) } break; case ADDR_REGS: - if (FRAME_REGNO_P (regno) && mode == Pmode) - return true; + if (FRAME_REGNO_P (regno)) + return mode == Pmode; /* fallthrough */ case GENERAL_REGS: @@ -16246,7 +16246,12 @@ s390_option_override_internal (struct gcc_options *opts, { /* Architecture mode defaults according to ABI. */ if (!(opts_set->x_target_flags & MASK_ZARCH)) - opts->x_target_flags |= MASK_ZARCH; + { + if (TARGET_64BIT) + opts->x_target_flags |= MASK_ZARCH; + else + opts->x_target_flags &= ~MASK_ZARCH; + } /* Set the march default in case it hasn't been specified on cmdline. */ if (!opts_set->x_s390_arch) |