[binutils-gdb/binutils-2_29-branch] Fix double-word branch on bit instruction.

John David Anglin danglin@sourceware.org
Wed Aug 2 16:09:00 GMT 2017


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=67062a1dda001f75cfa8d61940563aa10f6cff22

commit 67062a1dda001f75cfa8d61940563aa10f6cff22
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Wed Aug 2 12:06:16 2017 -0400

    Fix double-word branch on bit instruction.
    
            Backport from mainline
            2017-07-31  John David Anglin  <danglin@gcc.gnu.org>
    
            * 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:
---
 gas/ChangeLog        | 8 ++++++++
 gas/config/tc-hppa.c | 4 +---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 948f236..cfa67e9 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2017-08-02  John David Anglin  <danglin@gcc.gnu.org>
+
+	Backport from mainline
+	2017-07-31  John David Anglin  <danglin@gcc.gnu.org>
+
+	* 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  <krebbel@linux.vnet.ibm.com>
 
 	Backport from mainline
diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
index 724b48b..e4ec892 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.  */



More information about the Binutils-cvs mailing list