summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2010-12-27 02:05:14 +0000
committerJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2010-12-27 02:05:14 +0000
commit6b6e3976711b1e2693c5a56c3baa9f1d28d277bb (patch)
treef5740c671ef505075c87ca2141261f4f3c8b4b01
parent589e430baaacf262a725154b4c437387f4ac2160 (diff)
downloadcygnal-6b6e3976711b1e2693c5a56c3baa9f1d28d277bb.tar.gz
cygnal-6b6e3976711b1e2693c5a56c3baa9f1d28d277bb.tar.bz2
cygnal-6b6e3976711b1e2693c5a56c3baa9f1d28d277bb.zip
PR gas/11395
* config/tc-hppa.c (pa_ip): Set doubleword carry/borrow bit when a doubleword completer or doubleword condition is found in an add/sub instruction. Reject match for 'A'/'S' only if there is no condition and d bit is not set. * gas/hppa/basic/add2.s: Add test for a simple doubleword carry instruction. * gas/hppa/basic/sub2.s: Add tests for simple word and doubleword borrow instructions. * gas/hppa/basic/basic.exp: Update regexps for above. * opcode/hppa.h: Clear "d" bit in "add" and "sub" patterns.
-rw-r--r--include/ChangeLog5
-rw-r--r--include/opcode/hppa.h10
2 files changed, 10 insertions, 5 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index 1cff89305..35b08b9e2 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2010-12-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR gas/11395
+ * opcode/hppa.h: Clear "d" bit in "add" and "sub" patterns.
+
2010-11-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* opcode/s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_MAXCPU.
diff --git a/include/opcode/hppa.h b/include/opcode/hppa.h
index 8d767b4bc..3927fcbc0 100644
--- a/include/opcode/hppa.h
+++ b/include/opcode/hppa.h
@@ -634,20 +634,20 @@ static const struct pa_opcode pa_opcodes[] =
{ "addio", 0xb4000800, 0xfc000800, "?ai,b,x", pa10, 0},
{ "addit", 0xb0000000, 0xfc000800, "?ai,b,x", pa10, 0},
{ "addito", 0xb0000800, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "add", 0x08000720, 0xfc0007e0, "cY?Ax,b,t", pa20, FLAG_STRICT},
+{ "add", 0x08000700, 0xfc0007e0, "cY?Ax,b,t", pa20, FLAG_STRICT},
{ "add", 0x08000700, 0xfc0007e0, "cy?ax,b,t", pa10, FLAG_STRICT},
-{ "add", 0x08000220, 0xfc0003e0, "ca?Ax,b,t", pa20, FLAG_STRICT},
+{ "add", 0x08000200, 0xfc0003e0, "ca?Ax,b,t", pa20, FLAG_STRICT},
{ "add", 0x08000200, 0xfc0003e0, "ca?ax,b,t", pa10, FLAG_STRICT},
{ "add", 0x08000600, 0xfc000fe0, "?ax,b,t", pa10, 0},
{ "addl", 0x08000a00, 0xfc000fe0, "?ax,b,t", pa10, 0},
{ "addo", 0x08000e00, 0xfc000fe0, "?ax,b,t", pa10, 0},
{ "addc", 0x08000700, 0xfc000fe0, "?ax,b,t", pa10, 0},
{ "addco", 0x08000f00, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sub", 0x080004e0, 0xfc0007e0, "ct?Sx,b,t", pa20, FLAG_STRICT},
+{ "sub", 0x080004c0, 0xfc0007e0, "ct?Sx,b,t", pa20, FLAG_STRICT},
{ "sub", 0x080004c0, 0xfc0007e0, "ct?sx,b,t", pa10, FLAG_STRICT},
-{ "sub", 0x08000520, 0xfc0007e0, "cB?Sx,b,t", pa20, FLAG_STRICT},
+{ "sub", 0x08000500, 0xfc0007e0, "cB?Sx,b,t", pa20, FLAG_STRICT},
{ "sub", 0x08000500, 0xfc0007e0, "cb?sx,b,t", pa10, FLAG_STRICT},
-{ "sub", 0x08000420, 0xfc0007e0, "cv?Sx,b,t", pa20, FLAG_STRICT},
+{ "sub", 0x08000400, 0xfc0007e0, "cv?Sx,b,t", pa20, FLAG_STRICT},
{ "sub", 0x08000400, 0xfc0007e0, "cv?sx,b,t", pa10, FLAG_STRICT},
{ "sub", 0x08000400, 0xfc000fe0, "?sx,b,t", pa10, 0},
{ "subo", 0x08000c00, 0xfc000fe0, "?sx,b,t", pa10, 0},