diff options
author | Bin Cheng <bin.cheng@arm.com> | 2014-09-05 03:31:29 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2014-09-05 03:31:29 +0000 |
commit | ed5f78b8e940ee05d6ee9230e2d525a31e417d17 (patch) | |
tree | 537faea3c3c6b813294aab02cfdbea541635ca32 /gcc | |
parent | f38a26e543f438bebb8bff29abeeace15e08b2e5 (diff) | |
download | gcc-ed5f78b8e940ee05d6ee9230e2d525a31e417d17.zip gcc-ed5f78b8e940ee05d6ee9230e2d525a31e417d17.tar.gz gcc-ed5f78b8e940ee05d6ee9230e2d525a31e417d17.tar.bz2 |
arm.c (output_move_neon): Handle REG explicitly.
* config/arm/arm.c (output_move_neon): Handle REG explicitly.
From-SVN: r214935
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 23 |
2 files changed, 19 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9fedacc..27169c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2014-09-05 Bin Cheng <bin.cheng@arm.com> + + * config/arm/arm.c (output_move_neon): Handle REG explicitly. + 2014-09-04 Trevor Saunders <tsaunders@mozilla.com> * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 9ffdb3d..15c6341 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -18555,6 +18555,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: { @@ -18588,14 +18602,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"); |