From: Bin Cheng Date: Mon, 21 Jul 2014 12:10:34 +0000 (+0000) Subject: arm.c (output_move_neon): Handle REG explicitly. X-Git-Tag: misc/gupc_5_2_0_release~48^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8cde4e713af3f47e8fe7fefaa64ba404d91efdd8;p=thirdparty%2Fgcc.git arm.c (output_move_neon): Handle REG explicitly. * config/arm/arm.c (output_move_neon): Handle REG explicitly. From-SVN: r212892 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7f12a75c572b..fc71956c4a8e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2014-07-21 Bin Cheng + + * config/arm/arm.c (output_move_neon): Handle REG explicitly. + 2014-07-21 Uros Bizjak PR target/61855 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 942df7d3c13d..777495ec17ef 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -18551,6 +18551,20 @@ output_move_neon (rtx *operands) /* FIXME: Not currently enabled in neon_vector_mem_operand. */ gcc_unreachable (); + case REG: + /* We have to use vldm / vstm for too-large modes. */ + if (nregs > 1) + { + if (nregs > 4) + templ = "v%smia%%?\t%%m0, %%h1"; + else + templ = "v%s1.64\t%%h1, %%A0"; + + ops[0] = mem; + ops[1] = reg; + break; + } + /* Fall through. */ case LABEL_REF: case PLUS: { @@ -18584,14 +18598,7 @@ output_move_neon (rtx *operands) } default: - /* We have to use vldm / vstm for too-large modes. */ - if (nregs > 4) - templ = "v%smia%%?\t%%m0, %%h1"; - else - templ = "v%s1.64\t%%h1, %%A0"; - - ops[0] = mem; - ops[1] = reg; + gcc_unreachable (); } sprintf (buff, templ, load ? "ld" : "st");