summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwilco <wilco@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-17 11:52:35 +0000
committerwilco <wilco@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-17 11:52:35 +0000
commit09e131a50ddda3b2d3648d9ade713241380b0c0f (patch)
treeb28d521f8f7c3439381b2a18c8f7fb9e21283158
parent4f240715e3a04a13250dee10bbf38a31e3b101e1 (diff)
downloadgcc-09e131a50ddda3b2d3648d9ade713241380b0c0f.tar.gz
As part of the final cleanup of aarch64_internal_mov_immediate a return was
accidentally removed. This causes the 2-instruction case to fallthrough into the general case even when it found a match. An example immediate is 0xcccccccccccccccd which was using 2 instructions in GCC5 but now requires 4. Adding the return fixes the regressions. 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com> gcc/ * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Add missing return. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233490 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2178ae6095d..607b33fa2e4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
+ Add missing return.
+
2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
* config/visium/visium.c (machine_libfunc_index): New enum.
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index df7023f6c1a..923a4b31542 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -1632,6 +1632,7 @@ aarch64_internal_mov_immediate (rtx dest, rtx imm, bool generate,
emit_insn (gen_insv_immdi (dest, GEN_INT (i),
GEN_INT ((val >> i) & 0xffff)));
}
+ return 2;
}
}