aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2017-07-31 12:51:25 -0400
committerJohn David Anglin <danglin@gcc.gnu.org>2017-07-31 12:51:25 -0400
commit2e957b16d45b8fe4396b16775f0b3fa77f71f0a0 (patch)
treefa88e5c17c7d8df74d8ada1c181e7b34c3b08e7e /gas
parent575934368531e7592a7576a39a4320d88007ce88 (diff)
downloadgdb-2e957b16d45b8fe4396b16775f0b3fa77f71f0a0.zip
gdb-2e957b16d45b8fe4396b16775f0b3fa77f71f0a0.tar.gz
gdb-2e957b16d45b8fe4396b16775f0b3fa77f71f0a0.tar.bz2
Fix bb instructions with double-word condition on hppa.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-hppa.c4
2 files changed, 6 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 7b716c3..1a3439d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+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-07-28 Andrew Waterman <andrew@sifive.com>
* config/tc-riscv.c (riscv_set_arch): Handle the Q subset like
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. */