From: John David Anglin Date: Wed, 2 Aug 2017 16:06:16 +0000 (-0400) Subject: Fix double-word branch on bit instruction. X-Git-Tag: binutils-2_29_1~97 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=67062a1dda001f75cfa8d61940563aa10f6cff22;p=thirdparty%2Fbinutils-gdb.git Fix double-word branch on bit instruction. Backport from mainline 2017-07-31 John David Anglin * config/tc-hppa.c (pa_ip): Clear `d' bit in branch on bit instructions with a double-word condition and a fixed bit position greater than 31. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 948f23662ca..cfa67e9efc9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2017-08-02 John David Anglin + + Backport from mainline + 2017-07-31 John David Anglin + + * config/tc-hppa.c (pa_ip): Clear `d' bit in branch on bit instructions + with a double-word condition and a fixed bit position greater than 31. + 2017-08-01 Andreas Krebbel Backport from mainline diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 724b48bfbce..e4ec8926077 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -5216,9 +5216,7 @@ pa_ip (char *str) s = expr_end; CHECK_FIELD (num, 63, 0, strict); if (num & 0x20) - ; - else - opcode |= (1 << 13); + opcode &= ~(1 << 13); INSERT_FIELD_AND_CONTINUE (opcode, num & 0x1f, 21); /* Handle a 5 bit immediate at 10. */