diff options
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -573,7 +573,8 @@ convert_move (rtx to, rtx from, int unsignedp) if (!((MEM_P (from) && ! MEM_VOLATILE_P (from) && direct_load[(int) to_mode] - && ! mode_dependent_address_p (XEXP (from, 0))) + && ! mode_dependent_address_p (XEXP (from, 0), + MEM_ADDR_SPACE (from))) || REG_P (from) || GET_CODE (from) == SUBREG)) from = force_reg (from_mode, from); @@ -591,7 +592,8 @@ convert_move (rtx to, rtx from, int unsignedp) if (!((MEM_P (from) && ! MEM_VOLATILE_P (from) && direct_load[(int) to_mode] - && ! mode_dependent_address_p (XEXP (from, 0))) + && ! mode_dependent_address_p (XEXP (from, 0), + MEM_ADDR_SPACE (from))) || REG_P (from) || GET_CODE (from) == SUBREG)) from = force_reg (from_mode, from); |