summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2016-02-28 04:32:40 +0000
committerjsg <jsg@openbsd.org>2016-02-28 04:32:40 +0000
commit2db1096634309dab3ae6b95549e4fd2a512ebac2 (patch)
tree341d069282f97432132a3f3e55affc93fd6e3f7e
parentpakets -> packets (diff)
downloadwireguard-openbsd-2db1096634309dab3ae6b95549e4fd2a512ebac2.tar.xz
wireguard-openbsd-2db1096634309dab3ae6b95549e4fd2a512ebac2.zip
In emit_insxl() force the first operand of the insbl or inswl pattern
into a register. Fixes an ICE when building Mesa with __sync builtins. From Roger Sayle in gcc svn rev 121779 in Feb 2007 before the license change. Tested by miod and matthieu.
-rw-r--r--gnu/gcc/gcc/config/alpha/alpha.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gnu/gcc/gcc/config/alpha/alpha.c b/gnu/gcc/gcc/config/alpha/alpha.c
index b9946e3f06c..9d5cf0b3068 100644
--- a/gnu/gcc/gcc/config/alpha/alpha.c
+++ b/gnu/gcc/gcc/config/alpha/alpha.c
@@ -4551,6 +4551,8 @@ emit_insxl (enum machine_mode mode, rtx op1, rtx op2)
else
fn = gen_inswl_le;
}
+ /* The insbl and inswl patterns require a register operand. */
+ op1 = force_reg (mode, op1);
emit_insn (fn (ret, op1, op2));
return ret;