aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Corallo <andrea.corallo@arm.com>2020-05-27 17:43:48 +0100
committerAndrea Corallo <andrea.corallo@arm.com>2020-05-28 11:29:25 +0200
commitdd019ef07358602a444f3e63f848aaece5c280f4 (patch)
tree4c470f2f7b133abda6375203034e2b67e13de497
parenta634157de1e83536123412b02aae184a9d590751 (diff)
downloadgcc-dd019ef07358602a444f3e63f848aaece5c280f4.zip
gcc-dd019ef07358602a444f3e63f848aaece5c280f4.tar.gz
gcc-dd019ef07358602a444f3e63f848aaece5c280f4.tar.bz2
arm: Fix unwanted fall-throughs in arm.c
gcc/ChangeLog 2020-05-28 Andrea Corallo <andrea.corallo@arm.com> * config/arm/arm.c (mve_vector_mem_operand): Fix unwanted fall-throughs.
-rw-r--r--gcc/config/arm/arm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index c396b5b..6b7ca82 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -13327,32 +13327,38 @@ mve_vector_mem_operand (machine_mode mode, rtx op, bool strict)
if (abs (val) <= 127)
return ((reg_no < LAST_ARM_REGNUM && reg_no != SP_REGNUM)
|| (!strict && reg_no >= FIRST_PSEUDO_REGISTER));
+ return FALSE;
case E_V8HImode:
case E_V8HFmode:
if (abs (val) <= 255)
return ((reg_no < LAST_ARM_REGNUM && reg_no != SP_REGNUM)
|| (!strict && reg_no >= FIRST_PSEUDO_REGISTER));
+ return FALSE;
case E_V8QImode:
case E_V4QImode:
if (abs (val) <= 127)
return (reg_no <= LAST_LO_REGNUM
|| (!strict && reg_no >= FIRST_PSEUDO_REGISTER));
+ return FALSE;
case E_V4HImode:
case E_V4HFmode:
if (val % 2 == 0 && abs (val) <= 254)
return (reg_no <= LAST_LO_REGNUM
|| (!strict && reg_no >= FIRST_PSEUDO_REGISTER));
+ return FALSE;
case E_V4SImode:
case E_V4SFmode:
if (val % 4 == 0 && abs (val) <= 508)
return ((reg_no < LAST_ARM_REGNUM && reg_no != SP_REGNUM)
|| (!strict && reg_no >= FIRST_PSEUDO_REGISTER));
+ return FALSE;
case E_V2DImode:
case E_V2DFmode:
case E_TImode:
if (val % 4 == 0 && val >= 0 && val <= 1020)
return ((reg_no < LAST_ARM_REGNUM && reg_no != SP_REGNUM)
|| (!strict && reg_no >= FIRST_PSEUDO_REGISTER));
+ return FALSE;
default:
return FALSE;
}