diff options
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/alpha/alpha.c | 3 | ||||
-rw-r--r-- | gcc/config/avr/avr.c | 2 | ||||
-rw-r--r-- | gcc/config/avr/avr.md | 2 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.c | 3 | ||||
-rw-r--r-- | gcc/config/m32r/m32r.c | 4 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.md | 18 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 3 | ||||
-rw-r--r-- | gcc/config/rx/rx.c | 2 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 5 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.c | 3 | ||||
-rw-r--r-- | gcc/config/vax/constraints.md | 3 | ||||
-rw-r--r-- | gcc/config/vax/predicates.md | 6 | ||||
-rw-r--r-- | gcc/config/vax/vax.c | 4 | ||||
-rw-r--r-- | gcc/config/vax/vax.md | 15 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa.c | 5 |
15 files changed, 48 insertions, 30 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 9aaa4f2..d726b5a 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -1043,7 +1043,8 @@ alpha_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, We can simplify the test since we know that the address must be valid. */ static bool -alpha_mode_dependent_address_p (const_rtx addr) +alpha_mode_dependent_address_p (const_rtx addr, + addr_space_t as ATTRIBUTE_UNUSED) { return GET_CODE (addr) == AND; } diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index f23a7e8..87ff531 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -1633,7 +1633,7 @@ avr_cannot_modify_jumps_p (void) with mov<mode> expanders in avr.md. */ static bool -avr_mode_dependent_address_p (const_rtx addr) +avr_mode_dependent_address_p (const_rtx addr, addr_space_t as ATTRIBUTE_UNUSED) { return GET_MODE (addr) != Pmode; } diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index d128770..b86f9b6 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -1183,7 +1183,7 @@ ;; "*addhq3" "*adduhq3" ;; "*addha3" "*adduha3" (define_insn "*add<mode>3" - [(set (match_operand:ALL2 0 "register_operand" "=r,d,!w ,d") + [(set (match_operand:ALL2 0 "register_operand" "=?r,d,!w ,d") (plus:ALL2 (match_operand:ALL2 1 "register_operand" "%0,0,0 ,0") (match_operand:ALL2 2 "nonmemory_or_const_operand" "r,s,IJ YIJ,n Ynn")))] "" diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 3dd071a..38a9228 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -2166,7 +2166,8 @@ h8300_get_index (rtx x, enum machine_mode mode, int *size) (the amount of decrement or increment being the length of the operand). */ static bool -h8300_mode_dependent_address_p (const_rtx addr) +h8300_mode_dependent_address_p (const_rtx addr, + addr_space_t as ATTRIBUTE_UNUSED) { if (GET_CODE (addr) == PLUS && h8300_get_index (XEXP (addr, 0), VOIDmode, 0) != XEXP (addr, 0)) diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index 4d89966..03360b6 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -62,7 +62,7 @@ static void block_move_call (rtx, rtx, rtx); static int m32r_is_insn (rtx); static bool m32r_legitimate_address_p (enum machine_mode, rtx, bool); static rtx m32r_legitimize_address (rtx, rtx, enum machine_mode); -static bool m32r_mode_dependent_address_p (const_rtx); +static bool m32r_mode_dependent_address_p (const_rtx, addr_space_t); static tree m32r_handle_model_attribute (tree *, tree, tree, int, bool *); static void m32r_print_operand (FILE *, rtx, int); static void m32r_print_operand_address (FILE *, rtx); @@ -2011,7 +2011,7 @@ m32r_legitimize_address (rtx x, rtx orig_x ATTRIBUTE_UNUSED, /* Worker function for TARGET_MODE_DEPENDENT_ADDRESS_P. */ static bool -m32r_mode_dependent_address_p (const_rtx addr) +m32r_mode_dependent_address_p (const_rtx addr, addr_space_t as ATTRIBUTE_UNUSED) { if (GET_CODE (addr) == LO_SUM) return true; diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index 00a69c7..82807d8 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -5610,7 +5610,8 @@ (match_operand:SI 2 "general_src_operand" "rmSi"))] "TARGET_68020 && TARGET_BITFIELD && (INTVAL (operands[1]) % 8) == 0 - && ! mode_dependent_address_p (XEXP (operands[0], 0))" + && ! mode_dependent_address_p (XEXP (operands[0], 0), + MEM_ADDR_SPACE (operands[0]))" { operands[0] = adjust_address (operands[0], SImode, INTVAL (operands[1]) / 8); @@ -5627,7 +5628,8 @@ && (INTVAL (operands[1]) == 8 || INTVAL (operands[1]) == 16) && INTVAL (operands[2]) % INTVAL (operands[1]) == 0 && (GET_CODE (operands[0]) == REG - || ! mode_dependent_address_p (XEXP (operands[0], 0)))" + || ! mode_dependent_address_p (XEXP (operands[0], 0), + MEM_ADDR_SPACE (operands[0])))" { if (REG_P (operands[0])) { @@ -5664,7 +5666,8 @@ (match_operand:SI 2 "const_int_operand" "n")))] "TARGET_68020 && TARGET_BITFIELD && (INTVAL (operands[2]) % 8) == 0 - && ! mode_dependent_address_p (XEXP (operands[1], 0))" + && ! mode_dependent_address_p (XEXP (operands[1], 0), + MEM_ADDR_SPACE (operands[1]))" { operands[1] = adjust_address (operands[1], SImode, INTVAL (operands[2]) / 8); @@ -5681,7 +5684,8 @@ && (INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16) && INTVAL (operands[3]) % INTVAL (operands[2]) == 0 && (GET_CODE (operands[1]) == REG - || ! mode_dependent_address_p (XEXP (operands[1], 0)))" + || ! mode_dependent_address_p (XEXP (operands[1], 0), + MEM_ADDR_SPACE (operands[1])))" { cc_status.flags |= CC_NOT_NEGATIVE; if (REG_P (operands[1])) @@ -5718,7 +5722,8 @@ (match_operand:SI 2 "const_int_operand" "n")))] "TARGET_68020 && TARGET_BITFIELD && (INTVAL (operands[2]) % 8) == 0 - && ! mode_dependent_address_p (XEXP (operands[1], 0))" + && ! mode_dependent_address_p (XEXP (operands[1], 0), + MEM_ADDR_SPACE (operands[1]))" { operands[1] = adjust_address (operands[1], SImode, INTVAL (operands[2]) / 8); @@ -5735,7 +5740,8 @@ && (INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16) && INTVAL (operands[3]) % INTVAL (operands[2]) == 0 && (GET_CODE (operands[1]) == REG - || ! mode_dependent_address_p (XEXP (operands[1], 0)))" + || ! mode_dependent_address_p (XEXP (operands[1], 0), + MEM_ADDR_SPACE (operands[1])))" { if (REG_P (operands[1])) { diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 211087b..96026bd 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -6463,7 +6463,8 @@ rs6000_debug_legitimate_address_p (enum machine_mode mode, rtx x, /* Implement TARGET_MODE_DEPENDENT_ADDRESS_P. */ static bool -rs6000_mode_dependent_address_p (const_rtx addr) +rs6000_mode_dependent_address_p (const_rtx addr, + addr_space_t as ATTRIBUTE_UNUSED) { return rs6000_mode_dependent_address_ptr (addr); } diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c index 472625e..43676d1 100644 --- a/gcc/config/rx/rx.c +++ b/gcc/config/rx/rx.c @@ -318,7 +318,7 @@ rx_is_restricted_memory_address (rtx mem, enum machine_mode mode) /* Implement TARGET_MODE_DEPENDENT_ADDRESS_P. */ static bool -rx_mode_dependent_address_p (const_rtx addr) +rx_mode_dependent_address_p (const_rtx addr, addr_space_t as ATTRIBUTE_UNUSED) { if (GET_CODE (addr) == CONST) addr = XEXP (addr, 0); diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index fa36901..32ac9f3 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -567,7 +567,7 @@ static rtx sparc_legitimize_tls_address (rtx); static rtx sparc_legitimize_pic_address (rtx, rtx); static rtx sparc_legitimize_address (rtx, rtx, enum machine_mode); static rtx sparc_delegitimize_address (rtx); -static bool sparc_mode_dependent_address_p (const_rtx); +static bool sparc_mode_dependent_address_p (const_rtx, addr_space_t); static bool sparc_pass_by_reference (cumulative_args_t, enum machine_mode, const_tree, bool); static void sparc_function_arg_advance (cumulative_args_t, @@ -4045,7 +4045,8 @@ sparc_legitimize_reload_address (rtx x, enum machine_mode mode, static bool -sparc_mode_dependent_address_p (const_rtx addr) +sparc_mode_dependent_address_p (const_rtx addr, + addr_space_t as ATTRIBUTE_UNUSED) { if (flag_pic && GET_CODE (addr) == PLUS) { diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index a6f2b54..782217c 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -671,7 +671,8 @@ xstormy16_legitimate_address_p (enum machine_mode mode ATTRIBUTE_UNUSED, or pre-decrement address. */ static bool -xstormy16_mode_dependent_address_p (const_rtx x) +xstormy16_mode_dependent_address_p (const_rtx x, + addr_space_t as ATTRIBUTE_UNUSED) { if (LEGITIMATE_ADDRESS_CONST_INT_P (x, 0) && ! LEGITIMATE_ADDRESS_CONST_INT_P (x, 6)) diff --git a/gcc/config/vax/constraints.md b/gcc/config/vax/constraints.md index e3266f6..6c0256b 100644 --- a/gcc/config/vax/constraints.md +++ b/gcc/config/vax/constraints.md @@ -99,7 +99,8 @@ (define_memory_constraint "Q" "operand is a MEM that does not have a mode-dependent address." (and (match_code "mem") - (match_test "!mode_dependent_address_p (XEXP (op, 0))"))) + (match_test "!mode_dependent_address_p (XEXP (op, 0), + MEM_ADDR_SPACE (op))"))) (define_memory_constraint "B" "" diff --git a/gcc/config/vax/predicates.md b/gcc/config/vax/predicates.md index 775ddcd..b15c281 100644 --- a/gcc/config/vax/predicates.md +++ b/gcc/config/vax/predicates.md @@ -79,9 +79,9 @@ (define_predicate "indexed_memory_operand" (match_code "mem") { - op = XEXP (op, 0); - return GET_CODE (op) != PRE_DEC && GET_CODE (op) != POST_INC - && mode_dependent_address_p (op); + rtx addr = XEXP (op, 0); + return GET_CODE (addr) != PRE_DEC && GET_CODE (addr) != POST_INC + && mode_dependent_address_p (addr, MEM_ADDR_SPACE (op)); }) (define_predicate "illegal_blk_memory_operand" diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c index 239b82c..e13ad8e 100644 --- a/gcc/config/vax/vax.c +++ b/gcc/config/vax/vax.c @@ -64,7 +64,7 @@ static rtx vax_builtin_setjmp_frame_value (void); static void vax_asm_trampoline_template (FILE *); static void vax_trampoline_init (rtx, tree, rtx); static int vax_return_pops_args (tree, tree, int); -static bool vax_mode_dependent_address_p (const_rtx); +static bool vax_mode_dependent_address_p (const_rtx, addr_space_t); /* Initialize the GCC target structure. */ #undef TARGET_ASM_ALIGNED_HI_OP @@ -1839,7 +1839,7 @@ vax_legitimate_address_p (enum machine_mode mode, rtx x, bool strict) thus (because the index scale factor is the length of the operand). */ static bool -vax_mode_dependent_address_p (const_rtx x) +vax_mode_dependent_address_p (const_rtx x, addr_space_t as ATTRIBUTE_UNUSED) { rtx xfoo0, xfoo1; diff --git a/gcc/config/vax/vax.md b/gcc/config/vax/vax.md index afc3129..342c0e1 100644 --- a/gcc/config/vax/vax.md +++ b/gcc/config/vax/vax.md @@ -782,7 +782,8 @@ "(INTVAL (operands[1]) == 8 || INTVAL (operands[1]) == 16) && INTVAL (operands[2]) % INTVAL (operands[1]) == 0 && (REG_P (operands[0]) - || ! mode_dependent_address_p (XEXP (operands[0], 0)))" + || ! mode_dependent_address_p (XEXP (operands[0], 0), + MEM_ADDR_SPACE (operands[0])))" "* { if (REG_P (operands[0])) @@ -810,7 +811,8 @@ "(INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16) && INTVAL (operands[3]) % INTVAL (operands[2]) == 0 && (REG_P (operands[1]) - || ! mode_dependent_address_p (XEXP (operands[1], 0)))" + || ! mode_dependent_address_p (XEXP (operands[1], 0), + MEM_ADDR_SPACE (operands[1])))" "* { if (REG_P (operands[1])) @@ -837,7 +839,8 @@ "(INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16) && INTVAL (operands[3]) % INTVAL (operands[2]) == 0 && (REG_P (operands[1]) - || ! mode_dependent_address_p (XEXP (operands[1], 0)))" + || ! mode_dependent_address_p (XEXP (operands[1], 0), + MEM_ADDR_SPACE (operands[1])))" "* { if (REG_P (operands[1])) @@ -960,7 +963,8 @@ || INTVAL (operands[2]) + INTVAL (operands[3]) > 32 || side_effects_p (operands[1]) || (MEM_P (operands[1]) - && mode_dependent_address_p (XEXP (operands[1], 0)))) + && mode_dependent_address_p (XEXP (operands[1], 0), + MEM_ADDR_SPACE (operands[1])))) return \"extv %3,%2,%1,%0\"; if (INTVAL (operands[2]) == 8) return \"rotl %R3,%1,%0\;cvtbl %0,%0\"; @@ -988,7 +992,8 @@ || INTVAL (operands[2]) + INTVAL (operands[3]) > 32 || side_effects_p (operands[1]) || (MEM_P (operands[1]) - && mode_dependent_address_p (XEXP (operands[1], 0)))) + && mode_dependent_address_p (XEXP (operands[1], 0), + MEM_ADDR_SPACE (operands[1])))) return \"extzv %3,%2,%1,%0\"; if (INTVAL (operands[2]) == 8) return \"rotl %R3,%1,%0\;movzbl %0,%0\"; diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index 987b6d7..83eab4b 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -126,7 +126,7 @@ static rtx fixup_subreg_mem (rtx); static struct machine_function * xtensa_init_machine_status (void); static rtx xtensa_legitimize_tls_address (rtx); static rtx xtensa_legitimize_address (rtx, rtx, enum machine_mode); -static bool xtensa_mode_dependent_address_p (const_rtx); +static bool xtensa_mode_dependent_address_p (const_rtx, addr_space_t); static bool xtensa_return_in_msb (const_tree); static void printx (FILE *, signed int); static void xtensa_function_epilogue (FILE *, HOST_WIDE_INT); @@ -1961,7 +1961,8 @@ xtensa_legitimize_address (rtx x, by default. */ static bool -xtensa_mode_dependent_address_p (const_rtx addr) +xtensa_mode_dependent_address_p (const_rtx addr, + addr_space_t as ATTRIBUTE_UNUSED) { return constantpool_address_p (addr); } |