aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-03-22 02:27:54 +0000
committerAlan Modra <amodra@gmail.com>2001-03-22 02:27:54 +0000
commit87890af05c79e3fb1cfb2cdc0ffa0cea8a3b26da (patch)
treeedbbb1cc8711e22f56c0e42340f1ea76bfbe6820
parentc26e1c2b790d52ba3e9ec78798ebf0b6e2ac155a (diff)
downloadfsf-binutils-gdb-87890af05c79e3fb1cfb2cdc0ffa0cea8a3b26da.zip
fsf-binutils-gdb-87890af05c79e3fb1cfb2cdc0ffa0cea8a3b26da.tar.gz
fsf-binutils-gdb-87890af05c79e3fb1cfb2cdc0ffa0cea8a3b26da.tar.bz2
paddq and psubq support.
-rw-r--r--include/opcode/ChangeLog4
-rw-r--r--include/opcode/i386.h4
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/i386-dis.c12
4 files changed, 20 insertions, 6 deletions
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index eef5c4d..1c1cb55 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,7 @@
+2001-03-22 Alan Modra <alan@linuxcare.com.au>
+
+ * i386.h (i386_optab): Add paddq, psubq.
+
2001-03-19 Alan Modra <alan@linuxcare.com.au>
* i386.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Define.
diff --git a/include/opcode/i386.h b/include/opcode/i386.h
index f480dd4..44d92ae 100644
--- a/include/opcode/i386.h
+++ b/include/opcode/i386.h
@@ -993,6 +993,8 @@ static const template i386_optab[] = {
{"paddw", 2, 0x660ffd,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
{"paddd", 2, 0x0ffe, X, CpuMMX, FP|Modrm, { RegMMX|LongMem, RegMMX, 0 } },
{"paddd", 2, 0x660ffe,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"paddq", 2, 0x0fd4, X, CpuMMX, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } },
+{"paddq", 2, 0x660fd4,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
{"paddsb", 2, 0x0fec, X, CpuMMX, FP|Modrm, { RegMMX|LongMem, RegMMX, 0 } },
{"paddsb", 2, 0x660fec,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
{"paddsw", 2, 0x0fed, X, CpuMMX, FP|Modrm, { RegMMX|LongMem, RegMMX, 0 } },
@@ -1063,6 +1065,8 @@ static const template i386_optab[] = {
{"psubw", 2, 0x660ff9,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
{"psubd", 2, 0x0ffa, X, CpuMMX, FP|Modrm, { RegMMX|LongMem, RegMMX, 0 } },
{"psubd", 2, 0x660ffa,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"psubq", 2, 0x0ffb, X, CpuMMX, FP|Modrm, { RegMMX|LLongMem, RegMMX, 0 } },
+{"psubq", 2, 0x660ffb,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
{"psubsb", 2, 0x0fe8, X, CpuMMX, FP|Modrm, { RegMMX|LongMem, RegMMX, 0 } },
{"psubsb", 2, 0x660fe8,X,CpuSSE2,FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
{"psubsw", 2, 0x0fe9, X, CpuMMX, FP|Modrm, { RegMMX|LongMem, RegMMX, 0 } },
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 692a029..b75e0b3 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2001-03-22 Alan Modra <alan@linuxcare.com.au>
+
+ * i386-dis.c (dis386_twobyte_att): Add entries for paddq, psubq.
+ (dis386_twobyte_intel): Likewise.
+ (twobyte_has_modrm): Set entry for paddq, psubq.
+
2001-03-20 Patrick Macdonald <patrickm@redhat.com>
* cgen-dis.in (print_insn_@arch@): Add support for target machine
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index b2fc9e1..399d61c 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -1854,7 +1854,7 @@ static const struct dis386 dis386_twobyte_att[] = {
{ "psrlw", MX, EM, XX },
{ "psrld", MX, EM, XX },
{ "psrlq", MX, EM, XX },
- { "(bad)", XX, XX, XX },
+ { "paddq", MX, EM, XX },
{ "pmullw", MX, EM, XX },
{ PREGRP21 },
{ "pmovmskb", Ev, MX, XX },
@@ -1898,7 +1898,7 @@ static const struct dis386 dis386_twobyte_att[] = {
{ "psubb", MX, EM, XX },
{ "psubw", MX, EM, XX },
{ "psubd", MX, EM, XX },
- { "(bad)", XX, XX, XX },
+ { "psubq", MX, EM, XX },
{ "paddb", MX, EM, XX },
{ "paddw", MX, EM, XX },
{ "paddd", MX, EM, XX },
@@ -2146,7 +2146,7 @@ static const struct dis386 dis386_twobyte_intel[] = {
{ "psrlw", MX, EM, XX },
{ "psrld", MX, EM, XX },
{ "psrlq", MX, EM, XX },
- { "(bad)", XX, XX, XX },
+ { "paddq", MX, EM, XX },
{ "pmullw", MX, EM, XX },
{ PREGRP21 },
{ "pmovmskb", Ev, MX, XX },
@@ -2190,7 +2190,7 @@ static const struct dis386 dis386_twobyte_intel[] = {
{ "psubb", MX, EM, XX },
{ "psubw", MX, EM, XX },
{ "psubd", MX, EM, XX },
- { "(bad)", XX, XX, XX },
+ { "psubq", MX, EM, XX },
{ "paddb", MX, EM, XX },
{ "paddw", MX, EM, XX },
{ "paddd", MX, EM, XX },
@@ -2236,9 +2236,9 @@ static const unsigned char twobyte_has_modrm[256] = {
/* a0 */ 0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1, /* af */
/* b0 */ 1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1, /* bf */
/* c0 */ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, /* cf */
- /* d0 */ 0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1, /* df */
+ /* d0 */ 0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1, /* df */
/* e0 */ 1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1, /* ef */
- /* f0 */ 0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0 /* ff */
+ /* f0 */ 0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 /* ff */
/* ------------------------------- */
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
};