aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/picochip/picochip.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/picochip/picochip.c')
-rw-r--r--gcc/config/picochip/picochip.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/config/picochip/picochip.c b/gcc/config/picochip/picochip.c
index a0686bd..0667656 100644
--- a/gcc/config/picochip/picochip.c
+++ b/gcc/config/picochip/picochip.c
@@ -1200,8 +1200,7 @@ picochip_legitimate_address_register (rtx x, unsigned strict)
/* Determine whether the given constant is in the range required for
the given base register. */
static int
-picochip_const_ok_for_base (enum machine_mode mode, int regno, int offset,
- int strict)
+picochip_const_ok_for_base (enum machine_mode mode, int regno, int offset)
{
HOST_WIDE_INT corrected_offset;
@@ -1209,17 +1208,16 @@ picochip_const_ok_for_base (enum machine_mode mode, int regno, int offset,
{
if (GET_MODE_SIZE(mode) <= 4)
{
- /* We can allow incorrect offsets if strict is 0. If strict is 1,
- we are in reload and these memory accesses need to be changed. */
- if (offset % GET_MODE_SIZE (mode) != 0 && strict == 1)
+ /* We used to allow incorrect offsets if strict is 0. But, this would
+ then rely on reload doing the right thing. We have had problems
+ there before, and on > 4.3 compiler, there are no benefits. */
+ if (offset % GET_MODE_SIZE (mode) != 0)
return 0;
corrected_offset = offset / GET_MODE_SIZE (mode);
}
else
{
- /* We can allow incorrect offsets if strict is 0. If strict is 1,
- we are in reload and these memory accesses need to be changed. */
- if (offset % 4 != 0 && strict == 1)
+ if (offset % 4 != 0)
return 0;
corrected_offset = offset / 4;
}
@@ -1272,7 +1270,7 @@ picochip_legitimate_address_p (int mode, rtx x, unsigned strict)
picochip_legitimate_address_register (base, strict) &&
CONST_INT == GET_CODE (offset) &&
picochip_const_ok_for_base (mode, REGNO (base),
- INTVAL (offset),strict));
+ INTVAL (offset)));
break;
}