aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-08-22 09:17:16 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-08-22 09:17:16 +0000
commit4033e62c978ce5bdbdc9bd637a7b08f38cc95a09 (patch)
tree74ac081dae4705e59d98eb38ed96e3c38b7cb9c8
parent7f1bf27a0a82043ce50693cb6f9faf019765dd8b (diff)
downloadgcc-4033e62c978ce5bdbdc9bd637a7b08f38cc95a09.zip
gcc-4033e62c978ce5bdbdc9bd637a7b08f38cc95a09.tar.gz
gcc-4033e62c978ce5bdbdc9bd637a7b08f38cc95a09.tar.bz2
[AArch64] Fix label mode
This patch fixes a case where we tried to force a VOIDmode label into a DImode register, which led to invalid rtl that was previously undiagnosed. 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * config/aarch64/aarch64.md (casesi): Use DImode rather than VOIDmode for the LABEL_REF. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r251266
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/aarch64/aarch64.md2
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a32a5d6..6ecd626 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * config/aarch64/aarch64.md (casesi): Use DImode rather than
+ VOIDmode for the LABEL_REF.
+
2017-08-22 Richard Biener <rguenther@suse.de>
* tree-cfg.c (gimple_split_edge): Avoid reallocating target
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 64b60a9..c1bca07 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -495,7 +495,7 @@
const0_rtx),
operands[0], operands[2], operands[4]));
- operands[2] = force_reg (DImode, gen_rtx_LABEL_REF (VOIDmode, operands[3]));
+ operands[2] = force_reg (DImode, gen_rtx_LABEL_REF (DImode, operands[3]));
emit_jump_insn (gen_casesi_dispatch (operands[2], operands[0],
operands[3]));
DONE;