aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2016-02-17 11:52:35 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2016-02-17 11:52:35 +0000
commit1312b1ba114f41bf477db50b516f806a8e688978 (patch)
treeb28d521f8f7c3439381b2a18c8f7fb9e21283158
parent448db8d2f6a47996a8523408ab96496d555f19ec (diff)
downloadgcc-1312b1ba114f41bf477db50b516f806a8e688978.zip
gcc-1312b1ba114f41bf477db50b516f806a8e688978.tar.gz
gcc-1312b1ba114f41bf477db50b516f806a8e688978.tar.bz2
As part of the final cleanup of aarch64_internal_mov_immediate a return was accidentally removed.
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. From-SVN: r233490
-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 2178ae6..607b33f 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 df7023f..923a4b3 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;
}
}