diff options
author | 2016-02-28 04:32:40 +0000 | |
---|---|---|
committer | 2016-02-28 04:32:40 +0000 | |
commit | 2db1096634309dab3ae6b95549e4fd2a512ebac2 (patch) | |
tree | 341d069282f97432132a3f3e55affc93fd6e3f7e | |
parent | pakets -> packets (diff) | |
download | wireguard-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.c | 2 |
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; |