diff options
Diffstat (limited to 'gcc/config/mn10300/mn10300.c')
-rw-r--r-- | gcc/config/mn10300/mn10300.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index 349ed5a5c8a..7abc61dabf1 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -2227,7 +2227,7 @@ mn10300_address_cost (rtx x, machine_mode mode ATTRIBUTE_UNUSED, return speed ? 2 : 6; default: - return rtx_cost (x, MEM, 0, speed); + return rtx_cost (x, Pmode, MEM, 0, speed); } } @@ -2341,13 +2341,14 @@ mn10300_memory_move_cost (machine_mode mode ATTRIBUTE_UNUSED, to represent cycles. Size-relative costs are in bytes. */ static bool -mn10300_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED, - int *ptotal, bool speed) +mn10300_rtx_costs (rtx x, machine_mode mode, int outer_code, + int opno ATTRIBUTE_UNUSED, int *ptotal, bool speed) { /* This value is used for SYMBOL_REF etc where we want to pretend we have a full 32-bit constant. */ HOST_WIDE_INT i = 0x12345678; int total; + int code = GET_CODE (x); switch (code) { @@ -2433,7 +2434,7 @@ mn10300_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED, i = INTVAL (XEXP (x, 1)); if (i == 1 || i == 4) { - total = 1 + rtx_cost (XEXP (x, 0), PLUS, 0, speed); + total = 1 + rtx_cost (XEXP (x, 0), mode, PLUS, 0, speed); goto alldone; } } @@ -2489,7 +2490,7 @@ mn10300_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED, break; case MEM: - total = mn10300_address_cost (XEXP (x, 0), GET_MODE (x), + total = mn10300_address_cost (XEXP (x, 0), mode, MEM_ADDR_SPACE (x), speed); if (speed) total = COSTS_N_INSNS (2 + total); |